Convenience Store Software for Multi-Site Operators: Fuel, Tobacco, Lottery and the Invoice Drawer
Build when the leak is bigger than the license. For a multi-site chain drowning in fuel variance, scan data submissions, lottery pack settlement and a drawer full of DSD paper, a focused first release lands at $60k to $130k in 12 to 16 weeks, and a full platform that replaces the back office runs $150k to $400k phased over 6 to 12 months. Below roughly 8 stores with one fuel brand and no foodservice, keep PDI or Petrosoft and spend the money on labor instead.
Why back office software makes or breaks a convenience store operator
A 22-store chain runs on five systems that do not talk to each other. Gilbarco Passport or Verifone Commander at the register. A Veeder-Root TLS-450 in the back room measuring inches of product in the tanks. A Scientific Games or IGT lottery terminal sitting on its own line, printing its own paper. PDI Enterprise or Petrosoft CStore Office doing back office, sort of. And QuickBooks, where one AP clerk keys in whatever paper actually made it to the office.
Every Monday looks the same. The district manager drives a loop of six stores collecting a rubber banded stack of Frito-Lay, Coca-Cola, bread and Red Bull invoices that a 6am clerk signed without counting the cases. Two are missing entirely. One has a case cost 47 cents higher than the last delivery, which nobody caught, so that item sold all week at the old retail at a margin nothing in the system predicted. The clerk keys 180 invoices over a day and a half. By the time cost of goods is trustworthy it is the 12th and the month is already closed. In our discovery week at a 34-store operator we timed it: 61 hours per month of pure invoice keying, plus 9 hours of district manager windshield time just moving paper.
Fuel moves the most dollars and the thinnest margin, so a variance you cannot see for two days is a variance you eat. Tobacco is the biggest inside category and the most program-dependent, so a scan data file that submits late is a rebate check that shrinks. Lottery is a state-audited inventory of physical paper that most POS (Point of Sale) systems treat as a single miscellaneous department. Software here is the difference between catching five figures a month of quiet leakage and quietly eating it.
Problem 1: fuel variance you find out about on Wednesday
Your ATG says 6,140 gallons of 87 in tank 1. Passport says you sold 4,880. The bill of lading says the jobber dropped 8,500. Somebody has to reconcile those three numbers, and today that somebody is a bookkeeper doing it in Excel two days later, from a printed TLS report and a BOL that got faxed. When a submersible pump seal starts weeping or a dispenser meter drifts, you lose gallons for weeks before the spreadsheet catches it. And EPA 40 CFR 280 wants daily inventory reconciliation with a monthly variance inside 1.0% of throughput plus 130 gallons. Miss that and you are not just losing product, you are out of compliance.
PDI and Petrosoft both do fuel reconciliation. What they do not do is your reality: a mixed fleet where nine sites are Passport, six are Commander, two are old Ruby2, four ATGs are TLS-350 and the rest are Franklin, and three sites are on a jobber who emails BOLs as PDF attachments from an iPhone. The off-the-shelf tool wants one clean feed. You do not have one.
What a custom build does: poll each site controller's NAXML movement and journal exports on a 15 minute cycle, poll the ATG directly over serial-to-IP for tank levels and delivery events, and parse the BOL PDF on arrival to get gross, net and temperature-corrected gallons. Then run a rolling variance per tank per site, and alert the fuel manager by text when a tank crosses a threshold he sets, not when the month closes. One client caught a leaking dispenser meter on day three of a build we had not even finished. Document extraction from BOLs and jobber emails is where AI is reliable enough to depend on here: the models read a scanned or photographed BOL, pull carrier, terminal, product, gross and net gallons, and post the delivery against the right tank without anyone typing.
Problem 2: tobacco programs you are technically enrolled in and practically failing
Altria's scan data program, Reynolds' program, ITG's program: all of them pay you for submitting clean, weekly, UPC-level scan data with the right retail price on the right promotional item, and all of them claw back or zero out when the file is wrong. The failure mode is boring and expensive. A store rings a multi-pack promo as two singles because the cashier did not scan the combo. A price change went into 14 stores and not the 15th. The buydown expired Sunday and the price book still says the promo price on Monday, so you sell at the promo retail without the promo money behind it.
Off-the-shelf back office will generate the submission file. It will not tell you, on Tuesday morning, that store 11 sold 340 packs of a promo SKU at the wrong retail and you just donated $290 to a competitor's margin. It has no opinion about your specific manufacturer contracts because it was built for everyone's contracts.
What a custom build does: model the promotion itself as a first-class object with effective dates, participating UPCs, expected retail, expected allowance per unit, and per-store enrollment. Push price book changes down to every site controller from one screen and verify they landed by reading the movement file back. Then reconcile expected allowance against what the manufacturer actually paid, line by line, and flag the gap. That last step is the one nobody sells you, and it is usually the one that pays for the project.
Problem 3: lottery is a physical inventory your POS thinks is one department
Instant tickets arrive as books with pack numbers. A pack gets activated on the state terminal, sits in a dispenser, sells ticket by ticket, and eventually settles. In between, a $30-per-ticket book represents $900 of bearer paper sitting in a plastic bin next to a teenager on third shift. Most operators reconcile lottery once a week against the state's invoice, which means a missing book is discovered somewhere between five and nine days after it walked out.
The state terminals do not integrate with your POS in any way you control, and PDI or Modisoft treat lottery as a department total. Neither can tell you which pack, in which store, on which shift, stopped selling in a pattern that does not look like selling.
What a custom build does: track lottery at pack and book level with activation, dispenser slot assignment, shift-level ticket counts entered on a tablet in 40 seconds, and settlement matched against the state file. Then run the shift close so that the lottery number, the cash number, and the register number all have to agree before the manager can close. We also model commission per game so the operator can actually see lottery contribution instead of assuming it.
Problem 4: the DSD invoice drawer
Core-Mark or McLane sends you a clean EDI 810 and that part is fine. The problem is the 40 other vendors. The bread guy, the beer distributor, the ice company, the Red Bull rep who rearranges your cooler and leaves a hand-written credit. That paper is signed by whoever is on register, dropped in a drawer, and eventually keyed by a clerk who cannot check whether the cost changed because the cost history lives somewhere else.
The off-the-shelf answer is "get your vendors on EDI." Your vendors will not get on EDI. This is not a software problem you can solve by buying software, it is a paper problem, and it is exactly the problem AI is now good at.
What a custom build does: the clerk photographs the invoice at the counter when the vendor is still standing there. Extraction pulls vendor, invoice number, date, and every line with UPC, quantity, unit cost and extended total. The system matches each line against the price book, flags cost changes above a threshold the operator sets, flags quantities that do not match the receiving count, and pushes a suggested retail change to hold the target margin. Approved invoices post to Sage Intacct or QuickBooks as a batch. Nobody drives paper anywhere. At the 34-store client, that 61 hours a month became about 6 hours of exception review, and cost changes started getting caught the day they happened instead of the next quarter.
Problem 5: you cannot see a bad shift until the money is gone
Sweethearting, no-sale drawer opens, void patterns, over-rings after a customer leaves, drive-offs coded as errors. Every POS logs the events. None of them tell you which cashier, at which store, has a void rate three standard deviations off their peers on the same daypart. Your loss prevention today is a district manager's gut feeling and a DVR nobody watches.
Off-the-shelf reporting gives you cash over/short by shift, which is a lagging summary of a problem you needed to see as a pattern.
What a custom build does: ingest the journal at transaction level across the whole fleet, score cashiers against their own history and their peer group, and surface the top ten anomalies every morning with a link to the exact transaction timestamps so the DM can pull the video for 30 seconds instead of two hours. Forecasting comes free once the transaction data is in one place: daily labor demand by store and daypart, cigarette carton reorder points that account for promo lift, and fuel delivery timing so you stop paying for emergency drops.
What this costs and how long it takes
These are Digital Heroes delivery bands across 2,000-plus projects, not a market survey. A focused first release, meaning one or two of the problems above done properly for your whole fleet, is typically $60k to $130k and ships in 12 to 16 weeks. A full platform that replaces the back office across fuel, inventory, price book, invoices, lottery, labor and accounting posting runs $150k to $400k phased across 6 to 12 months.
What drives price up in this category specifically: a mixed POS fleet, because Passport, Commander and Ruby2 each need their own integration and testing; sites where the site controller export is misconfigured and has been for years, which is discovery work before it is development work; ATG models that require serial hardware at the site; manufacturer program logic, because Altria and Reynolds rules are not the same rules; anything touching cardholder data, since staying out of PCI scope by never touching the payment path is cheaper than the alternative by a wide margin; and store count, because 60 sites is not 6 sites with a bigger number, it is a rollout program with training and a support path.
Build or buy: take the honest side
Buy when you run 8 or fewer sites, one fuel brand, one POS platform, no foodservice program, and your growth plan is organic. PDI CStore Essentials, Petrosoft CStore Office or Modisoft will do the job and you will never justify a build. Buy also when your real bottleneck is that nobody is reading the reports you already have.
Build when three of these are true: you are over 15 sites; you acquire stores, so you inherit whatever POS the seller had; you have manufacturer programs worth five figures a month; you have already paid for a custom report package or an integration consultant on top of your back office license; and your controller has a spreadsheet that the whole company depends on. That spreadsheet is the specification. The signal that it is time is not that the tool is bad, it is that you have built a shadow system around the tool, and you are now paying for both.
How to choose a developer for convenience store software
First, make them draw your data model on a whiteboard before they quote. If they cannot explain the difference between a price book item, a promotional item and a scan data eligible item, or why a lottery pack is not the same kind of inventory as a case of Monster, they will learn on your money. Ask them to define wet stock variance without looking it up.
Second, ask for the specific integrations, not the category. "We integrate with POS" is not an answer. "We have pulled NAXML PJR and MCM out of Passport and Commander, polled a TLS-350 over serial-to-IP, consumed an EDI 810 from Core-Mark, and posted to Sage Intacct" is an answer. Ask what happens when a site's internet drops for six hours, because it will.
Third, get the compliance boundary in writing. The build should stay outside PCI cardholder data scope by design, should support your EPA reconciliation obligation with an auditable trail, and should handle state lottery reporting rules for every state you operate in. Ask who owns the code and the database on day one, and if the answer is anything other than you, walk.
Fourth, insist on a phase one that ships to real stores in under 16 weeks with real clerks using it. A vendor who wants nine months before anything touches a counter has never trained a third-shift cashier on anything.
The evidence behind this guide
Independent findings on why this investment pays off. Every link goes to the primary source.
- Global retail loses an estimated $1.73 trillion annually to inventory distortion (out-of-stocks and overstocks), equal to about 6.5% of global retail sales, despite $172 billion spent on improvements in the past year. Source: IHL Group (2025) →
- The average documented online shopping cart abandonment rate is 70.22% (based on 50 studies), and large ecommerce sites can achieve a 35.26% increase in conversion rate through better checkout design. Source: Baymard Institute (2024) →
- An EY survey found one in five U.S. payrolls contains errors, each costing an average of $291 to remediate, with a typical 1,000-employee organization spending roughly 29 workweeks per year fixing common payroll errors. Source: EY (Ernst & Young) (2022) →
- Salesforce's field-service research (State of Service / field service trends, survey of 5,500+ service professionals) found that 74% of mobile workers report increasing workloads and 47% say appointments don't go as planned due to customer miscommunication, unaccounted-for parts, or insufficient appointment lengths and travel times. (The separate claim that admin tasks consume ~30% of a technician's hours is NOT supported by the report - the seventh-edition data instead states technicians spend about 18% of working hours, ~7 hours/week, on admin, and only ~32% of time interacting with customers.). Source: Salesforce (2024) →
Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.
Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.