From 901c3a1e51e9cf8f6d81ec949923e44319734566 Mon Sep 17 00:00:00 2001 From: Musa Kaleem <131704022+Musa-Kal@users.noreply.github.com> Date: Fri, 13 Nov 2026 10:33:01 -0500 Subject: [PATCH 1/6] settle up in either direction, pay with an app, reminders, settling with a friend --- src/content/docs/account.mdx | 39 ++++- src/content/docs/balances/index.mdx | 2 +- src/content/docs/balances/settle-up.mdx | 180 ++++++++++++++++++++-- src/content/docs/expenses/currencies.mdx | 2 +- src/content/docs/friends.mdx | 31 +++- src/content/docs/notifications.mdx | 24 ++- src/content/docs/privacy-and-security.mdx | 1 + 7 files changed, 251 insertions(+), 28 deletions(-) diff --git a/src/content/docs/account.mdx b/src/content/docs/account.mdx index f4a7d3a..94de52d 100644 --- a/src/content/docs/account.mdx +++ b/src/content/docs/account.mdx @@ -1,6 +1,6 @@ --- title: Your account -description: Change your profile, language, theme, time zone and currency, your email and password, turn on two-step sign in, subscribe to your calendar feed, sign out, or delete your account. +description: Change your profile, language, theme, time zone and currency, save your payment methods, change your email and password, turn on two-step sign in, subscribe to your calendar feed, sign out, or delete your account. --- import { Steps } from '@astrojs/starlight/components' @@ -35,6 +35,41 @@ Everything about you lives on **Me**: your profile, your preferences, and, in th Changes save as soon as you make them. +## Payment methods + +Save how you like to be paid, and people who owe you get a **Pay with** button for your app when they [settle up](/balances/settle-up/#pay-with-an-app). Potluck never moves money: the button only opens the app with your handle (and usually the amount) filled in. + + + +1. On **Me**, under **Payment methods**, tap **Add a payment method**. +2. Under **Which app?**, pick one. +3. Type your handle, for example your **Venmo username** or **Cashtag**. Pasting your profile link works too, like `paypal.me/yourname`. +4. Tap **Save**. + + + +You can save one of each: + +| App | What to enter | +| --- | --- | +| PayPal | Your PayPal.me username | +| Venmo | Your Venmo username | +| Cash App | Your Cashtag | +| Revolut | Your Revolut username | +| Monzo | Your Monzo.me username | +| UPI | Your UPI ID, like `name@bank` | +| Interac e-Transfer | The email or phone number you take e-Transfers on | +| Bank transfer | Your bank details, like an IBAN, or a sort code and account number | + +If a handle does not look right for that app, Potluck says so before saving. Interac and bank details have no link: people see a **Copy** button instead. + +**Change or remove one** +: Tap the pencil next to it to change it. Tap the bin to remove it. A message says it was removed, with an **Undo** button to bring it straight back. + +### Who can see them + +People you share a group with, and only them. They see your payment methods when they settle up with you. If you block someone, or they block you, they cannot see them. When you delete your account, your payment methods are deleted too. + ## Sign in and security This part of **Me** holds your email, your password, two-step sign in and your devices. @@ -190,6 +225,6 @@ Your friends' money should not change because you left, so Potluck keeps the sha - **Expenses and payments** you were part of stay, so everyone's totals still add up. - **Open balances stay.** If you owed someone, the group still shows that debt against **Former member**. Settle up first so nobody is left waiting. See [Recording a payment](/balances/settle-up/). - **Groups you own** pass to the longest-standing admin, or the longest-standing member if there is no admin. Groups with nobody else in them are deleted. -- Your availability, RSVPs, notifications, push and email notification settings, friends list and calendar feed are deleted. Invite links you made stop working. +- Your availability, RSVPs, notifications, push and email notification settings, friends list, payment methods and calendar feed are deleted. Invite links you made stop working. See [Privacy and security](/privacy-and-security/) for what Potluck stores in the first place. diff --git a/src/content/docs/balances/index.mdx b/src/content/docs/balances/index.mdx index 72c9f98..640a072 100644 --- a/src/content/docs/balances/index.mdx +++ b/src/content/docs/balances/index.mdx @@ -18,7 +18,7 @@ The card at the top is your total in this group: **You owe**, **You are owed**, ## Who pays whom -This list says exactly which payments would square the group. Your own rows come first, each with a **Settle up** button. +This list says exactly which payments would square the group. Your own rows come first. Rows where you owe have a **Settle up** button, and rows where someone owes you have a [Remind](/balances/settle-up/#remind-someone) button. If you have more than one row, the card at the top also offers [Settle everything](/balances/settle-up/#settle-everything-at-once). Below it, **Everyone** shows each member's total: **is owed**, **owes**, or **settled up**. diff --git a/src/content/docs/balances/settle-up.mdx b/src/content/docs/balances/settle-up.mdx index 48f1012..aa7aaae 100644 --- a/src/content/docs/balances/settle-up.mdx +++ b/src/content/docs/balances/settle-up.mdx @@ -1,10 +1,9 @@ --- title: Recording a payment -description: Settle up with someone by recording a payment you made in cash, by bank transfer or with a payment app. +description: Settle up by recording a payment, open a payment app with the amount filled in, remind someone who owes you, settle a whole group or a friend in one go, and fix a payment later. --- import { Steps } from '@astrojs/starlight/components' -import Screenshot from '~/components/Screenshot.astro' Potluck does not move money. You pay people the way you already do (cash, a bank transfer, a payment app) and then record it in Potluck so the balance goes down. @@ -14,33 +13,180 @@ Potluck does not move money. You pay people the way you already do (cash, a bank 1. On the group's **Balances** tab, tap **Settle up**. You can also tap the big plus button, then **Settle up**, and choose the group under **Which group are you settling?** -2. Under **Who are you paying?**, pick the person. People you owe are listed first under **Suggested**, with the amount. Anyone else in the group is under **Everyone else**. +2. Under **Who are you paying?**, pick the person. People you owe are listed under **You owe**, and people who owe you under **Owed to you**, each with the amount. Anyone else in the group is under **Everyone else**. - +3. Check the **Amount**. It starts at what is owed, and you can change it to pay part of it (a partial payment) or a different amount. -3. Check the **Amount**. It starts at what you owe that person, and you can pay less (a partial payment) or a different amount. +4. Check **Paid on**. It starts at today. See [Paid on another day](#paid-on-another-day). -4. Add a **Note** if you like, such as how you paid. +5. Add a **Note** if you like, such as how you paid. -5. Tap **Record payment**. +6. Tap **Record payment**. -If that clears it, you see **All square with** their name and the balance ticks down to zero. If you paid part of it, Potluck says **Payment recorded** and how much you **still owe**. Tap **Back to** the group to return. +If that clears it, you see **All square with** their name and the balance ticks down to zero. If you paid part of it, Potluck says **Payment recorded** and how much is still owed. Tap **Back to** the group to return. -The person you paid gets a **You got paid** notification, and the payment shows in the group's expense list, for example **Noor paid you $35.10**. +The other person gets a notification, and the payment shows in the group's expense list, for example **Noor paid you $35.10**. + +:::tip +On the **Balances** tab, each of your own rows under **Who pays whom** has its own **Settle up** button. It opens the form with that person and amount filled in. +::: + +### Someone paid you + +Payments can go either way. If a friend handed you cash, record it yourself instead of waiting for them: + +- On **Who are you paying?**, pick them under **Owed to you**. The form reads **Noor paid you** and starts at what they owe you. +- Or, on the form, tap **Swap who paid** (the arrows between the two pictures) to turn it around. + +They get a **Payment recorded** notification saying you marked their payment as received. + +### Between two other people + +Group owners and admins can record a payment that does not involve them, for example when Jo pays Lena in cash and asks you to note it. On the form, change **Paid by** and **Paid to** to the two people. Everyone else can only record payments they made or received. Potluck says **Only owners and admins can record a payment between two other people.** if you try. + +### Paid on another day + +Forgot to record last week's transfer? Change **Paid on** to the day the money moved. You cannot pick a day in the future. + +- The day is a day in **your** time zone, the one on [Me](/account/#preferences). The payment shows on that day for everyone, whatever time it is elsewhere. +- If you paid in another currency (tap the currency next to the amount to pick one), Potluck converts it at **that day's rate**, the same way it does for [expenses](/expenses/currencies/#where-the-rates-come-from). The form shows the conversion before you save. :::note[Good to know] -- Payments always go **from you** to the other person. If someone paid you, they record it on their side. -- Payments are in the group's currency. - In a [one-on-one tab](/friends/), tap **Settle up** on its **Balances** tab the same way. +- To settle with someone across every group you share, see [Settle up with a friend across groups](#settle-up-with-a-friend-across-groups). +::: + +## Pay with an app + +If the person you are paying saved their [payment methods](/account/#payment-methods), the settle up form lists them under **How** their name **likes to be paid**. They only show when you are the one paying. + + + +1. Fill in the **Amount** first. The buttons wait until there is one. +2. Tap **Pay with** and the app, for example **Pay with Venmo**. The app or its website opens in a new tab. +3. Send the money there. +4. Back in Potluck, answer **Did it go through?** + + + +Tap **Yes, record it** and Potluck records the payment with the amount, day and note on the form. Tap **Not yet** and nothing is recorded, so you can try again or record it later. + +Potluck cannot see your payment app, so it never records a payment on its own. It only saves you typing. + +### Which apps fill in the amount + +Under each button, Potluck tells you what to expect: **Opens** the app **with** the amount **filled in**, or **Opens** the app. **Type in** the amount **there.** + +| App | Amount filled in | +| --- | --- | +| PayPal | Yes, in any currency | +| Venmo | In US dollars | +| Cash App | In US dollars and British pounds | +| Monzo | In British pounds | +| UPI | In Indian rupees. UPI only shows for payments in rupees. | +| Revolut | No, type it in Revolut | +| Interac e-Transfer | No link. Tap **Copy** to copy their email or phone number. | +| Bank transfer | No link. Tap **Copy** to copy their bank details. | + +When you copy details, Potluck says **Copied. Paste it into your banking app.** Once the money is on its way, tap **Record payment** yourself. + +## Remind someone + +On the **Balances** tab, every row where someone owes you has a **Remind** button. + + + +1. Tap **Remind**. +2. Add a **Note** if you like, such as **Rent is due Friday**. It is optional. +3. Tap **Send reminder**. + + + +They get **A friendly nudge** in their inbox, and on their phone if they turned on push. It says how much they owe and in which group, plus your note. + +You can remind each person once a day. After that the button says **Reminded**, and tapping it again tells you **You already nudged** them **today. Try again tomorrow.** + +## Settle everything at once + +When you owe, or are owed by, more than one person in a group, the card at the top of **Balances** has a **Settle everything** button next to **Settle up**. + + + +1. Tap **Settle everything**. +2. Check the list. It shows every payment that would square you with everyone in the group, in both directions, like **Jo paid you $20.00** and **You paid Maya $35.10**. +3. Tap **Record** with the number of payments. + + + +Potluck records them all in one go, dated today and in the group's currency, and says you are all square. Only your own balances change: debts between other people stay as they are. + +:::caution[Only once the money has moved] +**Settle everything** records every payment as done. Use it after everyone has actually paid. Potluck works out the amounts at the moment you tap, so a payment someone recorded a second earlier is never counted twice. +::: + +## Settle up with a friend across groups + +If you share several groups with someone, you can settle all of them from the [Friends](/friends/) page instead of opening each group. + + + +1. Open **Groups**, then **Friends**. +2. Under the friend's name, tap **Settle up**. The line beside it says how many groups have a balance, like **across 3 groups**. +3. Every group where the two of you have a balance is listed and ticked, with the full amount and who owes whom. +4. Change what you need: + - **Untick** a group to leave it as it is. + - **Lower an amount** to pay part of that group's debt. You cannot go above what is owed there; Potluck says **Enter an amount up to** the full amount. +5. Check **Paid on**, then tap **Record** with the number of payments. + + + +Potluck records **one payment in each group you picked**, in that group's currency. Balances stay separate: money owed in one group is never moved into another, and each payment works like any other (you can edit, delete or comment on it). If you settled everything, Potluck says **All square with** your friend. + +:::note[Good to know] +- Archived groups are shown faded and are not settled. Unarchive one to settle there. +- Your friend gets one notification per group. +- The amounts are what each group's **Balances** tab shows between the two of you, following that group's [simplify debts](/balances/#simplified-debts) setting. ::: -## Recorded a payment by mistake? +## The payment page + +Tap a payment in the group's **Expenses** tab to open its page. It shows who paid whom, the amount (and what it came to in the group currency, if it was paid in another one), the day, the note, and who recorded it and when. + +**Comments** +: Talk about a payment the same way as an expense: "sent from my other account", "thanks!". The payer, the person paid and whoever recorded it get a **New comment** notification. + +## Edit a payment + + + +1. Open the payment and tap **Edit**. Or tap the **…** menu on its row in the **Expenses** tab and choose **Edit payment**. +2. Change who paid, who was paid, the amount, currency, day or note. +3. Tap **Save changes**. + + + +Potluck says **Payment updated.** and balances follow. + +If someone in the payment has left the group, only the note and the day can change, and it cannot be deleted. That keeps the balances of people who left from moving. + +## Delete a payment + +Recorded a payment by mistake? Open it and tap the bin, or tap the **…** menu on its row and choose **Delete payment**. Confirm, and balances go back to how they were. + +A message says **Payment deleted.** with an **Undo** button. Tap it and the payment comes back. + +### Restore a deleted payment + +Missed the undo? Deleted payments are not gone for good. If you open one later, for example from a notification, it says **This payment was deleted.** Tap **Restore**, and Potluck says **Payment restored. The balance is back.** If someone in the payment has left the group since, it cannot be restored. + +### Who can change a payment + +The person who paid, the person who was paid, and whoever recorded it can edit, delete and restore it. Group owners and admins can change any payment in their group. The people in the payment are notified when someone else changes, deletes or restores it. See [Notifications](/notifications/#kinds-of-notifications). + +## Archived groups -Find the payment in the group's **Expenses** tab, tap the **…** menu on its row and choose **Delete payment**. Confirm, and balances go back to how they were. +An [archived group](/groups/settings/#archive-a-group) is read only. Its balances stay, but there is no **Settle up**, **Remind** or **Settle everything**. Its payments can be opened and read, and the payment page says **Supper club is archived, so its payments can be read but not changed.** (with your group's name). There is no **Edit**, **Delete** or **Restore**, and no new comments. -You can delete a payment if you made it, received it or recorded it. Group owners and admins can delete any payment. There is no undo, so check the row first. +To settle up there, an owner or admin unarchives the group first. See [Archive a group](/groups/settings/#archive-a-group). diff --git a/src/content/docs/expenses/currencies.mdx b/src/content/docs/expenses/currencies.mdx index bc423b8..05ef4c1 100644 --- a/src/content/docs/expenses/currencies.mdx +++ b/src/content/docs/expenses/currencies.mdx @@ -46,7 +46,7 @@ Some currencies have no reference rate. They show **No rate yet** in the picker, ## Balances and payments -- Balances, **Settle up** and payments are always in the group's currency. +- Balances are always in the group's currency, and **Settle up** starts in it. You can record a payment in another currency too: it is converted at the rate for the day it was paid, like an expense. See [Paid on another day](/balances/settle-up/#paid-on-another-day). - The group currency is **Locked once money has been added**. See [Group settings](/groups/settings/#details). - The balance on Home adds up groups that use your **Default currency**. Groups in other currencies are listed separately as **Plus balances in** those currencies, because Potluck does not convert balances between groups. diff --git a/src/content/docs/friends.mdx b/src/content/docs/friends.mdx index ffa5a72..673b302 100644 --- a/src/content/docs/friends.mdx +++ b/src/content/docs/friends.mdx @@ -1,6 +1,6 @@ --- title: Friends -description: Who shows up as a friend, and how to keep a one-on-one tab with someone outside any group. +description: Who shows up as a friend, what you owe each other across groups, settling up with a friend in one go, and keeping a one-on-one tab outside any group. --- import { Steps } from '@astrojs/starlight/components' @@ -8,13 +8,38 @@ import Screenshot from '~/components/Screenshot.astro' Your friends are the people you share a group with. Nobody sends friend requests: when someone joins one of your groups, you show up on each other's list. -Open **Groups** and tap **Friends** to see them. Each row shows where you stand with that person one-on-one: **owes you**, **you owe**, **settled up**, or **no tab yet**. +Open **Groups** and tap **Friends** to see them. Each row shows where you stand with that person across every group you share, your one-on-one tab included: **owes you**, **you owe**, **settled up**, or **no tab yet**. +## What the totals mean + +A friend's total adds up what the two of you owe each other in every shared group. + +- **Groups in the same currency are added up.** If you owe Kai $20 in one group and Kai owes you $15 in another, the row says **you owe** $5.00. +- **Currencies are never converted.** Each currency gets its own amount, joined with "and", like **you owe** $20.00 and €8.00. +- **Each direction gets its own line.** If you owe Kai dollars but Kai owes you euros, the row shows both: **you owe** $20.00 on one line and **owes you** €15.00 on the next. One never hides the other. +- **Archived groups count too.** Their balances stay, so they are part of the total. + +When you have a balance with someone, a line under their name says how many groups it is in, like **in 1 group** or **across 3 groups**, with a **Settle up** button. If all of those groups are archived, there is no button. + +## Settle up with a friend + +**Settle up** on a friend's row settles every group you share with them in one go. + + + +1. Tap **Settle up** under the friend's name. The sheet is titled **Settle up with** their name. +2. Each group with a balance is listed and ticked, with the full amount and whether you owe or they owe you. Untick a group to leave it, or lower an amount to pay part of it. +3. Check **Paid on**, then tap **Record** with the number of payments. + + + +Potluck records one payment in each group you picked, in that group's currency. Archived groups are shown faded and stay as they are. For the details, see [Settle up with a friend across groups](/balances/settle-up/#settle-up-with-a-friend-across-groups). + ## Split something with one friend Not everything belongs in a group. Coffee with a roommate, a concert ticket for one friend: keep those on a one-on-one tab. @@ -30,7 +55,7 @@ Not everything belongs in a group. Coffee with a roommate, a concert ticket for A one-on-one tab has only **Expenses** and **Balances**. There are no plans, invite links or roles to manage. You settle up the same way as in a group: see [Recording a payment](/balances/settle-up/). :::note[Good to know] -A one-on-one tab is separate from the groups you share. Money you owe someone in a group stays in that group, and money on your one-on-one tab stays there. +A one-on-one tab is separate from the groups you share. Money you owe someone in a group stays in that group, and money on your one-on-one tab stays there. The total on **Friends** adds them up, and [Settle up with a friend](#settle-up-with-a-friend) pays each one separately. ::: ## Add a friend diff --git a/src/content/docs/notifications.mdx b/src/content/docs/notifications.mdx index 146d3e7..dc34956 100644 --- a/src/content/docs/notifications.mdx +++ b/src/content/docs/notifications.mdx @@ -1,6 +1,6 @@ --- title: Notifications -description: The inbox, what Potluck tells you about, how to choose what pings you or lands in your email, and how to unsubscribe. +description: The inbox, what Potluck tells you about (payment changes and reminders included), how to choose what pings you or lands in your email, and how to unsubscribe. --- import { Steps } from '@astrojs/starlight/components' @@ -29,6 +29,10 @@ New updates are under **New**, older ones under **Earlier**. Tap one to go strai | **Expense restored** | Someone brings back a deleted expense | The people in it | Edits and deletions | | **You got paid** | Someone records a payment to you | The person paid | Payments | | **Payment recorded** | The person you paid marks it as received, or someone else records your payment | The person who paid | Payments | +| **Payment changed** | Someone changes who paid, who was paid, the amount, currency or day of a payment | The payer and the person paid | Payments | +| **Payment deleted** | Someone deletes a payment | The payer and the person paid | Payments | +| **Payment restored** | Someone brings back a deleted payment | The payer and the person paid | Payments | +| **A friendly nudge** | Someone you owe taps [Remind](/balances/settle-up/#remind-someone) | The person who owes | Reminders | | **New face in** a group | Someone joins a group you run | The owner and admins | Groups | | **Something is cooking** | Someone starts a plan | The group | Plans | | **When are you free?** | Someone nudges you to add your times | The people nudged | Plans | @@ -36,12 +40,24 @@ New updates are under **New**, older ones under **Earlier**. Tap one to go strai | **Plans changed** | A plan is called off | The group | Plans | | **Coming up** | About a day before a plan | People going or maybe | Reminders | | **Are you in?** | About a day before a plan | People who have not answered | Reminders | -| **New comment** | Someone comments | People in that expense, or the organizer and people coming to that plan | Comments | +| **New comment** | Someone comments | People in that expense, the payer, the person paid and whoever recorded that payment, or the organizer and people coming to that plan | Comments | | **Your month in Potluck** | The first of each month | You, if you owe or are owed money | Monthly summary | | **Two-step sign in is off** | A [recovery code](/account/#lost-your-phone) turns off two-step sign in | You | None, it always arrives | You never get notified about your own actions, except **Two-step sign in is off**, in case it was not you. +### Payment changes + +When someone else edits, deletes or restores a payment you are in, you hear about it, for example **Payment changed: Maya changed a $35.10 payment in Supper club**. Tap it to open the payment. A few things to know: + +- Changing only the note does not send a notification. It still shows in the group's activity. +- If an edit swaps who paid or who was paid, both the old and the new people hear about it. +- [Settling up with a friend across groups](/balances/settle-up/#settle-up-with-a-friend-across-groups) records one payment per group, so your friend gets one notification for each. + +### Payment reminders + +**A friendly nudge** says how much you owe and in which group, like **Jo says you owe $20.00 in Supper club**, plus the note if Jo added one. Tap it to go straight to settling up with Jo in that group. Each person can remind you once a day. See [Remind someone](/balances/settle-up/#remind-someone). + ## What to hear about Your inbox gets everything. Under **What to hear about** on **Me**, you pick what also pings your devices or lands in your email. @@ -50,11 +66,11 @@ Each kind of update has its own row with a **Push** switch, except **Monthly sum - **New expenses**: someone adds an expense you are in. - **Edits and deletions**: an expense you are in is changed, deleted or restored. -- **Payments**: someone pays you or records a payment with you. +- **Payments**: someone pays you or records a payment with you, or changes, deletes or restores one. - **Comments**: new comments on expenses and plans you are part of. - **Groups**: someone joins a group you run. - **Plans**: new plans, locked in times, cancellations and availability requests. -- **Reminders**: plans coming up and RSVPs you still owe. +- **Reminders**: plans coming up, RSVPs you still owe, and nudges about money you owe. - **Monthly summary**: your balances on the first of each month. Every switch starts on, with one exception: plans can get chatty, so **Plans** starts with push only and no email. Flip any switch and it saves right away. diff --git a/src/content/docs/privacy-and-security.mdx b/src/content/docs/privacy-and-security.mdx index 3e8eff4..673c4c0 100644 --- a/src/content/docs/privacy-and-security.mdx +++ b/src/content/docs/privacy-and-security.mdx @@ -12,6 +12,7 @@ Potluck is free software with no ads and no tracking code. It stores what it nee | Your email and password | Nobody in the app. Your password is stored scrambled (hashed), never as text. | | Your two-step sign in key and recovery codes | Nobody in the app. Recovery codes are stored scrambled too. | | Your name, photo, time zone and default currency | You, and people you share a group with | +| Your [payment methods](/account/#payment-methods) | You, and people you share a group with, unless either of you blocked the other | | Groups, members and roles | The members of that group | | Expenses, splits, payments and comments | The members of that group | | Receipts | The members of that group. They are private files, not public links. | From ec407593f5f85398048697f6e6cc40bbc77e39d8 Mon Sep 17 00:00:00 2001 From: Musa Kaleem <131704022+Musa-Kal@users.noreply.github.com> Date: Fri, 13 Nov 2026 10:40:15 -0500 Subject: [PATCH 2/6] drop blocking clause, unused settle shots, clarify day-edit rate --- public/screenshots/settle-mobile-dark.png | Bin 25636 -> 0 bytes public/screenshots/settle-mobile-light.png | Bin 25212 -> 0 bytes src/content/docs/account.mdx | 2 +- src/content/docs/balances/settle-up.mdx | 4 +++- src/content/docs/privacy-and-security.mdx | 2 +- 5 files changed, 5 insertions(+), 3 deletions(-) delete mode 100644 public/screenshots/settle-mobile-dark.png delete mode 100644 public/screenshots/settle-mobile-light.png diff --git a/public/screenshots/settle-mobile-dark.png b/public/screenshots/settle-mobile-dark.png deleted file mode 100644 index b9c4fe41d3f2d6118901e74322222315b3e86c3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25636 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 z zY2@0Q{}0uE1tDg7TE$*Z%8@(>5|Lh}rzp2PdYx}cJjQUacw8)@xPHRJBBsWq6E^iO^(dbQHTSBE($ex=nKI8NXBPLfZmvd?U!2oq35!m~J`7;sr)yIWs;HnVw2xrS-uXPUE3`#YP_c6)d-@No)#lQ366#NUX zO+@;R{%V9%2z0$RLCvtTrULs2hS~_p9%Y;VnGZ{I;!}Zj|0MxblZ&_&pnZ~jZofGe zuO~NmLWsXB(t-Uq)jI&!IDqa`Xsv~&M%dA<55b9IKa0-0BM&2$u6js zoA}5s5PXM%7a<37Jl|mooI1xg&e;zTg3h4JYzC0O+*evlK`EHXe*nOimIW{bt@85A=7u59@%!`!nV}DrBdLUiuFF$yJMU*-9BaO8{aXekL_o zNh+}CT6vqW!%i?F$f+LKYYtZHwGZrtMEehuOD!v_6gP!wsJ+Si#0mDP)iU}THz0B= zc{}D}3%A1^>hyG>I&~`$==s^0>*Rai@BCWR2i+)qHA4Z`2)WVCYz?PK2w^(J7=1?4 z$GJ)a@c#BnXNAp+_q{!sgrIbZ#vx56MFyx0zd%5O+?wmU&xa1FvS*m) zgotXLmw}lcl$fueL@dg~i<0}uyeu7^y)SDA-o5s0lj8kmxYG>ZTBVA-3{^Ej| zr~U(=Jk&u;&tl`(2cIqgaS*D_vT zl%*HZ-dB3?A|)oC?&^2#1AR3OD8)`}#xnowM(+6vfr5?^Y4UOZ0*9Ot_{RCbESF5q z@++D4RBhs+7#`}e86v564n><%FKhz?XMx<~3@di6@$U zRWHIrns&R*$;BKS5)N|wI0be^Htv2?)d^%275w9%xCN*pDx(It2Yv-&9{SH*oYX<2 zj?eOshF#I00aCRIz^#*_uF%bWeuT1GeD_h=f&lYDWJs+^`~j`PvB0T*GruA#Xh>Hi z00@2sZ74LCOs+-@SVXmcuhpuu%VwJW4Rh0tGxgXY>brH$qsYOjs^g`vuFesGvGs)M zWCL}=X}%h~-Yui^7gIzIl#R-jU`Y8!ka2J^d)q9_z!zA%KWsG|1UCA0s_!tNhB(TTm?qTldQpZWTKwE%_?3{cZ?>U`BM zL6p_eMK+XR((&f2H4iM9%N{b6pwC_CM|>3{loXZf7mem9-O6~bQhsLvNikKMT2ce8 z*)JBGQ5%0`KPk*MFi*%qKu<*5OEQ2OG<%}TX<{KUoMxb55#I0~3)zVp5e1VmNIuZC z!!ps&=DvnCV=zx8+PhCbuDWPl-KAW6IxA44PcFRx>vYv&2DeV6i`{+yHdaxF!;8D)E);75?Q?W4{122uyiy% zwkJIubUA@xkb~$t4F7gRs#sH4$JRa zWu)^}?uyG&>O`jLQiCM;PbZ@l6d?re{o?|Hb>uA`U~>V)I6h*wdfN*YPX9iH`bU1w zIO*;0tms20dgF)y%(bB&tYWJN^ySUJDBBH6191|yqyxTL63O^BAHG0Pm{|gVExvx? zFKRwL{Gam9Gpea}UDqHI6hiq##DMgsAjL^jq*v*^N)br_si8>`5C{Z8q(kV^r1v64 zI+lc>2%&cb=^`Bj!9DT&);Vjfv)5Vs-yVDHKS^e0-Z|f7WMp3Nec#U$QZ@l%TI4o2 zfULbF3vsa_#dc6q5yKky_*uK3rRS0W8UD2Is>LLwudE9-UW9eoI4*y9xx3Wuj72)- zD#o90;6SCc9Qj01+;~Ibq70e2JBj|F5|hQ*2--q($2s7@HhrNEejKujvXMxf2X(vu z7Y$=5g$5dRKVdHWb?{?i7d?oZ*>s!OvvC;x>=ne-AGzUsZY*@n`bTlIVu)CJ*z^>n zn%l-1`387Kaq-*P8kJm+vk?JPoZoCiQ9VrZP9tsfg1see4-Cvk`Ag)Q1x;Y&R$1?d ze|W(y*_L=7{>gcrb1V^33`XQa0w=ni2^Fc5O$+_6kNjJm`aexzMiC;fS>inMj)R z6{jns>Rab-)P?;V$uty_XwkdVq1iLr{_Sf>%^W4;ECg{u>8pPO&lkGOR7ejXRPY!y zNPRjXjkjQ-6oTGln<11)8{p78youGhG0!E4F9i=!|_u3q26`u2=IZ1^jE!Q%CMs`$0ZQLIHvPKUwA763aXykB&>j?Ts^Mxls zi~Qnf)_Kd)m?Q<9M+hnnE@*;Tb!3Ejo1 zDsl9RM!hxULhkWUHnj3Cb{79RD~+K;oGh>yMLzXlK++T+8xiKw{>W%s8SP}|+9B+C z`+1Katz4rRo|j{;#FDSjW_92U!(7u5SV#Iqs1nm@JDl+rXZKWPLkwaQqoo+lK(C=B zbzOlqQ$6K)Z@4jTVXZ+qm>o^ZtV)l~(h26H7UgWgL|Hm$gn(R$7XsqE?p zJ`U*@n(Qyp=3|_}i64sIM15(add!7dzpuBF@Kd`>fc!8_>H@P-wZM5IWR*KG%r@ zo=AmbJ^dXI$eqDvKb#mQ(m#=xG1Dm3*ZDc9cQ7#g>69F4f|33YZ!V1xi!L!O^ z53>C+5a;^0G>k1-FOcv%RoIUg1GE40?% zxbyIUZd{&QAs~YC>mF7pa~bg5E{&6uzNL?XwnxXwz1sam`)6FBRSp7M1z0XoKJy>O zvZf~(4tO?=2Sa7HhZ71y_S0%Qrdn9&ZTaE1E1^FOaoNpAI}uE#1OSVJ5vz){%_kn%D~EZhn+6iD2>d3@uN!hGP6BulYW2RAo z6xjF+>1vCU=9*Oj*Y6~fFv1V3)1j;O=JqgyMq66fa>B0{Knmfi!SV=zWggj*tP}Gs z2#)fy7MvwAz@e4e70|Oryzb^6 z)AI;^(L#iFHJJsMUE*vOQ>2K7;apqmZ>N?oY%h`QWtqU4s@FR-@SSmB!b(K7hs2UeB~l; z+!X4d>zVaX^^-;StGXI(cYRa~nlORUH@=`lq7*hBl1?5a-=8@ruC!FJj4TBXRboVi z-V=$lcVGYMl|d=k9_Xei(MSo4F3%~>ntKeVNdN+w=Fh2Knv8~?PRxn@Jla#%KHE^) ztsE#N7w7K2E{S9{Yl->-b5Vyp>aJ99=QIyWPq4l`{mm8SLn;8S?6XUjF;XAsi!$f9 z5wQyW$D^#~KJQ2yHDQCx6BQB{=&m}V7?Z6pw`~-l4Ca#DiCs(~x5D=}Y?$)Ny?gb; z?qjSMWZIoZOmwx4a&Wy>XyDo8#tBo8=WG`nDS`^>o0xDvE1(wwVu6;V@(TR z*xN9Uc{39F7eBF7x=IN9H9dK95`1CP89^iqA%g$EH-XBs5I7NB7V_}zL!*7h74D8}fDNbZ;H@Q&@&=9#BX&0i)G7gP{o{QmalLzYfWJk8>K zCJyW#!5R|#GoQW0vy)rV}oK1Gm-HUP%-=vy7eoLJdxqI@1ok}- zyUokaB)rhwB&hH{4Aft?4&g{rSfdN9g@Bu_Cd{TGHVX?Ato?9Yp7DZL@Ih7b=vuhy z#7@4@g%H|LWB1-JURrW%{RZzoK2Iy~VDnul0%lnUMG*{la<4BQ&FM+*4*JT_Ru<6< zE)3u-6O3C4i@Mt$y;J(PCS`cxjfy?T#|R%B0Nv+OqNb*PA1^QIZ^U!A_vO28GAVgX zgvwapi7HQWj=fg(bDmE>9`i1O+@td+_k_+0oWrnr6&S;N|d{OuY5Jf~3HZCk0pcj+vzS^RPbrNhI1D)|K;98Y+?0 z$ijL0`Nl-?)V9MzkGvXO%HSFVzU<1kY*ivhNyrZ5{!$v*Yluw*y z1`d4-H?>~5?cqjkr;yVIoO0ezJSLRkUn=WeSM36RYOnP*P&vZR9TywRd4s>8!!sTM z&t%aQXGgp#oydl1>Th+R%vy?b;nGW&*sFk6y@8gi(-T@0_-FOFxsbE?QY|&Y1WztuJf*gEGwIjz(vDOi zj~7BmWd<=z22|??-y|_}3it!Difp|$mSTCH-8b#AU&N|Qp4xk7$st*gL%7ko4yGs5X)WS#Ujk<9TPa{%y)UA;Np5nb-Dywq9X&--mLYvWmLjT}3JeFASiwr@q#{gQ| z)$#q{YT-9Iaf0APYkt9J6@D{cE7nvNQ~4}<<=R8v2M7z{+oU14Pw`I0 z!WN)74FLr<*zFMm z{5BDP%n}J8(xf}imp!xlqX4q2H-d^Y$JaMvj|=Kxcdm4Au$xhU^KYw3NJxZg7U!u^cucH~J#^;bVe1yp z>SBu4R%?6%~3g3i|suTw7!)a^;A4_|^E*4k)87PrKQctW8uakJzduzI+KVwuMHr5+KqXx-L zz}@iQ6I)+0`>@OXqV3?(%Ma7-tBr3=f5`Fr9W>0`6wxT%?U;z*PQBW(oGFTlK$MeK zAJY7xZ_vcr@k4-)B>zuc3Y4WTf~piKN=Xrk^Uc|EbvT#(iB&Gh3xAJQYe3ZYyajg5 z8c7R;s!%Ivr%sSGuyt=mTmm^N68b^Q^6M8~yA8|rzR6U8djYJJRAZ=wwTIvXP@b?I9A8c6jFRO%1Bz9UF zIxe}{y&s=_jG&t1 z1q_0|v!Ph`#gYf~V;s9WKxy0(Rd>~%#a2lpk7z~{qIwl<6)6^XaGY`mBZQ~tXAJ*S zY$Afs+MWOZQ4_fDACTvEI+Un^7$C~ff-sn{YRdm>-umZ}|8$_gHiKN*6@Je(HTnYq z=QQ`q4I3EjdL6|=U+WfQ`p5A);kYdIG1h zs*zO49YC>mORJat&jJPM>C}uiu10HE?urj}0cdf7u>8(Po1B-dQ5Dwp&d2piz8Vq* zaMo@S_g;ETH<<>-Ir!7?IR!B$%<0fq5xZ!jkz&#*FfWqHSm^0P|ML__iL;O4*Wat? zR=t@uftK28WkC@(xsj5fqLHh3+$^KK@T`7ULJ zDdef21gv00N1o@$!)mCsrI>89$<357uWleiNPRquCoDMo&Q7Q6i5IJT`bWuF#h-iC z(Vh8E*-$wMMuz@7!M=wZyk`mOt7#R@0-PQ@BYKjSt6^CyVHUV0<6}+By>Sd77BhGI zNb*8uQu;@4hILuAU|vhR6&iE1TgOW8lr=)L4)evWg#J{>vF{}dbJo)F9*^(0ouG&C z!)V}|14u;|J}@GDu78{h^oG5k3lD2vddmX%*Zxf?nr83b0UPOjp+=;kPyzooTvdXF`(oUj`kCmmas|emJJbf`PatBsK8%0I#V(XwNnKF= zE-}0BKJ%M%`nL_$b6x}3!uC%3G4_S<`n}#3& zKwJ}`)z1#XA6mg$%D;=0=UW&WqicKv9_=I-B&L$?`;mH-Z%_en!p4;~M|nfdS!#ZY zrA%?=8>G9(1%Dm_{f-;Pz7j-!7yvhM!mz~$i(VWDd;-$XH559~nZS1GB&Cx(TOX7~ zyS1NI5qw;(Pzl`M74Z1%bv+a>(Pl^^sM%18E8x}l;5$Q> zx5fI8N+Vy_^!66i9_3v=zR2P1lhYM7tiC@)o;fiHfHoqK-9X@rkJ z5iy!&treaU$cZ8cU@wgzKiZ`bBBH8^k#6lxuTu+u^^Hue3HzexT3GlC3{O^7ohq&r z^$qNg=%2`;lV8L?L@;CxO7h8k=XBxy1AchvOtA8K4lOlt5c+r!YyA_1r*BwB*h1Wh zXt==Lb)cDVd?M-C_=JT;h(8v^n*T}z{18;}JqX83Uq>*I${Hvq+HKRx5m zrWOt2HslKUU6!G)!S5bBagvZJEk1?7RKQ6+LD3#3ZR8qr&hJTDzQU0H9Dm+KkB}>- z!=yl10(DDK6&2mr09nWbb{>a47is_2CO>gCrBji7dLh0Rvsp0!B*-MI0_hGrAJ>HqN}y zc;ddzC6-d+t0p;7W(=UjQ!LGEK^*bpX@aSkmvZ_9-ie6~lKr(w-En66t{C*o6u-gk1AA>}BxAdhn)d#VdD%JTY*#;W@7vNh=3Ic3R39^lxBH~T`c!(rxToB= z>k5+P39oyHN%sb2L=Oz?bV=~ZUX%EnCBkt+lyP$f+8cMKxZXa#^Q|^wu_x0VlUkIR zu(s+3qwU{$P*(}fyC({`tDzHnG(v|IsB**`ao(6OtzruvBr1sWQX zepme%YPx5+;kTuA*;T;=#@r~bbaJ2CMFsNIEsBD|FCM&@A+wy^+9mCb_ixG zeZh8Vq|f(LViY6K+r`iQI1gN-spyaP+KsX${-o#wIv*_5;r1yT$c+ikS7t#TTbmqr zI>o4Hd-|m9nQURa9Y1`emx}^x4EX*J)1)FcRjfW|E?8Rs1{+dirZB#B4T(12i}Qo` zd%3rh?Gnbi)NPJpX8F|6OV7v1JBBdOLWi?b$-AfPR?+%I#xJ?zc!*8oC%SZYy8c}n z^Bn2_@-*hZi){V(@Bfl310fX2{@n}?+of)^5`(Xz+5P2p_Z;27d;R~Q b{j*&6Mb!1J(r$E~O Date: Fri, 13 Nov 2026 10:41:56 -0500 Subject: [PATCH 3/6] narrow departed-member day edit rule to same-rate days --- src/content/docs/balances/settle-up.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/balances/settle-up.mdx b/src/content/docs/balances/settle-up.mdx index 724f58d..55f864b 100644 --- a/src/content/docs/balances/settle-up.mdx +++ b/src/content/docs/balances/settle-up.mdx @@ -171,7 +171,7 @@ Potluck says **Payment updated.** and balances follow. If you change the day or the currency, a payment in another currency is converted again at that day's rate. Other changes keep the rate it was saved with. -If someone in the payment has left the group, only the note and the day can change, and it cannot be deleted. That keeps the balances of people who left from moving. For a payment in another currency, a new day would change the rate, so its day cannot change either. +If someone in the payment has left the group, only the note and the day can change, and it cannot be deleted. That keeps the balances of people who left from moving. For a payment in another currency, the day can only change if the rate on the new day is the same, which usually means it cannot. ## Delete a payment From 2561ca94a012b045553c17c4398c4b2ab0a1f28a Mon Sep 17 00:00:00 2001 From: Musa Kaleem <131704022+Musa-Kal@users.noreply.github.com> Date: Fri, 13 Nov 2026 11:01:37 -0500 Subject: [PATCH 4/6] update archive note and README screenshot example --- README.md | 2 +- src/content/docs/groups/settings.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3311b33..8fe8080 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Each screen is saved four times: `--.png`. Use ```mdx import Screenshot from '~/components/Screenshot.astro' - + ``` diff --git a/src/content/docs/groups/settings.mdx b/src/content/docs/groups/settings.mdx index 118ce7e..448c92c 100644 --- a/src/content/docs/groups/settings.mdx +++ b/src/content/docs/groups/settings.mdx @@ -45,7 +45,7 @@ The default split applies to this group only, and it never changes expenses that **Archive group** hides the group from your list. Balances stay put and nothing is deleted. You can tap **Undo** right away, or find it later under **Show archived** on the **Groups** page and tap **Unarchive group**. -While a group is archived, nobody can add expenses to it, change its expenses or make invite links. See [Archived groups are read only](/expenses/editing/#archived-groups-are-read-only). +While a group is archived, nobody can add or change its expenses or payments, or make invite links. See [Archived groups are read only](/expenses/editing/#archived-groups-are-read-only) and, for payments, [Archived groups](/balances/settle-up/#archived-groups). ### Leave the group From e298f10d49dc825ee61669381e8c632fcc5f2b56 Mon Sep 17 00:00:00 2001 From: Musa Kaleem <131704022+Musa-Kal@users.noreply.github.com> Date: Fri, 13 Nov 2026 11:05:03 -0500 Subject: [PATCH 5/6] add payment permissions to roles table --- src/content/docs/groups/roles.mdx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/content/docs/groups/roles.mdx b/src/content/docs/groups/roles.mdx index bee68a9..efe3964 100644 --- a/src/content/docs/groups/roles.mdx +++ b/src/content/docs/groups/roles.mdx @@ -19,6 +19,9 @@ Every group has exactly one **Owner**, any number of **Admins**, and everyone el | --- | :-: | :-: | :-: | | Add expenses, and edit or delete the ones you added or paid | yes | yes | yes | | Edit or delete anyone's expense | yes | yes | no | +| Record a payment you made or received, and edit, delete or restore payments you are in or recorded | yes | yes | yes | +| Record a payment between two other people | yes | yes | no | +| Edit, delete or restore anyone's payment | yes | yes | no | | Add your times, RSVP and comment on plans | yes | yes | yes | | Plan something and nudge people | yes | yes | yes | | Lock in or call off a plan | yes | yes | only plans they organized | From d9dc2dad8e4a741419a998db80755847c539dbe9 Mon Sep 17 00:00:00 2001 From: Musa Kaleem <131704022+Musa-Kal@users.noreply.github.com> Date: Fri, 13 Nov 2026 11:09:11 -0500 Subject: [PATCH 6/6] limit settle-up row button tip to rows where you owe --- src/content/docs/balances/settle-up.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/balances/settle-up.mdx b/src/content/docs/balances/settle-up.mdx index 55f864b..56109b4 100644 --- a/src/content/docs/balances/settle-up.mdx +++ b/src/content/docs/balances/settle-up.mdx @@ -30,7 +30,7 @@ If that clears it, you see **All square with** their name and the balance ticks The other person gets a notification, and the payment shows in the group's expense list, for example **Noor paid you $35.10**. :::tip -On the **Balances** tab, each of your own rows under **Who pays whom** has its own **Settle up** button. It opens the form with that person and amount filled in. +On the **Balances** tab, each row under **Who pays whom** where you owe has its own **Settle up** button. It opens the form with that person and amount filled in. Rows where someone owes you have a [Remind](#remind-someone) button instead. ::: ### Someone paid you