Selling in USD and Riel without end-of-day cash gaps

Selling in USD and Riel without end-of-day cash gaps

In Cambodia, almost every shop accepts both US dollars (USD) and Riel (KHR). A customer hands over a 20-dollar bill for a 12.75-dollar receipt and you give back 7 dollars and 1,000 Riel — it happens all day long. And that everyday routine is exactly where most cash gaps come from: at the end of the shift the drawer is a few thousand Riel short, there is an extra 1-dollar bill, and nobody can explain why.

This article collects a few simple rules that keep a two-currency shop balanced at the end of the day, whether you use a notebook, Excel or point-of-sale software.

Why do two currencies cause cash gaps?

Gaps rarely come from theft. They come from small "let's just round it" moments:

  • Everyone uses a different rate. The morning cashier counts 1 USD = 4,000 Riel, the afternoon cashier uses 4,100. A hundred receipts with Riel change is enough to create a gap.
  • Converting in your head. The customer pays part in USD and part in Riel; the cashier converts mentally and writes one converted number — and nobody knows how much of each currency is actually in the drawer.
  • Counting the drawer as one total. At the end of the shift everything is converted to USD and compared with sales. Being 2,000 Riel short and 0.50 USD over can "cancel out" on paper, but they are two different mistakes.
  • Inconsistent rounding. Riel has no coins and the smallest note in daily use is 100 Riel — if every cashier rounds differently, the drawer will drift.

1. Fix one exchange rate for the whole shop each day

The most important rule: the whole shop uses one exchange rate, written down, effective from a specific time.

  • Pick a rate that matches the market around your shop (many shops use round numbers such as 4,000 or 4,100 Riel to keep the maths easy).
  • Display the rate at the counter so customers see it too — it is transparent and avoids arguments.
  • When you change the rate, note the time. Receipts before that time use the old rate, receipts after it use the new one.

If you use software, set the rate in one single place so every checkout uses the same number. In LeangPos the rate is set in Settings, takes effect immediately for every new order and keeps a change history — see USD - Riel exchange rate.

2. Price in one main currency

Choose one "base" currency for price tags and bookkeeping — for most shops that is USD. The Riel price is just a converted amount shown to the customer.

Example: a coffee at 1.25 USD → also shown as 5,000 Riel (rate 4,000). Sales are always counted in USD; Riel is only a way of paying.

That way your monthly sales report never mixes two units, and changing the exchange rate does not "change" your selling prices.

3. Record which currency the customer paid with

This is the step most shops skip. Every time you take money, record the currency the customer actually handed over — do not convert before recording:

SituationCorrect record
Receipt 12.75 USD, customer pays 20 USDReceived 20 USD, change 7 USD + 1,000 Riel
Receipt 8 USD, customer pays 5 USD + 12,000 RielReceived 5 USD and 12,000 Riel (= 3 USD)
Receipt 3 USD, customer scans KHQRReceived 3 USD via KHQR — not in the cash drawer

When every payment has a clear currency, at the end of the shift you know exactly how many dollars and how many Riel should be in the drawer.

4. Agree on how to give small change

When giving change, give the whole dollars in USD and anything under 1 USD in Riel. With a rate of 4,000:

  • Change of 7.25 USD → 7 USD + 1,000 Riel.
  • Change of 0.60 USD → 2,400 Riel.

Also agree on how to round Riel amounts below 100 (for example, to the nearest 100 Riel) and make every cashier follow it. Your POS should calculate change at the current rate so cashiers never have to do it in their heads.

5. Count each currency separately at shift close

At the end of the shift, count USD and Riel separately, then compare each with its expected amount:

Expected cash (per currency) = Opening cash + Cash received − Change given − Refunds

Example shift:

  • USD: opening 50, received 420, change 63, no refunds → expected 407 USD. Counted 407 → balanced.
  • Riel: opening 100,000, received 236,000, change 84,000 → expected 252,000 Riel. Counted 248,000 → 4,000 Riel short.

Counting separately shows you straight away where the mistake is (here: Riel — probably wrong change), instead of one vague difference. Write down the reason for any difference when you close the shift, not the next day.

LeangPos calculates the expected amount for each currency when you close a shift and shows the difference as soon as you enter what you counted — see Close a shift and view the summary.

6. Keep KHQR and card payments apart from cash

KHQR and card payments never reach the drawer, so they must not be added to the expected cash. Reconcile them separately at the end of the day: the KHQR total in your POS against the transaction history in your banking app.

Quick checklist

  • One shared exchange rate for the whole shop, with the time of every change.
  • Prices and sales in one base currency.
  • Every payment recorded in the currency the customer actually used.
  • One rule for giving small change in Riel.
  • Count USD and Riel separately at shift close and note any difference.
  • Reconcile KHQR and card payments with the bank separately.

Follow these six rules and most end-of-day gaps disappear — and the ones that remain are easy to trace.

If you want all of this to happen automatically — one rate for every checkout, change calculated for you, shift closing with USD and Riel counted separately — you can try LeangPos for free and follow the checkout guide.

Run your shop more easily with LeangPos

Try it free for 3 months: point of sale, inventory, multiple branches and an online store in one app.