Guide · Daily operations

The daily sales report format that actually reconciles

Most daily sheets record what happened. A good one proves it. Here is the format, column by column, with a worked example and the four checks that make it worth filling in.

9 min read · Updated

14 days free · no card needed · works on the forecourt

What a daily sheet is for

A daily sales report has one job that a stack of meter slips does not do: it puts the day's independent measurements next to each other so that disagreement is visible on the day it happens. If you would rather start from a working sheet than build one, the free daily sales report template already does the comparison.

There are three such measurements at a fuel outlet, and they are genuinely independent. The meters say how many litres left the nozzles. The dip says how much fuel is still in the tanks. The drawer says how much money came in. Each is produced by a different mechanism, and any two of them can be compared to check the third.

A sheet that only lists sales throws that away. It records one measurement three times in three formats and calls the agreement between them a reconciliation.

The format

Five blocks, in this order. The order matters — each block consumes the totals of the one above it, so filling them out of sequence means going back.

There is a free Excel version of this sheet with every formula already in place, if you would rather start from a file than build one.

  • Block 1 — Meter readings. One row per nozzle: opening, closing, testing litres, litres sold.
  • Block 2 — Sales by fuel. Litres per fuel type, the rate applying, and the value.
  • Block 3 — Stock. Per tank: opening stock, deliveries received, litres dispensed, book stock, dip reading, variance.
  • Block 4 — Collections. Cash, UPI, card, fleet card, credit — and expenses paid out of the drawer.
  • Block 5 — Reconciliation. Expected revenue against collected, and the two differences that matter.

Block 1 — Meter readings

One row per nozzle, per shift. Litres sold is computed, never written from memory: closing minus opening, less any testing litres pushed into a measure and returned to the tank.

Never write a negative

A totaliser only counts up, so a closing reading below its opening is always an error — a transposed digit, or a figure copied from the wrong nozzle. Find it now. Written down as a negative, it silently cancels a real sale somewhere else in the total.

NozzleFuelOpeningClosingTestingLitres sold
N1Petrol184320.40185002.105.00676.70
N2Petrol201884.00202451.550.00567.55
N3Diesel312006.25313118.905.001107.65
N4Diesel298450.10298902.750.00452.65

Litres sold is the computed column. Testing litres moved the meter but were not sold.

Block 2 — Sales by fuel type

Roll the nozzle rows up by fuel and value them at the rate that applied — the meter reading calculator will do it for six nozzles at once. If the rate changed during the day, split the litres at the changeover and value each block separately — a single blended rate produces an expected-revenue figure that was never going to match anything.

FuelLitres soldRate (₹/L)Value (₹)
Petrol1,244.25104.201,29,650.85
Diesel1,560.3092.151,43,781.65
Total2,804.55—2,73,432.50

Litres from Block 1, valued at the day's rate.

Block 3 — Stock, per tank

This is the block most daily sheets omit, and it is the one that catches the expensive problems. Book stock is derived, not measured: opening stock, plus deliveries decanted into that tank, minus the litres its nozzles dispensed.

The dip is the independent check. Where the two disagree, you have found something — and the size of the gap says nothing about which of evaporation, calibration drift, a metering error or a leak produced it. Only the pattern over weeks does that.

TankOpeningDeliveredDispensedBook stockDipVariance
T1 Petrol8,00012,0001,24418,75618,742−14
T2 Diesel14,50001,56012,94012,948+8

Variance is dip minus book stock. Negative means fuel left without being sold.

Block 4 — Collections and expenses

Split collections by type. Pooling them into one figure discards the only information that would tell you which payment channel failed on a day the drawer is short.

Record cash paid out of the drawer separately as expenses. It was collected and then spent, so it has to be added back before the drawer is compared against expected revenue — otherwise every legitimate payout reads as a shortfall.

LineAmount (₹)
Cash96,400
UPI1,28,300
Card22,150
Fleet card14,000
Credit (on account)13,200
Total collected2,74,050
Less: paid from drawer1,100

Block 5 — The four checks

This is the whole point of the sheet. Four comparisons, each between two things measured separately.

  • Litres check — nozzle litres against tank movement. They must agree per tank; if they do not, a nozzle is attached to the wrong tank on your sheet or a reading is wrong.
  • Stock check — book stock against the dip. The variance, in litres and as a share of throughput.
  • Cash check — expected revenue from Block 2, against collections from Block 4 with expenses added back. In the example above: ₹2,74,050 collected, less ₹1,100 paid out, is ₹2,72,950 against ₹2,73,432.50 expected — ₹482.50 short.
  • Credit check — today's credit sales added to the receivables ledger, and today's account settlements taken off it. Credit is the one payment type that has to be tracked twice.

A shortfall is a question, not an accusation

₹482.50 short on ₹2.73 lakh is 0.18%. On the night it is usually one of four things: a credit sale not written up, a UPI payment that showed success and later failed, a rate change applied to the wrong block of litres, or change given wrong. All four are answerable by the people who were on. None of them is answerable in six weeks.

Per shift, not per day

Run the whole sheet once per shift rather than once per day. It is the same total work, and it changes what the sheet can tell you — see shift management for why attribution is the point.

A day sheet says the outlet was ₹482 short. A shift sheet says the evening shift was ₹482 short — which is a question you can ask a person who is still on the premises, rather than a number that belongs to nobody.

Frequently asked questions

Can I do this in Excel?

Yes, and many outlets do. Excel handles the arithmetic perfectly well. What it does not handle is a workbook filled in on a phone at the forecourt by three different people on three shifts, version conflicts when two of them save at once, or a formula that someone overwrites with a typed value in April and nobody notices until October.

Should testing litres be shown as a sale?

No. Fuel pushed into a test measure leaves the nozzle — so the totaliser counts it — and then goes straight back into the tank. Counted as a sale it inflates expected revenue and manufactures a cash shortfall. Deduct it from litres sold and keep it in dispensed.

What if a nozzle is out of order all day?

Record it with equal opening and closing readings and a note. A blank row is indistinguishable from a nozzle nobody read, and that ambiguity is exactly what the format exists to remove.

How long should I keep daily sheets?

Longer than you think you need, because their value is in the series rather than in any one day. A stock variance is meaningless as a single figure and diagnostic across a year, and that is also the horizon over which a slow leak becomes visible.

Close the day. Cleanly.

Set up your forecourt in minutes. Free for 14 days, no card. Every litre and every rupee in one place.