Every margin figure is a subtraction. Reimbursement minus cost. The reimbursement side arrives from the claim and is not in dispute. The cost side is where the number is either trustworthy or decorative.
This is the least glamorous part of a margin product and the part that decides whether you can take a number into a conversation with a wholesaler, a PBM or your accountant without being embarrassed. So it is worth being specific about where cost comes from, what each source is actually worth, and what Attergo does when the good source is missing.
Three sources, three different qualities of answer
Attergo recognizes three cost bases, and shows which one was used next to every number it produces.
| Basis | What it is | Accurate for your store |
|---|---|---|
| Invoice | What you actually paid your wholesaler | Yes, this is the real number |
| NADAC | National Average Drug Acquisition Cost, a survey based national average | Approximate, sometimes badly so |
| Override | A cost you set manually | As good as your entry, and dated |
The important design decision is that these are never blended into a single unlabeled number. A dashboard that shows you a margin without saying which basis produced it is asking you to trust an average as though it were your invoice.
What is right about invoice cost
Invoice cost is your actual acquisition cost. It reflects your contract, your volume tier, your generic sourcing decisions, your primary and secondary purchasing split, and whatever rebate structure applies.
Two pharmacies buying the same NDC in the same week can pay meaningfully different amounts, and that difference is precisely the thing you are trying to manage. A national average, by construction, deletes it. If margin is going to inform which items you stock, which you deprioritize, and which contract terms you challenge, it has to be computed against what you actually paid.
What NADAC is genuinely useful for
NADAC is published through Medicaid.gov and built from a survey conducted by Myers and Stauffer under contract to CMS. Participation is voluntary, the survey goes to a random sample of retail community pharmacies each month, and files are posted weekly, with a monthly file produced on the first Monday on or after the fifteenth. We have written separately about what NADAC is and when to trust it, so this piece stays on the operational question of getting cost into a system.
Two virtues are real. It is available for a broad set of drugs without you doing anything, and it is a published reference with an examinable methodology rather than a vendor’s private estimate.
The limits are equally real, and a vendor presenting it as equivalent to your invoice is overselling it. It is an average built from other pharmacies’ invoices, so it is wrong for you by however much your buying differs from the national middle. It follows price movement rather than leading it. Coverage is uneven.
NADAC is a reasonable floor. It is not a substitute for knowing what you paid.
How the cost gets into Attergo
The cost model. Per fill margin computed against acquisition cost, with the basis (invoice, NADAC or override) recorded and displayed alongside every number. NADAC serves as the fallback when no invoice cost exists for a fill. Manual overrides are dated, so a margin from a period before an override is never silently rewritten.
Invoice cost intake. A structured cost file, loaded during onboarding and refreshed on your cadence, or wholesaler EDI where your trading partner agreement provides it. The established mechanisms in this supply chain are EDI transaction sets, principally the 810 invoice, which bills for goods supplied, and the 832 price and sales catalog, which carries product and pricing information to trading partners. The 832 is also the transaction the industry revised to carry product attributes to dispensers for Drug Supply Chain Security Act purposes, which is why some pharmacies already receive one without thinking of it as a cost feed. Availability, format and entitlement all depend on your wholesaler and your trading partner agreement, so the intake path is scoped per wholesaler during onboarding rather than assumed.
Where the cost data flows. Every product on the platform reads the same cost model: Margin prices fills against it, Inventory weighs purchasing against it, Audit produces the purchase evidence from it. One cost table, one basis discipline, eight products.
The freshness rule is worth stating without softening. Your invoice cost is as current as your last refresh. If your file updates quarterly, a fill in month three is compared against a price from month zero. Attergo shows you the basis and, for overrides, the date, so staleness is visible rather than inferred.
The rule we hold to
Every number shows its basis. No exceptions, no aggregate that quietly mixes them.
That rule costs us something. Screens are busier. A demo is less punchy than a competitor’s single confident figure. It is worth it, because the alternative is that you take a NADAC derived margin into a negotiation, get corrected on the number, and lose the argument you were actually right about.
The same rule applies to aggregation. When a summary spans fills with different bases, the composition is visible rather than dissolved. “Gross margin of X” is a weaker statement than “gross margin of X, of which most of the volume was priced against invoice cost.”
A sensible sequence for a new store
The best cost data is not always available on day one, and waiting for perfection means running blind for a quarter.
- Connect and start on NADAC. Every fill gets a margin immediately, labeled as NADAC based. This is enough to see shape: which categories are thin, which are clearly negative.
- Load your cost file. Coverage shifts to invoice for the items it includes. The same fills now show a basis of invoice, and the numbers usually move, sometimes considerably.
- Override the exceptions. For items with a special contract, a direct purchase or a 340B arrangement that neither of the first two sources captures correctly, set an override. It is dated, so history stays honest.
- Refresh on a schedule you will keep. A quarterly refresh you actually do beats a monthly one you abandon in March.
Where cost data goes wrong
Four failure modes come up repeatedly, and none of them are exotic.
Unit of measure mismatches. A cost per package compared against a claim priced per unit produces a margin that is wrong by the package size, which is to say wrong by a lot. When a margin looks implausible, this is the first thing to check.
NDC changes. Manufacturers change NDCs. A cost file keyed to an NDC that is no longer being dispensed silently stops matching, and the fills quietly fall back to NADAC. Basis labeling makes that visible instead of invisible.
Stale files nobody refreshed. The most common problem, and the least interesting.
Overrides that were right once. An override set for a contract that has since expired keeps applying. Dating them helps. Reviewing them occasionally helps more.
Questions to ask any margin vendor
- What is your default cost basis, and is it visible on every number?
- If invoice cost is missing for a fill, what do you use, and do you say so?
- How does invoice cost get in today, and is any wholesaler connector actually live?
- How do you handle unit of measure conversions between cost and claim?
- When I set an override, is it dated, and does it rewrite historical margin?
- Can I export the underlying cost basis per fill, not just a summary?
If a vendor cannot tell you where a number’s cost came from, the number is a suggestion.
The summary
Invoice cost is the only cost that is truly yours. NADAC is a legitimate, published fallback that gets you started and keeps coverage complete. Overrides handle the arrangements neither one models.
What Attergo brings is the cost model, the fallback, dated overrides, and the discipline of labeling every number with its basis. The freshness of your invoice cost is a function of your refresh cadence, and the platform makes that freshness visible instead of letting a stale number impersonate a current one.