The invoice is precise, itemised and correct about the thing it measures. It is measuring the wrong thing for your profit and loss statement, and the gap is where a surprising amount of margin quietly goes.
Three numbers are in play. Most pharmacies use one word for all three.
Invoice cost is what the wholesaler billed you on the day the box shipped. A fact, per package, and the only one of the three you can read directly.
Contract cost is what you were entitled to pay under your primary vendor agreement, your GPO terms and whatever generic programme you sit in. A rule, not a line item. The invoice matches it only if the right terms were applied to the right item on the right day.
Effective cost is what the drug ended up costing after everything settles: rebates that arrive quarterly, generic compliance tiers that pay out only if you hit a purchase ratio across the whole book, prompt pay discounts, price protection credits on brands that fell in price after you bought them. This is the number the P&L eventually reflects, and it is knowable in full only in arrears.
Why the three diverge
Rebates settle later and settle in aggregate. A generic compliance rebate is earned on a ratio across hundreds of items, then paid as one credit. Nothing allocates that credit back to the NDC that earned it, so per item cost stays overstated on paper all year while the P&L quietly improves once a quarter.
Compliance ratios move without you touching anything. Buy a few items off contract during a shortage and the ratio slips. The invoice prices you saw at the time were correct. The tier you land in at settlement is worse, and every item in the period reprices retroactively.
Price protection applies to what you were already holding. A brand drops in price and the credit lands against inventory on hand. That credit belongs to units you have not sold yet, so the cost you are carrying and the cost you were charged were never the same figure.
Where NADAC fits
NADAC is a benchmark: a national average acquisition cost drawn from a survey of retail community pharmacy invoices. It is genuinely useful for arguing that a MAC is indefensible, for sanity checking whether your purchasing is competitive, and for filling a gap when you have no invoice at all.
It is not your cost, for a structural reason. It reflects invoice price, not net cost. Off invoice discounts and rebates are not part of it. So NADAC can sit above your true net cost on generics you buy well and below it on items you buy badly, and it can be stale during a shortage because the underlying survey moves monthly. Treating it as your cost is a specific analytical error, not a rounding difference. Our longer piece on what NADAC is and when to trust it goes through the construction in detail.
How price creep flips an NDC underwater
This failure mode costs the most and announces itself the least.
An NDC is comfortably profitable when you first stock it. Over some months, acquisition cost rises in small increments. No single increase is large enough to notice on an invoice line. Meanwhile the MAC on the plan you dispense it against is flat, or falls. At some point the two lines cross, and from that day every fill on that plan loses money. Nothing alerts. The item keeps moving, the reorder point keeps firing, and the loss is visible only in aggregate, months later, if anyone happens to look at that NDC specifically.
A monthly ritual that catches it by hand
Ninety minutes, once a month, no software required.
- Export last month’s invoice lines with NDC, package size and extended cost. Derive a unit cost for each.
- Export the same month’s fills with NDC, quantity dispensed, plan, and total paid.
- Join on NDC, multiply unit cost by quantity dispensed, subtract from total paid, and sort ascending.
- Keep the bottom twenty rows in a running sheet, month over month.
- Watch the movement, not the level. An item that was plus four dollars in May, plus one in June and minus two in July is the signal. It will be minus six by September.
Two caveats keep the exercise honest. Invoice cost overstates true net cost because the rebates have not landed, so read the result as a floor rather than a verdict. And low volume NDCs are noisy in a single month, so trust the trend line rather than any one cell.
Do it manually at least once, because it changes what you believe about your own book. Most owners expect the losses to sit in specialty. They are usually spread across ordinary generics on one or two plans, in amounts small enough that no individual fill would ever have justified a phone call.
Then stop doing it by hand. Attergo Margin runs that join on every fill as the claim is paid, against your most recent invoice for that NDC, and Attergo Inventory carries the same real cost per unit and real reimbursement per unit into what you order next. Book a demo and we will run your last ninety days.