Do not migrate your history
This is the decision that makes the rest easy, and almost everybody gets it wrong the first time. A year of a paper register is not data you need in a new system; it is a record you already have, in a form that is already acceptable to everyone who might ask for it.
Typing it in is weeks of work, nobody checks it afterwards, and the result is a year of numbers that look authoritative and were transcribed by somebody bored. If a figure from March matters later, the March register answers it.
Start from a date and keep the old records as records. Choose a month end, because that is a boundary you have already reconciled and can defend if anyone asks why the new system begins where it does.
The four things that genuinely have to come across
Everything else is setup rather than migration — configuration you would do for a new outlet too. These four are the ones that carry a real number from the old world into the new one, and each has a way of going wrong.
- Stock per tank, from a dip taken on the cut-over date rather than from the book figure. The book figure is what you are trying to start checking; beginning with it imports the very error you are switching to find.
- Meter readings per nozzle, the closing totaliser on that date. Get these wrong and the first day's litres are wrong by the difference, which then looks like a variance and sends somebody hunting a leak that is a typo.
- Outstanding credit per customer, aged. Not one total — the balances are what you chase, and an unaged lump becomes a number nobody can act on. See credit customer management.
- Fuel types and current rates, because everything values off them.
Take the dip yourself on the day
Opening stock typed from memory or copied from last week is the single most common reason a new system reports a large variance in its first fortnight. The variance is real arithmetic on a wrong starting point, the owner concludes the software is broken, and the switch stalls there. Ten minutes with a dip rod prevents it.
Setup, once, in the right order
The order matters because each step depends on the one above it, and a mistake near the top is invisible until it produces a variance weeks later.
- Fuel types first — every tank belongs to exactly one.
- Tanks next, with real capacity, because ullage checks and low-stock alerts are computed from it.
- Nozzles last, each attached to the tank it actually draws from. This is the one to check twice. A nozzle on the wrong tank produces litres that reconcile perfectly at the outlet level and never at the tank level, and it looks exactly like theft.
- Then people, with the narrowest role that lets each do their job.
Run both for a month, and compare them against each other
For one month, staff keep the register exactly as they do now and the same figures also go into the software at the end of each shift. Nothing is switched off. The cost is a few minutes a shift; what it buys is the ability to tell a data-entry problem from a real one.
The comparison is the point, and it is worth being precise about what each side is good for. The register is usually right about what was collected, because somebody counted it. The software is usually right about what *should* have been collected, because it computed it from litres rather than remembering it. A disagreement between them is information, not an error to be explained away — and it is the first time most outlets have had two independent figures to disagree.
Cut over on the day the two agree for a full week without anybody adjusting either. Not before, and there is no need to wait longer.
What actually goes wrong in the first month
Three things, and none of them is the software.
- Entry drifts to the end of the week. A figure entered on Friday for Tuesday is remembered, not recorded, and every check downstream is then checking somebody's memory. If entry cannot happen at the shift, the switch has a staffing problem rather than a software one.
- The wrong tank. See above. Check the nozzle mapping against the physical pipework once, in person, rather than against the drawing.
- Monthly reconciliation survives the move. The habit is the thing being replaced, not the paper. An outlet that reconciles monthly in new software has bought a faster way to produce the same unexplained annual figure — see reduce your stock loss for why the daily version is what makes a variance diagnostic.
Frequently asked questions
Do I need to enter last year's data?
No, and it is worth actively deciding not to. Your existing records already satisfy anyone who might ask for them, and transcribing a year of them is weeks of unverified typing. Start from a month end and keep the old register as the record for everything before it.
What opening balances do I actually need?
Four: stock per tank from a dip taken on the day, closing meter readings per nozzle, outstanding credit per customer with ages rather than one total, and your fuel types with current rates. Everything else is configuration you would do for a brand-new outlet anyway.
How long should I run the old register alongside?
About a month, and then cut over on the day the two agree for a full week with nobody adjusting either. Running parallel indefinitely is its own failure — staff end up maintaining two systems and trusting neither.
My first week shows a huge variance. Is the software wrong?
Check the opening stock and the nozzle-to-tank mapping before concluding anything. A dip typed from memory and a nozzle attached to the wrong tank produce exactly this, and both are arithmetic working correctly on a wrong starting point. It is the most common reason a switch stalls in its first fortnight.
Can I switch mid-month?
You can, but a month end is easier to defend and easier to check. It is a boundary you have already reconciled, so the opening balances are ones you have effectively verified once already.