Employee Daily-Use Tools

Expense Reimbursement Calculator

Build an expense claim line by line: categories, a tax or VAT split, per-diem and policy caps that flag anything over limit, conversion at the rate you enter for foreign spend, and a claim summary to print.

  • Claim total with tax split
  • Over-policy flags
  • Printable claim and CSV
Runs in your browser

Everything you paste, type or drop is processed in this browser tab. It is not uploaded, logged, stored or sent to analytics.

Expense claims workspace

1 The claim

Examples:

Any code. It is a label - no rates are fetched and none are assumed.

Used when a line says inc or exc without its own rate.

One line per receipt: date, description, category, amount, currency, rate, tax. Tax is inc, exc, none or a rate such as inc:5. Add noreceipt to flag a missing receipt.

For example 2026-09-08, Dinner, Meals, 46.20, GBP, 1, inc.

2 Policy caps

One per line: category, scope, limit. Scope is line, day or claim; use * for every category. Caps flag lines - they never remove them.

Per diem instead of receipts

3 Claim summary

Add some lines, or load an example.

What the Expense Reimbursement Calculator does

This calculator builds an expense claim line by line: each receipt with its category, its tax treatment, and - for foreign spend - the exchange rate you enter. It splits tax out of gross amounts, totals by category, and checks the claim against policy caps at three levels: a single receipt, a day, or the whole claim.

Two things it deliberately will not do. It does not fetch exchange rates, because a rate pulled from the internet is not the rate on your card statement and finance teams reconcile against the statement. And it does not approve anything: a cap breach is flagged, the line stays in the claim, and whether to pay, part-pay or reject is the approver's decision.

How to use it

  1. Set the claim currency and the default tax rate. The currency is a label - no conversion happens without a rate you supply.
  2. Paste the lines: date, description, category, amount, currency, rate, tax. The tax field is inc, exc or none, with an optional rate such as inc:9 when a line differs from the default.
  3. Add noreceipt to any line where the receipt is missing, so it is flagged rather than quietly claimed.
  4. Enter the policy caps, one per line, as category, scope, limit - scope being line, day or claim, and * meaning every category.
  5. Read the totals and the findings, then download the claim as CSV or JSON for your expenses system.

Reading the results

Gross is what was paid. Net is gross less tax. On a tax-inclusive line the net is gross / (1 + rate), which is why 20% tax on a gross of 120 is 20 and not 24.

Recoverable tax is shown separately because a registered business does not ultimately bear it, and a claim total that includes it overstates the real cost.

A cap breach names the scope, the amount and the excess. Day caps add up every line in that category on that date, which is how meal allowances are normally written.

Totals are summed from unrounded line values, so the printed total can differ by a cent from the sum of the printed lines. The CSV carries more decimal places if you need to reconcile exactly.

Worked example: a two-day trip against a 50-a-day meals cap

Six lines: return rail 84.00 with no recoverable tax, lunch 12.40, dinner 46.20 and a hotel at 128.00 - all tax-inclusive at 20% - then breakfast 9.80 the next morning with no receipt, and an 18.50 taxi.

The claim totals 298.90 gross. The tax inside the four inclusive lines is each amount divided by six: 2.0667 + 7.70 + 21.3333 + 1.6333 = 32.7333, so the net is 266.1667.

Two caps apply. Meals are capped at 50 a day: on the first day lunch and dinner come to 58.60, which is 8.60 over, and both lines are flagged. On the second day breakfast alone is 9.80, well inside. Accommodation is capped at 120 per line, so the 128.00 hotel is 8.00 over.

The breakfast line is also flagged for having no receipt - separately from the cap, because they are different problems with different remedies.

Formulas and scoring rules

Tax-inclusive line
net = gross / (1 + rate); tax = gross - netA 20% inclusive gross of 120 contains 20 of tax, not 24.
Tax-exclusive line
tax = net x rate; gross = net + tax
Currency conversion
amount in claim currency = amount x rateRate is how many units of the claim currency one unit of the spend currency buys. Entered by you; never fetched.
Day cap
sum of gross for that category on that date > limit
Claim cap
sum of gross for that category across the whole claim > limit

Three kinds of cap, and why they are separate

A per-line cap catches one extravagant receipt: a hotel above the nightly limit, a single meal above the meal limit. A per-day cap catches the pattern a line cap misses - three modest meals that together exceed the daily allowance. A per-claim cap catches the total for a trip or a month.

Most policies use more than one at once, and they interact: a claim can pass every line cap and still breach the day cap. Keeping them distinct means the flag tells the approver which rule was broken, which is the only version of the information that is useful.

Why no exchange rates are fetched

Reimbursement is normally made at one of three rates: the rate on the card statement, the organisation's published monthly rate, or the rate on the day of spend from a named source. None of those is "today's mid-market rate", which is what a live rate feed would supply, and using the wrong one leaves a permanent small difference between the claim and the ledger.

So the rate is a field. Type the one your policy specifies, keep the evidence with the receipt, and the page flags anything that looks inverted - a rate above 1,000 or below 0.0001 is nearly always the wrong way round.

Limitations: what the result does not prove

  • It does not know your expenses policy. The caps are the ones you type, and a claim with no cap breaches is not an approved claim.
  • It does not decide what is claimable. Entertaining, alcohol, fines, upgrades and personal elements of mixed spend are treated differently everywhere.
  • It calculates a tax split but does not determine recoverability. Whether input tax can be reclaimed depends on the receipt, the country and the nature of the spend - a name-and-address receipt requirement is common.
  • No exchange rate, tax rate or per-diem rate ships with this page. Everything volatile is entered by you.

Privacy: where your data goes

Everything you paste, type or drop is processed in this browser tab. It is not uploaded, logged, stored or sent to analytics. Session recording and tag-manager scripts are switched off on this page.

Standards and sources

Frequently asked questions

How do I work out the VAT inside a gross expense?

Divide the gross by one plus the rate to get the net, then subtract. At 20% the tax is the gross divided by six, so 46.20 contains 7.70. Mark the line inc and the calculator does it; use exc when tax is added on top instead.

What exchange rate should I use for a foreign expense?

The one your policy specifies - usually the rate on the card statement, your organisation's published monthly rate, or the rate on the day from a named source. This page never fetches a rate, because the internet's rate and your finance team's rate are rarely the same number.

What is the difference between a line, day and claim cap?

A line cap limits one receipt, a day cap limits everything in a category on one date, and a claim cap limits the whole submission. They catch different things: three ordinary meals can pass every line cap and still break a daily meal allowance.

Does a flagged line get removed from the claim?

No. The line stays and the total is unchanged - the flag simply tells the approver which rule was broken and by how much. Removing or capping a line automatically would hide the decision that someone actually has to make.

How are per diems handled?

Separately, in the advanced section: days multiplied by the rate you enter, less a deduction for each meal that was provided. No per-diem rate is built in, because they are published per country and per city and change every year.

Why does the total differ by a penny from the sum of the lines?

Because the total is summed from unrounded values and each line is rounded only for display. The CSV export carries more decimal places, so use it if the claim has to tie exactly to a ledger entry.

Are my receipts or figures uploaded?

No. Everything runs in the browser, nothing is sent to a server and nothing is stored between visits. Expense lines often reveal travel patterns and client names, which is exactly why this tool keeps them local.

Last reviewed by the A2Z.Tools team against the sources listed above.

Rate this tool

Was this tool useful? Your feedback helps us improve it.

No ratings yet — be the first to rate this tool.
Your rating (required)
0 / 2000

Please do not include passwords, payment details or other sensitive information.

Your feedback is sent privately to the A2Z.Tools team and will not be posted publicly.