The invoice is not dishonest. It is precise, itemised and correct about the thing it measures. It just is not measuring what your profit and loss statement needs, and the gap between those two things is where a surprising amount of margin quietly goes.
Three numbers are in play, and most pharmacies use one word for all three.
Invoice cost is what the wholesaler billed you on the day the box shipped. It is a fact, it is per package, and it is 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. It is a rule, not a line item, and the invoice only matches it 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, which means the cost you are carrying and the cost you were charged were never the same figure.
Where NADAC fits, and where it does not
NADAC is a benchmark. It is a national average acquisition cost drawn from a survey of retail community pharmacy invoices, and 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 worth internalising: 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 is the failure mode that 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 forward every fill on that plan loses money. Nothing alerts. The item keeps moving, the reorder point keeps firing, and the loss is only visible 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 to 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.
The reason this is worth doing manually at least once is that it changes what you believe about your own book. Most owners expect the losses to be concentrated 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.