diff --git a/src/components/TopicMenu.astro b/src/components/TopicMenu.astro index e454163..47bea73 100644 --- a/src/components/TopicMenu.astro +++ b/src/components/TopicMenu.astro @@ -16,7 +16,7 @@ const courses = [ name: 'The money', items: [ { href: '/expenses/', title: 'Adding an expense', text: 'Who paid, who it was for' }, - { href: '/expenses/splits/', title: 'Splitting', text: 'Five ways, and the leftover cents' }, + { href: '/expenses/splits/', title: 'Splitting', text: 'Six ways, and the leftover cents' }, { href: '/expenses/currencies/', title: 'Currencies', text: 'Exchange rates, locked on save' }, { href: '/expenses/recurring/', title: 'Repeating expenses', text: 'Rent and other regulars' }, { href: '/expenses/receipts/', title: 'Receipts', text: 'Photos and PDFs' }, diff --git a/src/content/docs/expenses/currencies.mdx b/src/content/docs/expenses/currencies.mdx index d734589..bc423b8 100644 --- a/src/content/docs/expenses/currencies.mdx +++ b/src/content/docs/expenses/currencies.mdx @@ -26,6 +26,14 @@ On the expense, both amounts appear: the original, and the converted amount with alt="A rent expense of 1,450.00 euros. Under the amount, a line reads $1,566.00 in USD at 1.08." /> +## Your last currency is remembered + +On a trip, most expenses are in the same foreign currency. So a new expense starts in the currency you used for the last expense you added in that group. Add one dinner in euros, and the next expense in that group starts in euros too. + +- It is remembered per group. Your trip group can start in euros while your flat stays in dollars. +- It only picks the starting currency, while the form is still empty. If you have already typed an amount or a name, or picked a currency yourself, Potluck never switches it under you. +- Tap the chip to change it, as always. Editing an existing expense keeps that expense's own currency. + ## Where the rates come from Potluck uses the daily reference rates published by the European Central Bank, and refreshes them once a day. For each expense it takes the latest rate on or before the expense's **Date**. A dinner from last Tuesday uses last Tuesday's rate, not today's. diff --git a/src/content/docs/expenses/editing.mdx b/src/content/docs/expenses/editing.mdx index e2d56f8..fcdb899 100644 --- a/src/content/docs/expenses/editing.mdx +++ b/src/content/docs/expenses/editing.mdx @@ -1,6 +1,6 @@ --- title: Editing and deleting -description: Fix an expense, delete one, and bring it back with undo or restore. +description: Fix an expense, see what changed, delete one, and bring it back with undo or restore. --- import { Steps } from '@astrojs/starlight/components' @@ -10,7 +10,7 @@ Typos happen. Here is how to fix them, and who is allowed to. ## Who can change an expense - The person who added it. -- The person who paid for it. +- Anyone who paid for it, including each payer when [several people paid](/expenses/#several-people-paid). - The group's owner and admins, for any expense. Anyone else gets **Only the person who added or paid this, or an admin, can change it.** See [Roles and members](/groups/roles/). @@ -27,8 +27,22 @@ Anyone else gets **Only the person who added or paid this, or an admin, can chan Balances update straight away, and the people in the split get a notification that it changed. +## Edit history + +Every expense keeps a **History** on its page. It lists who added it, who edited it, and who deleted it or brought it back, with when. + +Under each edit, Potluck lists every field that changed, with the old value and the new one: + +- **Amount: $90.00 to $96.00** +- **Paid by: you to you $60.00 and Ben $36.00** +- **Name**, **Currency**, **Split**, **Date**, **Category** and **Notes** +- For by-item bills: **Items**, **Tax**, **Tip** and **Discount** +- **Marked as a refund** or **No longer a refund**, **Receipt added** or **Receipt removed**, and **Linked to a different plan** + +So if a number looks off, open the expense and check who changed what. Edits made before Potluck kept this detail show who edited it, without the list of changes. + :::note[Good to know] -- A [by-item](/expenses/splits/#by-item) expense opens as **Exact** amounts, because Potluck keeps each person's share, not the item list. +- A [by-item](/expenses/splits/#by-item) expense opens with its items, tax, tip and discount, ready to change. One saved before Potluck kept items opens as **Exact** amounts. - **Repeats** cannot be changed on an existing expense. Manage repeating bills under **Repeating** on the Expenses tab. See [Repeating expenses](/expenses/recurring/). - An expense in another currency keeps its saved exchange rate unless you change the currency. ::: @@ -51,3 +65,9 @@ Right after deleting, a message says **Expense deleted.** with an **Undo** butto Missed it? Deleted expenses are not gone for good. If you open one later, for example from a notification, it says **This expense was deleted.** Tap **Restore** to bring it back, with its balances. You cannot edit a deleted expense until you restore it. If someone in the split has left the group since, it cannot be restored. + +## Archived groups are read only + +When a group is [archived](/groups/settings/#archive-a-group), its expenses stay there to look at, but nobody can change them. The expense page says **Supper club is archived, so its expenses can be read but not added or changed.** (with your group's name), and there is no **Edit**, **Delete** or **Restore**, and no new comments. + +To change something, an owner or admin unarchives the group first. See [Archive a group](/groups/settings/#archive-a-group). diff --git a/src/content/docs/expenses/index.mdx b/src/content/docs/expenses/index.mdx index 27f1bf6..3ecae12 100644 --- a/src/content/docs/expenses/index.mdx +++ b/src/content/docs/expenses/index.mdx @@ -23,9 +23,9 @@ An expense says three things: how much, who paid, and who it was for. Potluck wo 3. Fill in **What was it?** and pick a **Category**: Food, Groceries, Drinks, Transport, Gas, Lodging, Tickets, Rent, Utilities, Shopping, Gifts or Other. -4. Check **Paid by** (you, unless you change it) and the **Date**. +4. Check **Paid by** (you, unless you change it) and the **Date**. If more than one person paid, see [Several people paid](#several-people-paid). -5. Under **Split between**, choose who it was for and how to split it. **Equal** with everyone ticked is the default. The five ways to split are explained in [Splitting](/expenses/splits/). +5. Under **Split between**, choose who it was for and how to split it. **Equal** with everyone ticked is the default, unless your group has saved a [default split](/expenses/splits/#default-split). The six ways to split are explained in [Splitting](/expenses/splits/). 6. Add **Notes** or a **Receipt** if you like, and choose whether it **Repeats** (see [Repeating expenses](/expenses/recurring/)). @@ -34,9 +34,60 @@ An expense says three things: how much, who paid, and who it was for. Potluck wo :::note[Good to know] -You can add an expense that someone else paid. Pick them under **Paid by**. Anyone in the group can add expenses, and the person who added it or paid it can change it later. See [Editing and deleting](/expenses/editing/). +You can add an expense that someone else paid. Pick them under **Paid by**. Anyone in the group can add expenses, and the person who added it or anyone who paid it can change it later. See [Editing and deleting](/expenses/editing/). ::: +## Several people paid + +Sometimes the bill gets paid in pieces. Ava put $60 on her card and Ben paid the other $30 in cash. Record it as one expense with two payers. + + + +1. Type the **Amount** first, so Potluck knows the total. +2. Tap **Paid by**. The **Who paid?** sheet opens. +3. Switch from **One person** to **Several people**. +4. Enter what each person paid. Leave anyone who paid nothing empty. +5. Tap **Done**. + + + +The amounts must add up to the total. The bottom of the sheet keeps count as you type: **$30.00 left to assign**, **$5.00 too much**, or **Everything adds up**. If something is still left, a **Rest to** button (for example **Rest to Ben**) gives the whole remainder to the first person with nothing typed yet. You cannot save until it adds up. + +> A $90 dinner split equally between Ava, Ben and Cam, so $30 each. Ava paid $60 and Ben paid $30. Ava is owed $30, Ben is square, and Cam owes Ava $30. + +On the expense and in the list, every payer is named, for example **Ava and Ben paid $90.00**. To go back to a single payer, open **Paid by** again and pick **One person**. + +## Refunds + +Money that comes back is a refund: a returned jacket, a cancelled booking, a deposit you got back. Record it so it lowers what people owe. + + + +1. Add an expense as usual, with the amount that came back. +2. Turn on **This is a refund**, just under **Paid by**. +3. **Paid by** becomes **Received by**. Pick whoever got the money. Several people can share it, the same way as [several payers](#several-people-paid). +4. Under **Split between**, pick who the money belongs to, and split it any way you like. +5. Tap **Save expense**. + + + +A refund works like an expense in reverse. Whoever got the money owes everyone in the split their part of it. + +> Ava paid $120 for four concert tickets, split equally between Ava, Ben, Cam and Dev. One show was moved and the venue sent Ava $40 back. Record a $40 refund, received by Ava, split equally between the same four. Ben, Cam and Dev each owe $10 less, and Ava is owed $30 less. + +Refunds carry a **Refund** badge in the list. Your line reads **you get back** when someone else got the money, or **you owe** when you did. A refund cannot repeat, so **Repeats** is hidden while the switch is on. + +## Quick split for two + +When a group or one-on-one tab has just two people, four buttons save you a few taps: + +- **You paid, split equally** +- **Ben owes you all of it** +- **Ben paid, split equally** +- **You owe Ben all of it** + +Each one sets **Paid by** and the split in one tap: the **split equally** buttons halve it, and the **all of it** buttons put the whole amount on the other person. On a phone they sit right under **Paid by**. On a wider screen they are at the top of **Split between**, under **Quick split**. Anything else, like percentages or exact amounts, is still there in the full split options below. + ## Reading the expense list The **Expenses** tab lists expenses and payments by day, newest first. Each line tells you where it leaves you: @@ -45,6 +96,8 @@ The **Expenses** tab lists expenses and payments by day, newest first. Each line - **you borrowed** an amount: someone else paid, and this is your share. - **not involved**: you were not part of the split. +[Refunds](#refunds) read the other way round: **you get back** or **you owe**. + Payments between people show as, for example, **Noor paid you $35.10**. Use **Search expenses** to find something by name, or tap a category chip to see only that kind of expense. ## Expense details @@ -56,7 +109,7 @@ Tap an expense to open it. alt="The detail page for a Rent expense of 1,450.00 euros, converted to $1,566.00 in USD at 1.08. It was paid by Ravi on Thursday, November 5, 2026. The card below says Split equally: You owe 725.00 euros, and Ravi paid with a share of 725.00 euros. It notes Added by Ravi 1 hour ago, then a Comments section with a Say something nice field." /> -You see who paid, how it was split and what each person owes, who added it and when, the receipt and notes, and the exchange rate if it was in another currency. At the bottom, **Comments** is a place for the group to talk about this expense ("was the tip in there?"). +You see who paid (and how much each, if several people did), how it was split and what each person owes, the items of a [by-item](/expenses/splits/#by-item) bill, the receipt and notes, and the exchange rate if it was in another currency. **History** lists who added and changed it; see [Edit history](/expenses/editing/#edit-history). At the bottom, **Comments** is a place for the group to talk about this expense ("was the tip in there?"). ## Expenses for a plan diff --git a/src/content/docs/expenses/splits.mdx b/src/content/docs/expenses/splits.mdx index 2155f17..f67fe39 100644 --- a/src/content/docs/expenses/splits.mdx +++ b/src/content/docs/expenses/splits.mdx @@ -1,11 +1,11 @@ --- title: Splitting -description: The five ways to split an expense in Potluck, with worked examples, and how leftover cents are handled. +description: The six ways to split an expense in Potluck, with worked examples, a group default split, and how leftover cents are handled. --- import Screenshot from '~/components/Screenshot.astro' -Under **Split between** on an expense, pick who it was for by tapping their names, then pick how to split it: **Equal**, **Exact**, **Percent**, **Shares** or **By item**. Whatever you choose, the shares always add up to the total, to the cent. +Under **Split between** on an expense, pick who it was for by tapping their names, then pick how to split it: **Equal**, **Exact**, **Percent**, **Shares**, **Adjust** or **By item**. On a phone the row of choices scrolls sideways. Whatever you choose, the shares always add up to the total, to the cent. ## Equal @@ -48,6 +48,21 @@ Give each person a number of shares and the cost is divided in proportion. Coupl Use the minus and plus buttons next to each name, or type a number. Half shares and other fractions are fine. +## Adjustment + +Everyone pays the same, except for a few dollars here and there. Tap **Adjust**, then add or take off an amount for anyone who should pay more or less. Potluck takes the adjustments off the top and splits the rest equally. + +> A $96 dinner for Ava, Ben and Cam. Ben ordered a $15 bottle of wine just for himself, so give him +$15. That leaves $81 to split equally: Ava $27, Ben $27 + $15 = $42, Cam $27. + +To take something off, tap the minus button next to the person's amount. Say Cam skipped dessert and should pay $6 less. With Ben at +$15 and Cam at -$6, the equal part is $96 - $15 + $6 = $87, or $29 each. Ava pays $29, Ben $44 and Cam $23. + +The line under the list shows the equal part, for example **$87.00 split equally, then the adjustments**. Leave a person's adjustment empty and they simply pay the equal part. + +Two things are not allowed: + +- Adjustments that add up to more than the total: **The adjustments add up to more than the total.** +- A minus that takes someone below zero: **A minus adjustment takes someone below zero.** + ## By item For restaurant bills where people ordered different things. Assign each item to the people who had it, and tax and tip follow along. @@ -59,20 +74,46 @@ For restaurant bills where people ordered different things. Assign each item to 1. Type the item's name and **Price**, then tap the names of **Who had it?** An item shared by three is split equally between those three. 2. Tap **Add item** for the next one. -3. Enter the **Tax** and the **Tip**. The **15%**, **18%** and **20%** chips fill in the tip as a percentage of the subtotal. +3. Enter the **Tax** and the **Tip**. The **15%**, **18%** and **20%** chips fill in the tip as a percentage of the subtotal. Tap a chip again to clear it, or type your own tip. +4. Got a coupon or a happy hour deal? Enter it under **Discount**. -The **Total** comes from the items, so you do not type an amount at the top. +The **Total** is the subtotal plus tax and tip, minus the discount. It comes from the items, so you do not type an amount at the top. -Tax and tip are split in proportion to what each person ordered. If your food was a third of the subtotal, you pay a third of the tax and tip. +Tax, tip and discount are split in proportion to what each person ordered. If your food was a third of the subtotal, you pay a third of the tax and tip, and you get a third of the discount. > Pizza $30 (Ava and Ben), salad $12 (Ben), drinks $18 (Ava and Cam). Subtotal $60: Ava had $24, Ben $27, Cam $9. Add $6 tax and a $12 tip, $18 in all. > > Ava had 40% of the food, so she pays 40% of the $18: $7.20, for $31.20. Ben had 45%: $8.10 more, $35.10. Cam had 15%: $2.70 more, $11.70. Together that is the $78 total. :::note[Good to know] -Potluck saves what each person owes, not the item list. If you edit a by-item expense later, it opens as **Exact** amounts with everyone's final share filled in. +Potluck keeps the bill as you entered it: every item, who had it, and the tax, tip and discount. The expense page lists them under **Items**. When you edit the expense, the items open again, ready to change. By-item expenses saved before Potluck kept items open as **Exact** amounts instead, with a note saying so. ::: +## Default split + +If your group splits most things the same way, save it as the group's default split. Every new expense in that group then starts with it, and you only change it for the odd one out. + +> Ravi and Sam share a flat with Ike. Ravi and Sam have the big room, so rent and bills are split by shares: Ravi 2, Sam 2, Ike 1. Save that once, and every new expense in the group opens that way. + +A default split can be **Equal** (between everyone or only some people), **Percent** or **Shares**. **Exact**, **Adjust** and **By item** depend on the amount, so they cannot be a default. + +There are two places to set it. + +**From an expense** +: Set up the split the way you want on **New expense**. Tick **Use this split for new expenses in this group** under the split, then save the expense. + +**From group settings** +: Open the group's **Settings** tab and find **Default split**. Tap **Change**, pick the people and the split, and tap **Save default split**. See [Group settings](/groups/settings/#default-split). + +When a new expense opens with the default, a note under the split says **This is the group default for new expenses.** Tap **Back to equal** there, or in settings, to clear the group default for everyone. New expenses then split equally between everyone again. + +Good to know about the default split: + +- It applies to that group only. Your other groups keep their own default, or none. +- Anyone in the group can change it, not only owners and admins. +- It only shapes where new expenses start. It never changes an expense that is already saved, and it never moves a balance. +- People who have left the group are dropped from it. New members are included automatically when the default is **Equal** between everyone. + ## How rounding works Money only comes in whole cents, and splits rarely divide evenly. Potluck handles it the same way every time: diff --git a/src/content/docs/groups/index.mdx b/src/content/docs/groups/index.mdx index 3aeace1..99e36c9 100644 --- a/src/content/docs/groups/index.mdx +++ b/src/content/docs/groups/index.mdx @@ -57,7 +57,7 @@ The tabs underneath: | **Balances** | Who owes whom, and the **Settle up** button. See [Balances](/balances/). | | **Plans** | The group's open polls and what is on the calendar. See [Plans](/plans/). | | **Members** | Everyone in the group, their role and their balance. See [Roles](/groups/roles/). | -| **Settings** | Name, emoji, color, currency, house rules, archive, leave and delete. See [Group settings](/groups/settings/). | +| **Settings** | Name, emoji, color, currency, house rules, default split, archive, leave and delete. See [Group settings](/groups/settings/). | On a phone the tabs scroll sideways, so swipe left to reach **Members** and **Settings**. @@ -67,7 +67,7 @@ A one-on-one tab with a friend works like a small group with only **Expenses** a ## Download a group's expenses -On the **Expenses** tab, tap the download button next to the search field (**Export CSV**). You get a spreadsheet with the date, description, category, who paid, the amount and currency, the exchange rate, the amount in the group currency, notes, and each person's share. +On the **Expenses** tab, tap the download button next to the search field (**Export CSV**). You get a spreadsheet with the date, description, category, who paid, the amount and currency, the exchange rate, the amount in the group currency, notes, and each person's share. When several people paid, **Paid by** lists each of them with what they paid. Refunds show as negative amounts and shares. ## Archived groups diff --git a/src/content/docs/groups/roles.mdx b/src/content/docs/groups/roles.mdx index b9a053c..bee68a9 100644 --- a/src/content/docs/groups/roles.mdx +++ b/src/content/docs/groups/roles.mdx @@ -26,6 +26,7 @@ Every group has exactly one **Owner**, any number of **Admins**, and everyone el | Make admin invite links | yes | no | no | | Change roles and remove people | yes | regular members only | no | | Change group settings, archive the group | yes | yes | no | +| Change the group's default split | yes | yes | yes | | Transfer ownership, delete the group | yes | no | no | In the app's own words: the owner "runs the place", admins "can edit settings, manage members, and fix anyone's expenses", and members "add expenses, vote on plans, and settle up". diff --git a/src/content/docs/groups/settings.mdx b/src/content/docs/groups/settings.mdx index 8306425..118ce7e 100644 --- a/src/content/docs/groups/settings.mdx +++ b/src/content/docs/groups/settings.mdx @@ -1,11 +1,11 @@ --- title: Group settings -description: Rename a group, change its look, set the house rules, and archive, leave or delete it. +description: Rename a group, change its look, set the house rules and the default split, and archive, leave or delete it. --- import Screenshot from '~/components/Screenshot.astro' -Open a group and tap the **Settings** tab (swipe the tabs left on a phone). Owners and admins can change everything here. Members see the same page read-only, with the note **Only owners and admins can change these.** +Open a group and tap the **Settings** tab (swipe the tabs left on a phone). Owners and admins can change everything here. Members see the same page read-only, with the note **Only owners and admins can change these.** The one exception is the [default split](#default-split), which anyone in the group can change.