A regional pharmaceutical wholesaler with around 4,800 active SKUs, two depots and a category team of six ran on a regulated, low-single-digit margin. Volume looked healthy every month. Finance kept finding quarter-end surprises on lines everyone assumed were core earners. Four years of invoice-line history, read by Flowra, showed exactly where pharmaceutical wholesale margin was leaking, and the team recovered €48,000 per quarter without touching availability.

€48kquarterly margin recovered
30high-volume SKUs flagged
12supplier renewals deferred
4 yrsinvoice history analysed

The situation

In pharmaceutical wholesale, compliance and availability come first. Category managers spent their week on batch traceability, cold-chain exceptions and service levels to pharmacies. Margin analysis came last, and it came late.

The finance team rebuilt margin by hand each quarter: invoice lines from the ERP, supplier rebate statements, credit notes for returns and expired stock. By the time the picture was complete, purchasing had already renewed annual supplier commitments on the same terms as the year before.

The ERP margin report grouped by category. It showed a healthy blended figure for generics, OTC and medical consumables. It never showed which individual products were drifting negative once volume-tier discounts and returns were included.

What the data showed, and didn't say

The ERP stored everything needed: unit cost at invoice date, list price, tier discount applied, credit notes per line, and the client on every transaction. Sage held the supplier rebate ledger and the true landed cost after year-end adjustments.

What no report joined together was the drift at SKU level. A product could keep a stable catalogue price while its realised margin fell for three quarters, because more of its volume shifted to the deepest discount tier or because returns rose faster than sales. Category averages hid it completely.

Nobody was asking the wrong question. The question simply had no owner and no ranked answer.

Connecting Flowra

The wholesaler was not ready to open API access on a validated pharma ERP. Instead, IT scheduled a weekly CSV export of invoice headers and lines, which Flowra mapped automatically to its sales-invoice and sales-line templates during onboarding. Finance connected Sage through the accounting connector so that rebates and true cost per product entered the same analysis.

Access was read-only in both cases. Flowra reconstructed four years of product movement and margin from the transaction flow, no opening stock count required, and published the first ranked list within two days of the first upload. Refresh runs nightly after each weekly file lands, or on demand.

What Flowra surfaced

  • 30 high-volume SKUs with negative margin drift over three or more consecutive quarters despite stable catalogue pricing, ranked by margin at stake.
  • The clients whose basket mix systematically pulled those lines into the deepest discount tier, using client segments built from the same invoice history.
  • A margin-squeeze signal on 11 further products where the trend had started but the quarterly total still looked acceptable.
  • Reorder holds proposed on lines where continued volume would lock in another year of leakage before commercial terms were renegotiated.

Each flag came with the evidence behind it, in the format the Flowra recommendation model always uses: the fact, the forecast, the recommendation, the confidence and the hypotheses.

Flowra · recommendation draftConfidence: High
Hold the annual renewal on GEN-2210 (paracetamol 500mg, 100 pack) until pricing is reviewed
Fact
Realised margin on GEN-2210 fell from 6.1% to 1.8% over four quarters. Catalogue price unchanged. 71% of volume now ships at tier 3 discount, up from 38%.
Forecast
At current mix and rebate terms, next quarter's contribution on this line is €3,900 below plan. Returns are stable, so the driver is tier mix, not credit notes.
Recommendation
Defer the supplier renewal by 30 days and reprice tier 3 for the three accounts driving the shift. Alternative: keep terms and cap tier-3 eligibility at last year's volume.
Hypotheses
Sage landed cost is final for the period. Tier discounts recorded on invoice lines reflect what was actually paid. No pending supplier credit for this product.
Next step
Approve, adjust the quantity, or ask why. Nothing changes in the ERP until you do.
Data refreshed 9 h ago · 48 months of history · Sources: ERP invoice export (CSV), Sage (read-only)

What the team did

Finance and purchasing worked from a single ranked list instead of separate spreadsheets. The list arrived every Monday in the weekly digest by email, and category managers asked follow-up questions in Microsoft Teams ("which clients drive the tier shift on GEN-2210?") without opening a report.

Purchasing deferred renewals on 12 underperforming lines, giving the commercial team 30 days to reprice or renegotiate. On four of the 30 flagged SKUs the category manager overrode the recommendation, because a hospital tender required the volume at those terms. The overrides were logged with the reason, and the products were excluded from the next quarter's list.

No price, no order and no supplier term changed automatically. Flowra drafted; people decided.

Results

MetricBeforeAfterTimeframe
Margin recovered on flagged linesUndetected drift€48,000 per quarterTwo quarters
Supplier renewals reviewed before signing0 (auto-renewed)12 deferred and renegotiatedFirst renewal cycle
Time to build the quarterly margin review~3 weeks, manualSame week, from the ranked listOngoing
Availability on flagged SKUs98.4% fill rate98.6% fill rateUnchanged

"We always knew some lines were leaking. What we never had was the order to fix them in, and the evidence to take into a supplier meeting."

— Head of Category Management, regional pharmaceutical wholesaler

What made it work

  • Invoice lines, not category totals. Margin leakage in pharmaceutical wholesale lives in tier mix and credit notes per line. Any analysis that starts from a category average will miss it. The same logic applies to quantifying excess inventory: rank by cash, not by SKU count.
  • Cost data joined to sales data. Connecting Sage meant rebates and landed cost were part of the calculation, not a year-end adjustment.
  • Client context on every flag. Knowing which accounts pulled a line into the deepest tier turned a pricing problem into a conversation with three customers. RFM segmentation for wholesale clients explains how those segments are built.

Frequently asked questions

How does Flowra detect pharmaceutical wholesale margin leakage without an ERP integration?

A weekly CSV export of invoice headers and lines is enough. Flowra maps the columns during onboarding, reads realised margin per line, and ranks products whose margin drifts over consecutive periods. Cost and rebate data from Sage, QuickBooks or Xero sharpen the figure.

Does Flowra change prices or supplier terms itself?

No. Flowra is read-only by default. It drafts a recommendation with the evidence, confidence level and hypotheses. A category manager or buyer approves, adjusts or refuses it. Write-back to an ERP requires explicit opt-in and the right user role.

What is the margin-squeeze signal?

A model-predicted signal that a product's realised margin is likely to keep compressing, based on tier mix, returns and velocity trends. It surfaces lines where the quarterly total still looks fine but the direction is wrong, so the review happens before renewal.

Related reading

Same playbook, your data. Book a 20-minute walkthrough or upload a file and get your first ranked action list.

Get my free inventory report →