StationPro playbook

Gas station inventory shrink: what operators should track daily.
Inventory shrink at a c-store hides inside the aggregate number. Track it per category, tobacco, beverages, snacks, beer/wine, with shift attribution and rolling cycle counts. Tobacco patterns, vendor short-ships, void abuse explained.
What is inventory shrink at a c-store?
Inventory shrink is computed per SKU: expected on-hand = previous on-hand + receipts − sales. The difference between expected and actual (counted) on-hand is shrink. Aggregated up to category or store level, shrink expresses as a percentage of gross sales.
The headline number, "our shrink is 2.1%", is widely tracked and largely useless. Aggregate shrink doesn't tell you whether tobacco is leaking faster than beverages, whether a specific SKU has a vendor short-ship problem, or whether a shift correlates with consistent variance. The actionable layer is per-category, per-SKU, per-shift.
Most common shrink categories at a c-store
Tobacco
Typically 40–50% of inside-store revenue and the highest single- category shrink risk. Shrink rate: 2–4% at typical independents, sometimes higher. Patterns:
- Soft-pack pocketing, clerks taking individual packs without ringing.
- Promo violations, "buy 2 get 1 free" not enforced at the counter.
- Vendor short-shipments, carton arrives at 9 instead of 10; receiving doesn't catch it.
- Refund / void abuse, clerk processes refunds on tobacco SKUs that customers didn't return.
Alcohol (beer / wine where applicable)
Lower volume than tobacco but higher per-unit value. Shrink rate usually under 1% but with high attribution clarity, alcohol is ID-checked and scanned, so loss patterns tend to be specific (high-value SKUs, after-hours, single-clerk events).
Drinks (cold, energy, sports)
High volume, low per-unit value, opportunistic shrink. Clerk grabbing a soda mid-shift, customer pocketing a small bottle in a crowded line. Shrink rate under 1% but dollar exposure adds up across thousands of units.
Snacks (chips, candy, gum)
Similar to drinks, high volume, opportunistic. Roughly 1–2% shrink rate at typical operators. Vendor short-ships on DSD deliveries are common; mis-rangs by clerk also contribute.
Lottery-adjacent (scratch tickets, instant games)
Tracked separately from inventory shrink because lottery has serial-level attribution. See the lottery shrink article for the detailed model. Worth flagging here because operators sometimes lump lottery into "inventory", they shouldn't.
High-value accessories (cell chargers, batteries, accessories)
Low volume, very high per-unit value. Shrink rate varies wildly; some stores see 5%+. Attribution is usually obvious when the SKU is high-enough value that someone notices it's missing.
How shrink happens (six patterns)
- Vendor short-shipment.Invoice says 10 cartons; receiving counts 9 but doesn't flag the discrepancy. The missing carton is recorded as received and the shrink is built into inventory from day one.
- Promo violation."Buy 2 get 1 free" promo runs all month, but a clerk gives away the free unit without ringing the qualifying sale. Inventory drops, revenue doesn't.
- Mis-rang sale. Tobacco customer buys a $13 pack; clerk rings $1.30 (decimal slip). POS records a $1.30 sale, $13 of inventory leaves.
- Soft-pack pocketing. Clerk takes a single pack during shift. Never hits the POS. Inventory variance surfaces at cycle count; attribution is gone by then unless cycle count was done that week.
- Customer theft. Especially in unattended sections (back coolers, end-caps). Camera review can catch this; without cameras, the variance is unattributable.
- Damaged / out-of-date write-offs.Real loss that should be recorded as a write-off, not as shrink. If the write-off isn't logged, it appears as shrink in the next cycle count.
Daily checks (what to track every shift)
- Tobacco void / refund rate per clerk vs. baseline.
- High-velocity SKUs with abnormal sales gaps (3+ hour windows with no sales of a normally-busy SKU).
- Receipts received today, verify SKU and quantity against invoice.
- Cycle-count alerts on 30–50 high-velocity SKUs.
- Inter-SKU sales sequences that suggest mis-rangs (e.g. a $1.30 sale immediately followed by a void).
Weekly owner review
- Shrink rate per category vs. last week.
- Top 5 SKUs with negative variance.
- Vendor-specific cost trends (any unflagged price increases).
- Manager-specific shrink patterns (variance per store-manager).
- Outlier shifts, shifts whose shrink contribution materially exceeds their share of sales.
Example: catching a tobacco shrink pattern
Single store. Tobacco weekly sales: $8,000. Last 30 days:
Expected tobacco on-hand: $4,200 (after invoices + sales) Counted tobacco on-hand: $3,990 Variance: $-210 (2.6% of monthly tobacco sales) Breakdown by SKU: Marlboro Box: −7 units × $11/pack = −$77 Newport Box: −4 units × $12/pack = −$48 Camel Crush: −3 units × $11/pack = −$33 Other: −$52 Cross-reference with shift attribution: 5 of the 7 Marlboro Box variances happened during overnight shifts 3 of the 4 Newport Box variances happened during overnight shifts All overnight variances cluster around the same clerk (Maria) Maria's overnight void rate: 8 voids/shift vs. baseline of 1-2 Pattern: tobacco soft-pack pocketing + void cover during overnight shifts. Action: dual-control overnight register handoff + camera review of flagged moments.
Without per-category, per-SKU, per-shift attribution, the same $210 monthly variance would have looked like "a 2.6% shrink rate, normal for the category." The pattern only surfaces when the data is decomposed.
POS reports vs. exception reporting
POS reports are good at one question at a time: top SKUs today, sales by category, voids and refunds. They don't correlate signals across data sources.
Exception reporting is the layer above POS: combine void/refund rate, cycle-count variance, vendor-invoice variance, and shift attribution to flag the patterns that no single POS report can surface. The Marlboro Box example above is the kind of pattern exception reporting catches automatically.
Mobile cycle counts replace Sunday counts
A c-store with 5,000 active SKUs cannot be fully counted on Sunday evening. Even partial counts take hours. So the operator skips the count, inventory drifts, and by month-end variance is too large to attribute.
Rolling mobile cycle counts replace the Sunday count: 30–50 high-velocity SKUs per day, scanned by a clerk in 10 minutes, variance against expected on-hand flagged for review. A full rotation across all SKUs takes about 30 days, no "big count" night ever required.
Common inventory shrink mistakes
- Tracking at the category level only.Hides SKU-level patterns. The Marlboro Box leak hides inside "tobacco."
- Running quarterly full counts and skipping cycle counts.Quarterly counts produce a number too aggregated to attribute. Rolling cycle counts preserve attribution.
- Treating all variance as theft. Theft is a minority of total shrink. Process error (vendor short-ships, mis-rangs, promo violations) accounts for the larger share.
- Not separating tobacco from snack shrink.Different patterns, different fixes. Aggregating obscures where the dollars actually live.
- Ignoring vendor short-shipments at receiving.Short-ships caught at receiving are recovered immediately. Caught at quarter-end, they're a charge-back negotiation that may not resolve.
- Letting damaged write-offs flow into shrink.Damaged units are real loss but should be logged separately (write-offs). If they hit shrink, you can't distinguish real loss from process loss.
Frequently asked questions
What is inventory shrink at a c-store?
What is a normal shrink rate at a c-store?
Where does most c-store shrink come from?
How do you catch tobacco shrink?
How do mobile cycle counts work?
Can I track shrink without POS integration?
Should write-offs be tracked as shrink?
Sources & methodology
This playbook draws on operator workflows observed in StationPro pilot stations and on anonymized product data from live pilot tenants. Figures are illustrative examples, not promises about your stores. Procedures were reviewed against the workflows of the StationPro operator team before publication. Questions or corrections: talk to the team.
StationPro Editorial
The operator team behind StationPro. We write the procedures we ship: every playbook comes from real close, reconciliation, and loss-attribution workflows in pilot stations.
Keep reading
The Credit Card Competition Act is back in 2026: what independent gas stations should do about swipe fees now.
The CCCA was reintroduced in January 2026 with bipartisan sponsors and, notably, White House support. Swipe fees are the second-highest operating cost for c-stores after labor, and at $80 fill-ups they can consume the entire net fuel margin. What the bill would change, why it may not pass fast, and the moves independents can make on card cost today.
How much is a gas station worth in 2026? The valuation math and the numbers a buyer will actually check.
Gas stations sell on a multiple of clean, provable cash flow, not on the revenue you quote. In 2026 buyers and their lenders scrutinize the back office harder than ever. What drives the multiple, how the fuel-versus-inside mix changes it, and the records that add or subtract six figures at closing.
The 2026 cost squeeze: swipe fees, minimum wage, and fuel tax stacked, and the survival math for independents.
In 2026 the three biggest cost lines all moved the wrong way at once: card fees, labor, and fuel tax. You cannot legislate them back down, but you can stop the fourth leak nobody budgets for: the shrink and variance that quietly walks out the door. The survival math, and where the recoverable money actually is.
