expense: base change converts every amount (bare, currencied, settlement)

converts bare + currencied + settlement amounts on a base change

group splitsheet expense/base-change.spec.ts

πŸ‘₯ People

Alice @alice
sendsAlice runs /newsplit @bob
πŸ‘₯ Group chat
Alice
/newsplit @bob
Hello! I’m @splitsheetbot, here to help you split bills with friends. β€” show full message
Hello! I’m @splitsheetbot, here to help you split bills with friends.
I use something called a Splitsheetβ€”a dynamic message that keeps track of all expenses and debts. Below, you’ll find your first Splitsheet.

Here’s how to get started:
1. Join the Splitsheet by clicking the πŸ‘₯⁠βž• button (or reply with add @​username)
2. Reply to the Splitsheet with a description of your expense
3. Pin the Splitsheet for quick access

Examples of messages:
- groceries 50 (sender paid, and the cost is split evenly among all members)
- bought coffee for Emma 15 (sender paid, and only Emma owes)
- John bought concert tickets for me and Sarah, 40 each (John spent 80, and both Sarah and you owe)

How to edit expenses:
- Edit your own message
- Reply to your message with the changes
- Reply to your message requesting deletion

Adding expenses is free. One payment shows who owes whom, for the whole group, forever.

When you're ready to start a new Splitsheet, use the /newsplit command. You can mention members to add them immediately: /newsplit @​alice @​bob
If you have any questions or suggestions, feel free to contact @splitsheet_help_bot
🌐
πŸ“‹ Splitsheet

πŸ‘₯ Alice, @bob

Your expenses will appear here

↩️ Reply to add an expense. Or tap here
πŸ‘€βž•More β€’β€’β€’ β†—
πŸ›‘οΈ Admin log channel
πŸ“‹ #splitsheet_created
By: Alice
Sheet: 5516a019-5061-4aba-9095-ae1f187a1c12

πŸ‘€ #member_joined
Name: Alice
Sheet: 5516a019-5061-4aba-9095-ae1f187a1c12

πŸ‘€ #member_joined
Name: bob
Sheet: 5516a019-5061-4aba-9095-ae1f187a1c12
viaWebApp.setCurrencyAlice sets the base currency to USD
πŸ‘₯ Group chat
Alice
/newsplit @bob
Hello! I’m @splitsheetbot, here to help you split bills with friends. β€” show full message
Hello! I’m @splitsheetbot, here to help you split bills with friends.
I use something called a Splitsheetβ€”a dynamic message that keeps track of all expenses and debts. Below, you’ll find your first Splitsheet.

Here’s how to get started:
1. Join the Splitsheet by clicking the πŸ‘₯⁠βž• button (or reply with add @​username)
2. Reply to the Splitsheet with a description of your expense
3. Pin the Splitsheet for quick access

Examples of messages:
- groceries 50 (sender paid, and the cost is split evenly among all members)
- bought coffee for Emma 15 (sender paid, and only Emma owes)
- John bought concert tickets for me and Sarah, 40 each (John spent 80, and both Sarah and you owe)

How to edit expenses:
- Edit your own message
- Reply to your message with the changes
- Reply to your message requesting deletion

Adding expenses is free. One payment shows who owes whom, for the whole group, forever.

When you're ready to start a new Splitsheet, use the /newsplit command. You can mention members to add them immediately: /newsplit @​alice @​bob
If you have any questions or suggestions, feel free to contact @splitsheet_help_bot
🌐
πŸ“‹ Splitsheet

πŸ‘₯ Alice, @bob

Your expenses will appear here

↩️ Reply to add an expense. Or tap here
πŸ‘€βž•More β€’β€’β€’ β†—
πŸ“± Mini App
Mini App
repliesAlice replies to the splitsheet: β€œtaxi 100”
πŸ‘₯ Group chat
Alice
/newsplit @bob
Hello! I’m @splitsheetbot, here to help you split bills with friends. β€” show full message
Hello! I’m @splitsheetbot, here to help you split bills with friends.
I use something called a Splitsheetβ€”a dynamic message that keeps track of all expenses and debts. Below, you’ll find your first Splitsheet.

Here’s how to get started:
1. Join the Splitsheet by clicking the πŸ‘₯⁠βž• button (or reply with add @​username)
2. Reply to the Splitsheet with a description of your expense
3. Pin the Splitsheet for quick access

Examples of messages:
- groceries 50 (sender paid, and the cost is split evenly among all members)
- bought coffee for Emma 15 (sender paid, and only Emma owes)
- John bought concert tickets for me and Sarah, 40 each (John spent 80, and both Sarah and you owe)

How to edit expenses:
- Edit your own message
- Reply to your message with the changes
- Reply to your message requesting deletion

Adding expenses is free. One payment shows who owes whom, for the whole group, forever.

When you're ready to start a new Splitsheet, use the /newsplit command. You can mention members to add them immediately: /newsplit @​alice @​bob
If you have any questions or suggestions, feel free to contact @splitsheet_help_bot
🌐
πŸ“‹ Splitsheet

πŸ’° $100.00 β€’ πŸ‘₯ Alice, @bob

Jun 19, 2026
Taxi ― $100.00 β€’ Alice for all

πŸ”’ All debts are already calculated. Unlock to see them

↩️ Reply to add an expense. Or tap here
πŸ‘€βž•More β€’β€’β€’ β†—
πŸ”“ See the debts
Alice
πŸ“‹ Splitsheet πŸ’° $100.00 β€’ πŸ‘₯ Alice, @bob Jun 19, 2026 Taxi ― $100.00 β€’ Alice f…
taxi 100
✍️
repliesAlice replies to the splitsheet: β€œhotel 1200 ft”
πŸ‘₯ Group chat
Alice
/newsplit @bob
Hello! I’m @splitsheetbot, here to help you split bills with friends. β€” show full message
Hello! I’m @splitsheetbot, here to help you split bills with friends.
I use something called a Splitsheetβ€”a dynamic message that keeps track of all expenses and debts. Below, you’ll find your first Splitsheet.

Here’s how to get started:
1. Join the Splitsheet by clicking the πŸ‘₯⁠βž• button (or reply with add @​username)
2. Reply to the Splitsheet with a description of your expense
3. Pin the Splitsheet for quick access

Examples of messages:
- groceries 50 (sender paid, and the cost is split evenly among all members)
- bought coffee for Emma 15 (sender paid, and only Emma owes)
- John bought concert tickets for me and Sarah, 40 each (John spent 80, and both Sarah and you owe)

How to edit expenses:
- Edit your own message
- Reply to your message with the changes
- Reply to your message requesting deletion

Adding expenses is free. One payment shows who owes whom, for the whole group, forever.

When you're ready to start a new Splitsheet, use the /newsplit command. You can mention members to add them immediately: /newsplit @​alice @​bob
If you have any questions or suggestions, feel free to contact @splitsheet_help_bot
🌐
πŸ“‹ Splitsheet

πŸ’° $103.64 β€’ πŸ‘₯ Alice, @bob

Jun 19, 2026
Taxi ― $100.00 β€’ Alice for all
Hotel ― 1,200.00Ft (β‰ˆ$3.64) β€’ @bob for all

πŸ”’ All debts are already calculated. Unlock to see them

↩️ Reply to add an expense. Or tap here
πŸ‘€βž•More β€’β€’β€’ β†—
πŸ”“ See the debts
Alice
πŸ“‹ Splitsheet πŸ’° $103.64 β€’ πŸ‘₯ Alice, @bob Jun 19, 2026 Taxi ― $100.00 β€’ Alice f…
taxi 100
✍️
Alice
πŸ“‹ Splitsheet πŸ’° $103.64 β€’ πŸ‘₯ Alice, @bob Jun 19, 2026 Taxi ― $100.00 β€’ Alice f…
hotel 1200 ft
✍️
viaWebApp.settleAlice paid Bob 50 Β· via Mini App
  • βœ“under USD the total is the bare 100 plus the converted HUF expense
  • βœ“the settlement was recorded at 50
  • βœ“the splitsheet shows the USD symbol
πŸ‘₯ Group chat
Alice
/newsplit @bob
Hello! I’m @splitsheetbot, here to help you split bills with friends. β€” show full message
Hello! I’m @splitsheetbot, here to help you split bills with friends.
I use something called a Splitsheetβ€”a dynamic message that keeps track of all expenses and debts. Below, you’ll find your first Splitsheet.

Here’s how to get started:
1. Join the Splitsheet by clicking the πŸ‘₯⁠βž• button (or reply with add @​username)
2. Reply to the Splitsheet with a description of your expense
3. Pin the Splitsheet for quick access

Examples of messages:
- groceries 50 (sender paid, and the cost is split evenly among all members)
- bought coffee for Emma 15 (sender paid, and only Emma owes)
- John bought concert tickets for me and Sarah, 40 each (John spent 80, and both Sarah and you owe)

How to edit expenses:
- Edit your own message
- Reply to your message with the changes
- Reply to your message requesting deletion

Adding expenses is free. One payment shows who owes whom, for the whole group, forever.

When you're ready to start a new Splitsheet, use the /newsplit command. You can mention members to add them immediately: /newsplit @​alice @​bob
If you have any questions or suggestions, feel free to contact @splitsheet_help_bot
🌐
πŸ“‹ Splitsheet

πŸ’° $103.64 β€’ πŸ‘₯ Alice, @bob

Jun 19, 2026
Taxi ― $100.00 β€’ Alice for all
Hotel ― 1,200.00Ft (β‰ˆ$3.64) β€’ @bob for all

πŸ”’ All debts are already calculated. Unlock to see them

↩️ Reply to add an expense. Or tap here
πŸ‘€βž•More β€’β€’β€’ β†—
πŸ”“ See the debts
Alice
πŸ“‹ Splitsheet πŸ’° $103.64 β€’ πŸ‘₯ Alice, @bob Jun 19, 2026 Taxi ― $100.00 β€’ Alice f…
taxi 100
✍️
Alice
πŸ“‹ Splitsheet πŸ’° $103.64 β€’ πŸ‘₯ Alice, @bob Jun 19, 2026 Taxi ― $100.00 β€’ Alice f…
hotel 1200 ft
✍️
πŸ“± Mini App
Mini App
viaWebApp.setCurrencyAlice sets the base currency to EUR
  • βœ“after switching base to EUR the bare and HUF expenses convert to their EUR totals
  • βœ“the settlement keeps its stored amount of 50
  • βœ“the settlement keeps its settle-time currency USD
  • βœ“the base was selected twice (USD then EUR)
  • βœ“the splitsheet shows the EUR symbol
  • βœ“the HUF expense still shows the forint symbol
  • βœ“the settlement still shows the USD symbol
  • βœ“the EUR total is stable across a re-read (no drift)
πŸ‘₯ Group chat
Alice
/newsplit @bob
Hello! I’m @splitsheetbot, here to help you split bills with friends. β€” show full message
Hello! I’m @splitsheetbot, here to help you split bills with friends.
I use something called a Splitsheetβ€”a dynamic message that keeps track of all expenses and debts. Below, you’ll find your first Splitsheet.

Here’s how to get started:
1. Join the Splitsheet by clicking the πŸ‘₯⁠βž• button (or reply with add @​username)
2. Reply to the Splitsheet with a description of your expense
3. Pin the Splitsheet for quick access

Examples of messages:
- groceries 50 (sender paid, and the cost is split evenly among all members)
- bought coffee for Emma 15 (sender paid, and only Emma owes)
- John bought concert tickets for me and Sarah, 40 each (John spent 80, and both Sarah and you owe)

How to edit expenses:
- Edit your own message
- Reply to your message with the changes
- Reply to your message requesting deletion

Adding expenses is free. One payment shows who owes whom, for the whole group, forever.

When you're ready to start a new Splitsheet, use the /newsplit command. You can mention members to add them immediately: /newsplit @​alice @​bob
If you have any questions or suggestions, feel free to contact @splitsheet_help_bot
🌐
πŸ“‹ Splitsheet

πŸ’° 88.92€ β€’ πŸ‘₯ Alice, @bob

Jun 19, 2026
Taxi ― $100.00 (β‰ˆ85.8€) β€’ Alice for all
Hotel ― 1,200.00Ft (β‰ˆ3.12€) β€’ @bob for all

πŸ”’ All debts are already calculated. Unlock to see them

↩️ Reply to add an expense. Or tap here
πŸ‘€βž•More β€’β€’β€’ β†—
πŸ”“ See the debts
Alice
πŸ“‹ Splitsheet πŸ’° 88.92€ β€’ πŸ‘₯ Alice, @bob Jun 19, 2026 Taxi ― $100.00 (β‰ˆ85.8€) ‒…
taxi 100
✍️
Alice
πŸ“‹ Splitsheet πŸ’° 88.92€ β€’ πŸ‘₯ Alice, @bob Jun 19, 2026 Taxi ― $100.00 (β‰ˆ85.8€) ‒…
hotel 1200 ft
✍️
πŸ“± Mini App
Mini App