Putting together an expense claim your finance team can actually pay
An expense claim is a small piece of paperwork with a surprising number of ways to go wrong: a missing receipt number, a date that falls outside the month you said you were claiming for, a hotel bill in euros dropped into a sterling total without a rate. This article goes through the builder panel by panel, explains how the mileage and currency sums are done, shows what the pasted-in CSV can and cannot cope with, and walks a two-day trip from receipts to a signed form.
A claim is a request, not a record
When you write an invoice you are telling somebody what they owe you. When you write an expense claim you are asking somebody to believe you. That difference shapes everything about the form.
The person approving your claim usually has a pile of receipts on one side and your list on the other. Their job is to match one to the other and satisfy themselves that each item was genuinely spent on work. If they cannot do that quickly, the claim goes into a tray marked query, and the tray is not emptied often.
So the aim of this builder is not a handsome document. It is a form where every line can be checked against a piece of paper in a couple of seconds. That is why the receipt number sits on every row, why the dates are checked against the period you said you were claiming for, and why the mileage is printed with its distance and its rate rather than as a single lump sum.
Who is claiming, and for what stretch of time
The first panel holds the details that identify the claim rather than the spending. Organisation prints in large type at the top of the sheet, because a claim usually goes to an employer rather than coming from you as a business.
Claimant name, staff number, department and cost centre print in a block underneath. The cost centre matters more than it looks: in most accounting systems that code is what decides which budget the money comes out of, and a claim without one sits waiting for somebody to guess. If your organisation uses project codes instead, put the project code there.
Approver is the person who signs the form. Their name is printed above a signature line at the foot of the sheet, next to yours. Filling it in is a small thing that saves an email asking who is supposed to authorise this.
Period from and Period to default to the first of the current month and today. They do two jobs. They print at the top so the reader knows what stretch of time the claim covers, and they drive one of the warnings: any row dated outside that window is counted and reported before you print.
One row for every receipt
Each expense row holds a description, a date, a category, an amount, a currency, a conversion rate and a receipt number. The description gets a full line to itself because it is the field that does the most work, and cramping it encourages the single worst habit in expense claiming: lumping several receipts into one line.
Three coffees over two days entered as Refreshments 11.40 cannot be checked. Three separate rows of 3.80 each, with three receipt numbers, can. It takes twenty seconds longer and removes the most common reason a claim comes back.
The category list covers the things people usually claim: travel, accommodation, meals and subsistence, client entertainment, parking and tolls, taxi and car hire, office supplies, software and subscriptions, training and conferences, telephone and internet, postage and courier, and a catch-all Other. Categories drive the totals table on the printed form, which is often the only part a budget holder reads.
Receipt number is a free text field, so use whatever numbering you already have. Writing R-1042 on the back of a receipt as you collect it, then typing R-1042 into the row, is the single most useful habit in this whole process. If your receipts arrive as email attachments, use the message subject or a running number of your own.
A row you have not touched is ignored. It will not print an empty line, and it will not count towards the totals. That means you can leave a spare row open while you look for the next receipt.
Spending in another currency
Set the claim currency once at the top. Every total on the form, and the amount you are eventually paid, is in that currency. A row can then be set to a different currency with its own conversion rate, and the amount typed on the row is multiplied by that rate to give the figure that goes into the total.
The printed row shows both. Under the description it prints the original amount in its own currency and the rate applied, so an approver can see that a hotel bill of 240 euros became a claim of 205.20 at a rate of 0.855. Nothing is hidden inside a converted number.
There is no rate lookup here and there never will be. This page makes no network calls of any kind, so it cannot fetch an exchange rate even if that seemed like a good idea. It is not a good idea anyway: the rate your employer will check against is the one on your card statement or the one their finance policy publishes, not whatever a website said on the day you typed the claim.
A row left in the claim currency has a rate of 1 and prints with no conversion note at all, which keeps a straightforward domestic claim looking straightforward.
If you paid by card, the honest rate is the one your bank actually charged. Take the sterling figure on the statement, divide it by the foreign amount on the receipt, and type that. It includes whatever fee the bank added, which is usually money you are entitled to claim back too.
Mileage is a different kind of sum
Mileage has its own panel because its arithmetic is different from everything else. There is no receipt: you did not buy 48 miles, you drove them, and the claim is distance multiplied by an agreed rate per unit.
Set the unit to miles or kilometres and give a standard rate. New journeys pick up that rate, but each journey keeps its own copy that you can change. That matters when a rate steps down after a certain number of miles in the year, when a passenger supplement applies, or when you took a different vehicle for one trip.
The default of 0.45 is the rate His Majesty's Revenue and Customs treats as approved for the first ten thousand business miles in a car in the United Kingdom. Above that it drops. Motorcycles and bicycles have their own figures, and every other country sets its own. Your employer may pay less than the approved rate, or more. Check before you build a habit around the default.
Each journey prints with its date, its description, the distance, the rate and the resulting amount, and the whole lot is added into the totals table as a single Mileage category. Write journeys as a route rather than a purpose: Office to client site and back reads better on a form than Client meeting, because a route can be checked on a map.
Advances, floats, and owing money back
If you were given money before the trip, put it in the advance box. It is subtracted from the total at the very end, and only the difference is claimed.
The interesting case is the one most forms handle badly. If you were given three hundred and spent two hundred and forty, you do not have a claim at all: you owe sixty back. The builder lets the figure go negative, and when it does the wording on the sheet changes from amount due to claimant to repayable to the organisation, with the readout above the buttons showing the same figure marked back.
That is worth having rather than avoiding. A cash float that quietly stays in a drawer is the sort of thing that turns into an awkward conversation months later. A form that says plainly how much is going back closes it on the day.
The warnings above the buttons, and why those four
As you type, a small panel above the buttons reports up to four problems. They are not errors and none of them stops you printing. They are simply the things that get queried most often, caught while you can still fix them.
A row with no date. Easy to leave blank when you are typing quickly, and impossible for an approver to place against a trip.
A row dated outside the claim period. Usually this means one of two things: you typed the wrong year, or you have genuinely picked up a receipt from last month. Either way it is better known now than after the claim has been posted to the wrong accounting period.
An amount with no receipt number. Almost every expenses policy has a threshold above which a receipt is compulsory, and quite a few require one for everything. If the item genuinely has no receipt, write something in the field anyway — no receipt, taxi, or a note about why — so it is clearly a decision rather than an omission.
A foreign-currency row still sitting at a rate of 1. This one catches a real mistake: you changed the currency on a row and forgot to type the rate, so a hundred euros went into a sterling total as a hundred pounds.
Pasting rows in from somewhere else
Most people have their spending written down somewhere already, whether that is a downloaded card statement, a spreadsheet, or a note on a phone. The paste box takes that text and turns it into rows.
If the first line looks like a header, its names are matched against a list of the words these columns usually go by. Date, category, description, amount, currency, rate and receipt are obvious, but so are the ones people actually use: details, notes, merchant, supplier, payee, cost, value, gross, spend, ccy, fx rate, voucher, reference. Matched by name means the columns can be in any order, and columns the builder does not recognise are simply skipped.
Without a header the columns are read in a fixed order: date, category, description, amount, currency, receipt.
Amounts come in messy and are cleaned up. Symbols and spaces are stripped, and either decimal convention is read correctly, so both 1,234.50 and 1.234,50 arrive as the same number. An amount in brackets is treated as negative, which is how a refund often appears on a statement.
Dates are read from year-first, day-first, month-first and written forms such as 4 Aug 2026. When a date is genuinely ambiguous — 03/04/2026 could be either — the date format chosen on the page decides, unless one of the two numbers is over twelve and settles it by itself. Any date that cannot be read is left blank and counted in the message that appears when the import finishes, so nothing fails silently.
Categories are matched loosely as well. A row saying Hotel lands on Accommodation, Cab on taxi and car hire, Workshop fee on training and conferences. Something unrecognised is kept exactly as typed rather than being forced into Other, because a company with its own category names should not lose them on the way in.
Add these rows appends to what is there. Replace all rows asks first, then clears the list and starts from the pasted text.
Getting the claim out of the page
There are four ways out, and they are for different jobs.
Print opens your browser's own print dialogue with everything except the sheet hidden. Choosing Save as PDF as the destination gives you a proper document with selectable text, which is what most people want to attach to an email.
Download PNG writes a picture of the form straight to your downloads with no dialogue at all. It is the quickest route on a phone.
Save as text gives the contents as plain text, which is handy for pasting figures into a message.
Download CSV is the one for a finance system. It writes one line per claim row, and each line repeats the claim reference, the claimant, the staff number and the cost centre so that a single row is meaningful on its own after the import has shuffled everything. Both the original amount with its currency and rate, and the converted claim amount, are included. Mileage journeys come out as rows too, with the distance and rate written into the description.
Dates in the CSV are always written year first, whatever format the printed sheet is set to. That is deliberate. A date format is a presentation choice for a human reader; an import that has to guess whether 04/08 means April or August is how a claim ends up posted to the wrong month.
A worked example: two days away
Suppose you spent two days at a client's office in another city. Coming home you have four receipts and a car journey.
Set the period to cover both days and the claim currency to pounds. The first row is the train: description Return train, Leeds to London, the date you travelled, category Travel, amount 96.40, receipt R-1042. The second is the hotel: One night, city centre hotel, 128.00, receipt R-1043. The third is dinner: Evening meal, two people, 34.75, receipt R-1044, category Meals and subsistence. The fourth is the car park at the station: 18.50, receipt R-1045, category Parking and tolls.
Then the driving. Under Mileage, one journey: Home to station and back, 48 miles, at the standard 0.45. The panel shows 21.60 beside it as soon as you type the distance.
The totals table on the sheet now reads Accommodation 128.00, Travel 96.40, Meals and subsistence 34.75, Mileage 21.60, Parking and tolls 18.50. Expenses come to 277.65, mileage adds 21.60, and the total claimed is 299.25.
You were given a fifty pound float before you left, so fifty goes in the advance box and the form says the amount due to you is 249.25. Print it, sign it, staple the four receipts to it, and it is done.
Habits that get a claim paid quickly
Number your receipts as you collect them. A pen and the back of the receipt is enough. Every minute spent here saves five later.
Claim monthly rather than saving it all up. A four-month claim with sixty rows is intimidating to approve, and most policies have a deadline after which an old receipt is refused outright.
Write descriptions for a stranger. Lunch means nothing in six weeks. Lunch with the Fielding project team, four people, does.
Say who else was there for anything involving other people. Meals with clients are treated differently from meals on your own in most tax regimes, and the approver needs to know which one this was.
Keep the receipts after you have sent the claim. The form is your request; the receipts are the evidence, and tax authorities generally expect them to be kept for several years.
Send the CSV alongside the printed form if your finance team will take it. Re-typing thirty rows into an accounting package is exactly the sort of work that produces errors, and it is entirely avoidable.
What this builder does not do
It does not know your employer's policy. There is no per-day meal limit, no check on whether first class rail is allowed, no rule about how far you have to travel before a hotel is reasonable. Those vary by organisation and the form cannot enforce them.
It does not handle tax reclaim. Some organisations recover VAT or GST on expenses and need the tax element of every receipt shown separately. This form claims gross amounts, which is what an employee reimbursement usually needs, and nothing more.
It does not track approvals. Once printed, the form is a piece of paper. Nothing here records whether it was submitted, approved or paid, and there is no reminder if it goes quiet.
It is not an official template. Plenty of employers insist on their own form or their own system, and handing in something different is a good way to have it returned unread. Ask first.
And it does not keep the receipts for you. It builds the request; the evidence is still yours to attach.
Where the figures actually live
Everything is worked out inside the page. The amounts, the hotel names, the client meals, the journeys you drove and the person who approves your claim never leave the device you are typing on. There is no account and no server copy.
That is worth stating plainly, because a completed expense claim is a fairly complete account of where somebody has been and who they met. It is exactly the sort of document that should not be casually uploaded to a free website.
The draft is written into this browser's own storage as you type, so a refresh or an accidentally closed tab does not lose a half-finished claim. That storage belongs to this browser on this machine. Clearing your browsing data deletes it, and it will not appear on your phone.
Start again wipes the saved draft and reloads the page with a fresh example in place, and it asks before doing it. Treat the printed form or the CSV as the real copy, and the page as scrap paper.
One last practical note about money and rounding. Every amount is held internally in whole pence or cents rather than as a decimal fraction, and each row is rounded once, on its own. A column of odd figures therefore adds up to exactly what a calculator gives, instead of drifting a penny out over twenty rows — which is a small thing until it is the reason somebody sends your claim back.
