Odoo for Fuel Stations
Odoo rollouts for filling stations and forecourt groups
Single sites and forecourt groups. Tank and nozzle setup, shift reconciliation, wet stock variance and credit fleet accounts, in the order they have to be built.
A forecourt runs two businesses on one plot: a fuel business measured in litres nobody can see, and a shop measured in items on a shelf. Nearly every fuel rollout that goes badly goes badly on the first one, because a nozzle was mapped to the wrong tank or the site went live without an honest opening dip. Wet stock is the project. The shop is the easy half.
Where it hurts today
Shift handover is a pad of paper
Closing readings written by hand, cash counted at the end of the night, over or short argued the next morning with no figure per nozzle, per grade or per attendant behind it.
Nobody knows what is actually in the tank
Book stock and dip drift apart quietly. The loss surfaces when the site runs dry earlier than the order plan said, or when an oil company audit asks for a variance history that was never kept.
Deliveries are booked from the ticket, not the tank
Bill of lading litres accepted at face value, no temperature correction, no dip either side of the hose. A short delivery cannot be claimed once the driver has left, so it never is.
Price changes fall inside a shift
The board changes mid afternoon and the shift spans it, so the whole day gets valued at one price. Margin per grade becomes a monthly estimate instead of a number.
Credit fleets run on trust
Haulier fills go on a duplicate book, odometers are not captured, the wrong grade goes into the wrong vehicle, and the credit limit is discovered only when the statement is disputed.
The modules that carry the load
Each one is here for a reason specific to fuel retail, not because it appears on a standard module list.
- ๐ฆ Odoo Inventory
Fuel held as stock by tank and grade alongside shop stock, so the site keeps one set of books instead of a wet one and a dry one.
- ๐ Odoo Purchase
Tanker deliveries received against the terminal bill and matched to the tank gain, which is the only evidence a shortage claim ever rests on.
- ๐งพ Odoo POS (Point of Sale)
The forecourt shop till, cash sessions and card settlement, closing into the same shift the pumps close into.
- ๐ผ Odoo Accounting
Credit account statements, card settlement and stock valuation posting straight through rather than arriving as a monthly workbook.
- ๐ง Odoo Maintenance
Pump calibration dates, tank equipment servicing and the periodic checks a site is expected to evidence rather than remember.
- ๐ Odoo Attendance
Attendants against shifts, so an over or short figure carries a name and a time, using the biometric devices most sites already have on the wall.
- ๐ก Odoo IoT
Shop hardware on one connected box: receipt printer, scanner and payment terminal, so the till is not three separate cables and a prayer.
How the rollout runs
- 1 Site model and opening dip
Tanks with capacity, dead stock and safe fill, grades, pumps, nozzles, and which tank each nozzle draws from. Opening dip and opening totalisers taken on the night of cutover. A wrong nozzle to tank map produces a variance report that reads like theft, so this gets walked on the forecourt and checked twice.
- 2 Shift and reconciliation
Open and close, test litres, cash counted against cash expected, the tolerance, and who signs off outside it. Run alongside the paper sheet for a fortnight before the paper goes, because that fortnight is what proves the two agree.
- 3 Deliveries and wet stock
Receipts with temperature correction from the loading ticket, dips before and after, variance per tank per period, and a reason code on anything outside tolerance.
- 4 Credit fleets, shop and group reporting
Accounts, vehicles, limits and monthly statements, then shop stock and shrinkage, then site against site comparison for a group.
What to have ready before kickoff
Projects that slip usually slip here, not in the build. Bring these to the first workshop.
- โ A tank list with capacity, dead stock, safe fill line and the current dip per grade.
- โ The nozzle to tank map confirmed on the forecourt itself, not copied off the site drawing.
- โ Current totaliser readings per nozzle, taken on the night of cutover rather than the week before.
- โ Pump prices in force per grade, and the route by which a site is told to change them.
- โ The credit account list with limits, vehicles, permitted grade per vehicle and the discount actually agreed.
- โ A written tolerance for cash over or short and for wet stock variance, plus the person who signs off past it.
Where it connects
Systems we most often connect on fuel retail projects. The full list is on the integrations page.
Fuel Stations & Forecourts
For the feature view of dip readings, shift reconciliation and wet stock reporting, read the solution page.
Open the Fuel Stations & Forecourts solutionQuestions we get asked
Can it read our pump controller or automatic tank gauge? +
It depends on the equipment. Where the controller or gauge exposes a documented feed or a file export, we build the connector so readings arrive on their own. Where it does not, closing readings are keyed at shift end, which is what the site does today anyway. We confirm which case applies before scoping, not after.
How tight should our wet stock tolerance be? +
Set it per grade, and set it from your own history rather than from an ambition. The value of a tolerance is not the number, it is that crossing it forces a named cause: meter drift, a short delivery, water ingress, a dip error, a line leak or theft. A site that records causes for three months can then tighten the number honestly.
Do we have to replace the tills in the shop? +
Usually not. Odoo POS runs on the hardware most forecourt shops already have, and we reuse the printer, scanner and drawer where they are supported. The payment terminal is confirmed separately, because that is the one item that decides whether a swap is needed.
Can several sites run on one system? +
Yes. One database, prices and shifts per site, variance calculated per tank per site, and group reporting that compares throughput, variance and shop margin across the estate. Sites go live in batches, not together.
What about fuel duty and tax on the pump price? +
The treatment is country-specific, so it is configured during localization on your accountant's instruction rather than assumed by us. What you get either way is the margin chain: pump price, less tax, less duty, less landed cost, per grade and per site.