★★★★★· Brisbane-based, working with teams across Australia· Fixed-price, always· 0433 345 000

FMCG analytics: sell-in, sell-out, trade spend and service in one reconciled view

Written and reviewed by the Roar Data team, 10 September 2026. Delivered from Brisbane to suppliers across Australia.

An FMCG supplier does not own the shelf, the checkout or the customer record. Every number that matters to the business either arrives from somebody else's system or has to be argued out against somebody else's system. That single structural fact is what FMCG analytics exists to deal with, and it is why data analytics for fast moving consumer goods looks nothing like reporting in a business that sells direct.

This page is written for the person who has to carry the number into the room: a commercial or national account manager preparing for a range review, a sales director who has to say whether the last catalogue period paid for itself, a demand planner defending a forecast, or a finance manager who needs customer margin after trade before the board pack goes out. If you have ever had four versions of last week's sales sitting in four tabs and no defensible way to say which one is right, this page is about that.

What it settles is narrow and specific: which sources a supplier's reporting has to draw on, how the core measures are actually calculated, why the calculation goes wrong when it is done casually, and what a reporting set has to reconcile before anyone can trust a chart on it. There are no client names and no percentages here, because we do not publish outcomes we cannot attribute. There is a lot of mechanics, because that is the part nobody else writes down.

What FMCG analytics has to answer

Strip away the dashboards and the reporting exists to settle five questions. They get asked in almost exactly these words.

"Did that promotion actually make money?" Not did it move volume — it always moves volume. Did the incremental margin cover the scan-back, the off-invoice, the co-op advertising, the gondola end and the deductions that turned up nine weeks later against an unrelated invoice.

"Why is our number different from the retailer's number?" Usually asked about service. Sometimes asked about sales. Always the same underlying problem: two parties measuring the same event against different denominators, on different clocks, at different units of measure.

"Whose forecast was wrong?" Asked when there is a truckload of short-dated stock in the distribution centre, or when a promotion sold out in week one and the retailer has a gap on shelf and a long memory.

"What is this customer actually worth to us?" Gross sales by customer is easy and nearly useless. Net realised price after every rebate, deduction and freight line, minus cost to serve, is the number that changes decisions, and most suppliers cannot produce it on demand.

"Are we ranged where it counts, and is it selling once we are there?" Distribution gains that look good on a store count and disappear on a weighted measure. Rate of sale that cannot be compared between two SKUs sitting on different distribution.

Everything below is in service of those five.

The data, and where it comes from

Six layers, each arriving in a different shape, on a different cadence, keyed differently. Nothing joins to anything else without deliberate work.

Source Where it arrives from Format The catch
Retailer scan and sales data Each retailer's own supplier analytics platform — reporting can connect to what a supplier exports from platforms such as Coles Synergy, built with IRI/Circana on Liquid Data, or the wiq (Woolworths Group and Quantium) supplier stack Web platform with export; CSV and Excel Each retailer defines the measure and the supplier inherits the definition. Coles Synergy is explicit that it uses the same measures Coles uses internally. Two retailers' "sales" are not the same sales.
Retailer operational and service data Supplier portals — Woolworths Partner Hub, Primary Connect's SCoRe non-conformance system, the Coles Supplier Portal, Metcash's Sorted platform. Reporting can connect to what these export Portal screens, CSV, PDF claim notices Different login per retailer, different export layout per retailer, and column headers that change without notice. Non-conformances are recorded at vehicle, pallet and carton level and rarely make it back into the supplier's own service reporting.
Syndicated market data Circana (formerly IRI, and before that Aztec in Australia and New Zealand) or NielsenIQ Retail Measurement Services, bought by subscription Provider platform with export; weekly or four-weekly periods Scoped and priced by category and market, so a brand is visible in one cut and invisible in the adjacent one. Historical files may carry any of three provider names across a five-year trend.
Internal ERP Whatever the business runs — reporting can connect to SAP Business One, Dynamics 365 Business Central, NetSuite, Pronto Xi, MYOB Acumatica, Odoo, or Xero with an inventory app Database, API, or scheduled extract Holds shipments, not sales. Trade spend components land in revenue for some deals and expense for others depending on how the ERP was configured, which is why two people compute a different trade spend percentage from the same ledger.
Warehouse, 3PL and transport Usually the 3PL's warehouse system, not yours; carrier feeds; retailer-collected freight where the retailer picks up CSV drops, or an API you do not control You are reporting on a system you cannot change, at whatever grain the 3PL chooses to send. Despatch timestamps are yours; receipt timestamps are the retailer's.
Pallet accounts CHEP and Loscam transfer dockets. Primary Connect operates as a sender-declares partner, so the supplier raises the docket Electronic dockets, spreadsheets, statements A pallet account behaves like a bank account any counterparty can post to. Suppliers are directed to process transfers within 60 days of delivery; CHEP allows 180 days to notify a transfer and Loscam two months, and pools cannot be crossed. Unreconciled transfers become hire charges with no line of sight back to the delivery that caused them.
The spreadsheet layer One person, every Monday XLSX It works, it takes hours before every trading meeting, and it stops when that person takes leave.

Underneath all of it sits a master data problem that causes more reporting failures in Australian FMCG than any analytical mistake: the supplier's item master, the GS1 Australia National Product Catalogue record used with Woolworths, Coles and Metcash, each retailer's own item code and the syndicated provider's product hierarchy are four different keys for the same carton. Nobody owns the mapping between them, so it gets rebuilt by hand every time somebody needs it.

The KPIs, defined properly

Formulas, not benchmarks. We do not publish target values for these because there is no citable Australian benchmark for any of them.

KPI Definition What goes wrong when it is calculated casually
Trade spend as % of gross sales Total trade investment ÷ gross sales value, same period, same customer scope. Investment includes off-invoice, permanent price allowances, scan-back and bought-in promotional funding, volume and growth rebates, listing and new-line fees, distribution allowances, retail media and co-op advertising, catalogue and gondola-end fees, and deductions raised against invoice Some components are booked against revenue and some against expense. Change the ERP treatment of one rebate type and the percentage moves without anything real changing. Without a named gross-to-net bridge, sales and finance quote different numbers and both are defensible
Net realised price List price, less off-invoice, gives invoiced price; less scan-back and promotional rebates; less volume and growth rebates; less deductions, claims and returns. What is left is net realised Suppliers routinely stop at invoiced price and call it net. The rebates that land later are the ones that decide whether the customer is profitable
Gross margin after trade Net realised revenue − COGS. Subtract cost to serve for true customer contribution Trade accruals are booked in the month of the deal, actual claims arrive weeks later. Compare an accrual month to a claim month and margin by customer oscillates for reasons that have nothing to do with trading
Promotional ROI Incremental gross margin ÷ promotional investment, where incremental volume = promoted volume − baseline volume Everything contentious lives in "baseline". Last year is not a baseline. An honest number also nets off cannibalisation of your own SKUs, pantry loading that flattens the following four weeks, and retailer forward-buy at deal price. A promotion can be positive on incremental units and negative on incremental margin at the same time
DIFOT Deliveries both in full and inside the agreed window ÷ total deliveries. No partial credit — a line is perfect or it is not The unit of measure changes the answer on identical deliveries: orders, lines, cases and pallets all give different percentages. OTIF is the same idea and frequently a different calculation
Forecast accuracy MAPE = mean of |actual − forecast| ÷ actual; accuracy usually quoted as 100% − MAPE. WMAPE = Σ|actual − forecast| ÷ Σ actual MAPE is unbounded above, so one slow SKU with a tiny denominator can drag a whole category's average into nonsense. WMAPE is fairer for a portfolio. And a number quoted without its grain and its lag means nothing — SKU by store by week at eight weeks' lag and national by month at one week's lag are both called "forecast accuracy"
Forecast bias Σ(forecast − actual) ÷ Σ actual Reported inside accuracy rather than beside it. Accuracy says how wrong; bias says which way, persistently. Acceptable MAPE with a steady positive bias quietly builds inventory nobody decided to hold
Stock cover Closing inventory units ÷ average daily demand, or weeks of cover on average weekly demand Whether "demand" means last period's actual, a trailing average or the forward forecast changes the answer, and most suppliers mix all three across different reports without saying so
Numeric distribution Stores stocking the item ÷ stores in the defined universe Counts a metro flagship and a small country store the same
Weighted distribution Share of category value held by the stores that stock the item The gap between numeric and weighted is the whole insight: it tells you whether you are ranged in the stores that matter or just in a lot of stores
Rate of sale Units ÷ stores stocking ÷ weeks Comparing raw units between two SKUs on different distribution is the most common self-inflicted error in a range review deck
On-shelf availability Proportion of store-item-days the item was not on shelf Not the same as DC availability. You can be at full DIFOT into the distribution centre and still be out of stock on shelf, and that distinction is exactly where supplier and retailer talk past each other

Why this is hard in a spreadsheet

Not because spreadsheets are bad. Because three specific joins are beyond what a workbook can hold together reliably.

Joining scan data to your own sales. Scan is at the retailer's item and store level, on the retailer's week. Your sales are at your item, customer and invoice level, on your period calendar. Syndicated data is at the provider's product hierarchy and market definition. Reconciling them needs a maintained four-way mapping between your item master, the National Product Catalogue GTIN, each retailer's item code and the provider's product code — plus a calendar that reconciles retail weeks to your accounting periods. In a workbook this is a VLOOKUP against a file that lives somewhere else and is updated by whoever remembered. The join silently drops the new SKUs first, which are the ones everyone is watching.

Rebate accrual timing. The deal is agreed in one month, the volume ships in another, the scan-back is claimed six to ten weeks later, and it arrives as a deduction against an unrelated invoice carrying a claim number that does not match any promotion code you use internally. The commercial spreadsheet tracks planned spend; the ledger tracks actual deductions; nothing links a row in one to a row in the other. That is why the promotion argument has no resolution mechanism and gets settled by seniority. The fix is not cleverer analysis — it is giving every promotion one identifier that survives from the trading agreement into the ERP into the deduction, so the post-analysis assembles itself.

DIFOT reconciliation, where two parties measure differently. The gap between your 98% and the retailer's 91% is enumerable, and each line of it is a different data problem. The retailer measures against the original purchase order; you measure against the confirmed quantity after the order was trimmed to available stock — same delivery, two denominators. You count lines, they count orders. You timestamp despatch, they timestamp receipt into the DC or the booked window, so the time your truck spent queuing belongs to whoever's clock you use. The despatch advice says what was sent, the receipt scan says what was booked in, and pallet-level versus carton-level receipting produces different shortfalls. Then there are non-conformances recorded in the retailer's system that never flow back into yours. Rebuilding that reconciliation means one row per delivery carrying order, confirmation, despatch, advice, receipt and non-conformance together — which is a data model, not a pivot table.

There is a fourth, quieter one. Forecast accuracy cannot be measured at all if no forecast version was kept. If the only forecast in the system is the current one, nobody can answer what was known on the day the production run was committed, and the argument is unwinnable by design.

What a working FMCG dashboard shows

Four pages, each with an owner and a question it settles.

Promotion post-analysis. Every promotion as one row, keyed on a single promotion identifier: planned spend, actual claimed spend, uplift against a stated baseline method, cannibalisation of your own lines, the four weeks after for pantry loading, and incremental margin against investment. Read by the national account manager before the next range or promotional plan goes in, and by finance when the accrual is released. It ends the argument described above by making the two ledgers the same ledger.

Customer and channel margin. The gross-to-net bridge, per customer, per period, with every deduction type named and traceable back to a claim. Then cost to serve — freight, 3PL handling, case pick versus full pallet, rebooking, short-life credits, pallet hire — down to contribution. Read by the commercial lead and by finance. This is the page that changes what gets negotiated.

Service level. DIFOT rebuilt from your own data at the same grain the retailer scorecards it, with the variance broken into its causes rather than shown as a single percentage. Read by supply chain and by whoever fronts the retailer's service review, who needs to arrive with a list of specific deliveries rather than a disagreement.

Forecast accuracy and bias. WMAPE and bias by category, brand and customer, measured against snapshotted forecast versions at the lag decisions are actually made at. Read by demand planning and S&OP. It converts "whose forecast was wrong" into "we are consistently 6% long on this brand at eight weeks", which is an actionable statement rather than an accusation.

A fifth page — distribution, share and rate of sale from syndicated and scan data — earns its place if the business subscribes to the data, and carries most of the load during a category review.

Sales dashboards in Power BI

If you are searching for an FMCG sales dashboard in Power BI, the useful question is not which visuals to use. It is what the model underneath has to reconcile before any visual is honest.

A model that works has scan and shipments as two separate fact tables at their own grain, joined through conformed dimensions rather than flattened into one table. Product resolves through a bridge that maps your item code, the GTIN, the retailer item code and the syndicated product code. Date resolves through a calendar that carries both retail weeks and your accounting periods, so a four-week retail period and a calendar month can sit on the same page without lying to each other. Customer resolves through a hierarchy that survives a banner restructure.

Promotion is its own dimension, keyed on the identifier that also appears on the ERP transaction and on the deduction. Without that, promotional ROI in Power BI is a chart of two unrelated numbers placed near each other.

Beyond that: row-level security so an account team sees its own customers, incremental refresh tied to the weekly scan drop rather than a nightly full reload, measures written once in DAX with the definition documented on the page, and a deliberate decision about whether a card labelled "sales" means shipments or scan — stated on the dashboard, not assumed. Most FMCG dashboards that lose trust lose it there.

How we work

Roar Data is operator-led and Brisbane-based, serving Queensland and suppliers across Australia. The founder spent 20-plus years in operations across manufacturing, pharmaceutical, glass packaging, FMCG, healthcare, aged care, finance and construction before building reporting for a living, which is why this page reads the way it does.

We start with the Reporting Clarity Diagnostic, fixed at A$1,950. It maps what data you actually have, where the definitions conflict, which joins are broken, and what a working reporting set would need to hold — and you own the output whether or not you build anything with us. Builds are quoted after that, never sold from a page, because a supplier on one retailer with a clean ERP and a supplier on four retailers with a 3PL and a syndicated subscription are not the same job.

Delivery is remote for most of it, on site in Brisbane and South East Queensland where that is useful. Every build is handed over with training and documentation: measure definitions written down, refresh schedules explained, and your team able to change things without calling us. We are rated 5.0 on Google.

FMCG & Consumer Goods analytics FAQs

What is FMCG analytics, in practice?
It is the work of reconciling three data layers a consumer goods supplier does not control into one set of numbers the business can act on: retailer scan and service data from each customer's portal, syndicated market data bought by subscription, and the supplier's own ERP, warehouse and planning systems. The analysis itself — share, promotional performance, service, forecast quality — is standard once the reconciliation is done. It is almost never the hard part. The hard part is that four sources give four different figures for the same week and there is no agreed way to say which one is right.
Can reporting connect to our retailer portal data?
Generally yes, though the method varies. Retailer analytics platforms and supplier portals typically allow scheduled or manual exports, and reporting can connect to those exports, normalise the layouts and reconcile them against your ERP. Where a retailer offers only a portal screen, the practical approach is a disciplined export routine feeding a staging layer, rather than pretending an API exists. What matters more than the connection method is the mapping underneath it: your item master, the GS1 National Product Catalogue record and each retailer's item code have to be tied together and maintained, or every subsequent join fails quietly.
We already subscribe to Circana or NielsenIQ. Why do we need anything else?
Syndicated data tells you what happened in the market. It does not tell you what it did to your margin. It is keyed on the provider's product hierarchy, not your item master; it has no visibility of your trade spend, your deductions, your freight or your cost to serve; and it is scoped to the categories you bought. Reporting sits alongside it and joins your share and price position to your own net realised price and contribution, so a share gain that was bought at a loss shows up as exactly that. The subscription stays useful. It just cannot answer a commercial question on its own.
Why does our DIFOT never match the retailer's?
Because you are measuring different things with the same word. Common causes: the retailer measures against the original purchase order while you measure against the confirmed quantity after a stock trim; you count lines and they count orders, or cases; you timestamp despatch and they timestamp receipt at the distribution centre, so queuing time lands on someone's side; the despatch advice and the receipt scan disagree at pallet versus carton level; and non-conformances recorded in the retailer's system never return to yours. Reporting fixes this by rebuilding their number from your data, one row per delivery, so the variance becomes a list of specific deliveries rather than a dispute.
How do we work out whether a promotion made money?
Decide the baseline method first and write it down, because that is where every disagreement starts and last year is not a baseline. Then net off cannibalisation of your other lines, pantry loading in the following weeks, and any retailer forward-buy at deal price. Then account for the full investment: off-invoice, scan-back, volume rebates, catalogue and gondola-end fees, retail media, and the deductions that arrive weeks later. The mechanical prerequisite is a single promotion identifier that carries from the trading agreement into the ERP transaction and onto the deduction. Without it, the commercial spreadsheet and the ledger can never be reconciled.
Do we need to replace our ERP first?
No, and we would push back if someone told you that. Reporting reads from what you have. A supplier on SAP Business One, Business Central, NetSuite, Pronto Xi, MYOB Acumatica or even Xero with an inventory app can have a working reporting layer without touching the ERP. What usually does need attention is the configuration around trade spend — which deal types post to revenue and which post to expense — and item master discipline. Those are days of work, not a migration. An ERP replacement undertaken to fix reporting is an expensive way to solve a definitions problem.
Does the mandatory Food and Grocery Code change what we should report on?
It raises the value of evidence. The mandatory Code has been in force since 1 April 2025 and binds the large supermarkets and grocery wholesalers, with protections for their suppliers and a dispute process behind them. The ACCC's February 2025 supermarkets final report recommended greater transparency about the rebates suppliers pay and about how supplier funding of in-house retail media is used. A supplier who cannot trace a deduction back to a claim and a claim back to an agreement cannot use those protections, because the process needs documentation. Your own trade spend reporting is the part of that evidence you control.
Do you work with suppliers outside Queensland?
Yes. Most of this work is done remotely, and the data sources are national — the retailer portals, syndicated subscriptions and ERPs are the same whether you are in Brisbane, Melbourne or Perth. We are Brisbane-based and meet on site around South East Queensland where it helps, particularly during discovery and handover. For suppliers elsewhere in Australia, the diagnostic, the build and the training all run remotely on the same fixed-price basis, with the same documentation and handover at the end.

Start with the reporting, not the tooling

A fixed-price Reporting Clarity Diagnostic is $1,950. You get a written view of what your reporting can and cannot answer today, and what it would take to close the gap. Builds are quoted against a written scope before anything starts.