Fuel-card statements and the cost review queue
Import a month of fuel-card fills at once, let it confirm drivers' fills, and clear the rest in Review.
Fuel costs rarely arrive one at a time. A fuel-card statement brings a month of fills in one go, and the Review tab is where anything that needs a person's eye waits.
Garage and hire invoices used to be split across vehicles here. They're now recorded once as bills, with each line allocated to a vehicle. See Garage and hire invoices.
Importing and reviewing need Manage vehicles.
Importing a fuel-card statement

Open Import fuel card statement from Fuel cards › Import statement, or from Costs › Import fuel card. Importing isn't included on the Free plan; the button shows a lock there.
- Name the Provider (optional).
- Choose Upload file and Choose .xlsx or .csv (or drop the file in;
.tsvand.txtwork too), or Paste rows with the header row first. Copy header row gives you a template: Reg, Date, Litres, Net, VAT, Card, Site. - Check the preview, then choose Import {n} rows.
Maliru recognises most providers' column names and shows what it made of each: Registration, Date, Litres, Net amount, VAT, Gross / total, Card ref, Site, Odometer and Product. Anything else is Ignored. A statement needs a registration column and a net or total column. With only a total, net is the total minus the VAT; no VAT rate is ever assumed.
The preview counts "N ready · N skipped · N with errors", up to 2,000 rows at a time. Rows are skipped rather than failed when "No vehicle matches this registration" or the row is "Repeated in this sheet".
Imported rows land confirmed, because the statement is the evidence, and each still gets the plausibility checks below. Importing the same statement twice is safe: rows already imported are skipped rather than doubled.
Statements confirm drivers' fills
A statement row that matches a fill a driver already logged — same vehicle, within a day, and the litres or the amount close — isn't imported again. It's skipped as "Matches a fill logged in the app.", the driver's entry takes the card reference, and if it was still awaiting review it's confirmed with the note "Corroborated by fuel-card import." The driver's odometer reading and receipt stay on the entry.
The result reads like "Imported 42 fuel rows · 3 matched fills a driver already logged · 1 skipped."
The Review tab

Review on the Fleet page has two views, with each entry's Cost entry, Amount and Actions:
- Awaiting review: driver fills, and anything else submitted rather than confirmed. Each shows the gross amount, with Confirm and Reject. Reject this entry asks for a Reason (optional) — "The submitter can see this." — and also removes the fill's odometer reading from the vehicle's readings.
- Flagged: every entry a plausibility check tripped, whatever its status, so a confirmed import with an odd price still shows.
When a view is empty it says "Nothing awaiting review" or "Nothing flagged".
The plausibility flags
| Flag | Trips when |
|---|---|
| Odometer below the previous reading | the reading is lower than the last unflagged one |
| Odometer jump looks implausible | more than 600 miles a day since the last reading |
| Fill exceeds a plausible tank size | litres above the vehicle's Tank capacity (L) plus 10%, or above 150 L if no tank size is set |
| MPG is far outside the plausible band | under 4 or over 90 mpg against the previous fuel fill |
| Price per litre is out of band | gross ÷ litres under 0.50 or over 5.00 |
Flags never block anything. The money is recorded and marked, and a flagged odometer reading is left out of later comparisons. Fix the figure with Edit in the vehicle's Running costs, or reject the fill. A cost that came from a bill is changed on the bill instead.
Each import also fires the An invoice or import is allocated to vehicles alert rule trigger, if you use one. See Recurring costs and tank size.
Tip: import the fuel-card statement every month and let it do the reviewing. Most driver fills confirm themselves, and the queue is left with the real oddities.