The method

Dispensing margin is one of the hardest numbers in primary care to get right.

It isn't cost minus price. It's a moving reconciliation across four Drug Tariff categories, a discount clawback, item fees, and price concessions that change several times a month — applied across every line you dispense. Here is how we model it.

§ 01

Why it resists a spreadsheet

A single dispensed line's true margin depends on at least seven independent variables — each on its own clock, each able to flip a line from profit to loss without warning. Track one wrong and the error compounds across thousands of lines a month.

Reimbursement
Tariff category
A, C, M or the new H — each priced and re-priced differently.
Deduction
Discount clawback
A sliding-scale clawback applied to reimbursement every month.
Income
Dispensing fees
Per-item fees on their own schedule, revised in-year.
Volatile
Price concessions
Granted monthly and often revised several times within the same month.
Rebate
Scheme & loyalty
MDS / APM / manufacturer rebates that rarely match the headline rate.
Risk
Shortages
When the market price exceeds reimbursement, a routine line becomes a loss.
Procurement
Actual cost
What you really paid — invoice by invoice — not the list price.

Seven variables, four different update cycles, thousands of lines. The interactions are where the money hides.

§ 02

The line-level calculation

Margin is computed per line, per month, then aggregated. Every term has to be resolved against the right reference data for that exact month — including any mid-month concession revision.

True net margin, per line
margin = ( reimbursement·(category, concession)clawback ) + feesnet acquisition cost·(invoice, rebate)
Resolve reimbursement against the line's Tariff category and any concession in force that week; subtract the month's clawback band; add the applicable item fee; then subtract what you actually paid after rebates — from the invoice, not the list. Do that for every line, every month, and reconcile the total against your FP34.
§ 03

The engine

A pipeline, not a template. Raw, inconsistent inputs are normalised, matched to live reference data, reconciled line by line, then read by an AI layer that classifies losses, surfaces anomalies and drafts the narrative — before a human audits every material figure.

01
Ingest
Dispensing data, wholesaler invoices and remittances — every supplier format, normalised to one schema.
02
Match
Each line resolved to its Tariff category and the concession in force that week, from continuously-updated reference feeds.
03
Reconcile
Net cost vs reimbursement computed per line, then reconciled to your FP34 and remittances.
04
Detect
Loss types classified — shortage, clawback, rebate gap, procurement — and anomalies flagged against six-month baselines.AI-assisted
05
Audit
Every material figure checked against source. Nothing provisional is reported as final.

The AI accelerates classification and pattern-finding across thousands of lines; the judgement, and the sign-off, stay human.

§ 04

Why it isn't a side project

Practices ask whether they could build this in-house. Honestly: the calculation is the easy part. Keeping it correct, every month, as the rules move underneath you, is where it becomes a specialist discipline.

The reference data never stops

Tariff categories re-price quarterly; concessions shift several times a month; rebate matrices change with every promotion. A model is only as right as the day's data behind it.

The maths is unforgiving

A concession applied a week late, or a clawback band misread, quietly mis-states thousands of lines. Small errors don't stay small once they aggregate.

Built by people who dispense

The model encodes how a real dispensary actually trades — not a generic finance template. That domain reading is the part that can't be downloaded.

Audited, not just generated

An AI-drafted figure that nobody checks is a liability. Every material number is traced to source before it reaches a partner's desk.

§ 05

Every line. Every month.

The scale is the point. This isn't a one-off audit; it's a standing reconciliation that runs each period and tracks whether the actions you took actually moved the number.

~2,000
dispensed lines reconciled, per practice, per month
7+
independent variables behind each line's true margin
4
Tariff categories — A, C, M and now H — each on its own cycle
Monthly
refreshed as new tariff, concessions and invoices arrive

See the engine run on a worked example.

Explore a full sample review — the interactive dashboard, the drug-level ledger and the partner report — built on a fictional practice.

Open the sample → Request a review