How BillSmart Works

BillSmart turns a messy pile of “who paid for what” into a short list of transfers. This page explains exactly what happens between the numbers you type and the settlement you get, including how exchange rates are handled and where rounding can bite.

Step 1: Pick a base currency

Everything is settled in one currency. Pick the one your group will actually transfer money in, not the one you spent the most in. If four friends live in Taiwan and travel to Japan, the base currency should be TWD, because that is how they will pay each other back afterwards.

If you change the base currency after entering payments, BillSmart re-converts every existing payment rather than making you start over.

Step 2: Add everyone in the group

Enter the number of people and fill in their names. Names are only labels used to attach payments to a person and to download the final settlement PDF. Everyone who either paid for something or benefited from something needs to be in the list, even if they never pulled out a wallet.

Step 3: Log each payment

Every payment needs three things:

  • Who paid, the one person whose card or cash covered the bill.
  • How much, and in which currency: the amount exactly as it appeared on the receipt, in the currency it was charged in.
  • Who it was for: the “Pay for” multi-select. Pick one person, several, or everyone. This is what makes an uneven split possible.

There are no categories, no receipt uploads and no photos. The tool is deliberately narrow.

The most common mistake: logging a €120 dinner as “paid for everyone” when one person skipped dessert and drinks. Split it into two entries instead, one for the shared food, one for the items only some people had. Two entries take ten seconds and remove the argument entirely.

Step 4: What happens to the exchange rate

When a payment’s currency differs from the base currency, BillSmart requests a rate for that specific currency pair and multiplies the amount by it. The original and converted amounts stay together for checking against receipts.

Rates come from two providers, in order:

  1. Frankfurter, which publishes European Central Bank reference rates.
  2. open.er-api.com, used when the first source has no data for that pair.

Each pair is fetched once and reused for the rest of your session, so every payment in the same currency converts at the same rate. If no rate can be found at all, BillSmart shows an error instead of quietly saving a wrong converted amount.

Reference rates are not your bank’s rate. A card issuer typically adds a spread, and a foreign-transaction fee on top of that. Fees vary by card and bank. If the group agrees to reimburse the actual bank charge, enter the statement amount directly in the settlement currency.

Step 5: How the settlement is calculated

This is where most people expect something complicated, and it is genuinely simple. BillSmart never tracks “A owes B” per transaction. It only tracks one number per person.

For each person it computes:

  • Paid: the total of every payment where they were the payer, converted to the base currency.
  • Owed: their share of every payment they benefited from. A payment is divided evenly among the people it was for.
  • Net balance: paid minus owed. Positive means the group owes them; negative means they owe the group.

The net balances always sum to zero. BillSmart sorts the debtors and creditors, then pairs them and moves the smaller of the two amounts, until every balance is cleared. That pairing is what keeps the transfer count low. You end up with at most one fewer transfer than there are people, and usually fewer than that.

A worked example

Four friends (Ana, Ben, Chen, Dara) on a trip settling in USD:

PaymentPaid byForAmount
Hotel, 2 nightsAnaAll four$480
Rental carBenAll four$200
DinnerChenChen, Dara$80

Ana paid $480 and owes $170 (a quarter of the hotel and the car), so her net is +$310. Ben paid $200 and owes $170, so +$30. Chen paid $80 and owes $210, so −$130. Dara paid nothing and owes $210, so −$210.

Naively that looks like six possible debts between four people. BillSmart returns three transfers: Dara pays Ana $210, Chen pays Ana $100, Chen pays Ben $30. Everyone is square.

Rounding that reconciles

Each converted payment is rounded to whole JPY, KRW and TWD, or cents for other supported currencies. It is then divided in those units. Leftover units are assigned to the first selected people in roster order.

For $10 split between Alice, Bob and Charlie, the shares are $3.34, $3.33 and $3.33. If Alice paid, Bob and Charlie each transfer $3.33 to Alice. Her balance is $6.66, exactly matching those transfers.

Keep a settlement record

After entering payments, check the result and click Download PDF in the settlement panel. The file shows every payment, who paid, who it covered, the settlement currency, and who transfers money to whom.

The calculator does not save entries after a refresh or across devices. Download the PDF before closing the page if you need a record. PDF files are stored on your device, wherever your browser puts downloads.

Exchange-rate requests contain currency pairs, not names, amounts or notes. See the privacy policy for analytics and advertising details.

When BillSmart is the wrong tool

Being honest about the limits saves you time:

  • Ongoing shared finances. This page does not retain an editable ledger or offer simultaneous editing. Use a shared service if you need ongoing records.
  • Percentage or share-weighted splits. A payment is divided evenly among the people selected. To give someone a double share, divide the amount into separate entries with different groups; do not duplicate the full payment.
  • Bookkeeping and tax. Use the exchange-rate rules required by your employer or relevant authority rather than assuming this calculator meets them.

Next steps

Open the calculator and log your first three payments. It takes about a minute. If something behaves unexpectedly, the FAQ covers the questions we get most, and the guides go deeper into the etiquette side of splitting money with people you like.