Skip to main content

Introducing Loss Radar: see which shift cost you money.Learn more

All posts

StationPro playbook

Field-tested workflow
Operator review
9 minute read
Operator economics9 min readPublished

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.

Written by
StationPro Editorial
Reviewed by
StationPro operator team

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.

1.5–2.5%
NACS c-store industry average shrink
Of gross sales. Well-managed independents hit under 1%; high-shrink stores routinely run 3–4%.

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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Customer theft. Especially in unattended sections (back coolers, end-caps). Camera review can catch this; without cameras, the variance is unattributable.
  6. 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?

Inventory shrink is the gap between expected on-hand and actual counted on-hand at the SKU level. Expected on-hand = previous + receipts − sales. The difference is shrink. Aggregated up to category or store, it expresses as a percentage of gross sales.

What is a normal shrink rate at a c-store?

NACS reports 1.5–2.5% of gross sales as the industry average. Well-managed independents can reach under 1%; high-shrink stores routinely run 3–4%. The variance between best and worst is roughly 4×, driven primarily by process discipline rather than location or staff.

Where does most c-store shrink come from?

Tobacco is the largest single category at most c-stores. Within tobacco, soft-pack pocketing, promo violations, and vendor short-shipments dominate. Beverages and snacks contribute opportunistic shrink at lower per-unit value but high volume. Beer/wine and high-value accessories contribute meaningfully despite low volumes.

How do you catch tobacco shrink?

Per-SKU tracking + shift attribution + void/refund rate per clerk. A 2% velocity drop on a specific tobacco SKU correlated with the same overnight shift, with corresponding void burst, is a flagged pattern. Without per-SKU and per-shift data, the same shrink looks like aggregate category noise.

How do mobile cycle counts work?

The system suggests 30–50 SKUs per day on a rolling basis, prioritized by velocity. A clerk scans the SKU on a phone or tablet, enters the count. Variance against expected on-hand flags for review. Most stores complete a full rotation across all SKUs in about 30 days, no all-store Sunday counts required.

Can I track shrink without POS integration?

Yes, but with lag. Without POS integration, sales decrement happens at EOD (one bulk update per day) instead of per-transaction. Anomaly detection still works; the time-to-detection shifts from minutes to hours, and certain mis-rang patterns (decimal slips, partial-quantity errors) are harder to spot.

Should write-offs be tracked as shrink?

No, track write-offs separately. Damaged units, out-of-date items, and recalled SKUs are real loss, but they're predictable and should be logged as write-offs, not shrink. If write-offs flow into shrink, you cannot distinguish real loss from process loss.

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.

Written by

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.

See where your station is leaking money.

A 30-minute call. We build the demo around your stations, not a generic deck.