Distribution analytics

Power BI for Wholesale Distributors

Your ERP knows every order line, every receipt and every invoice — yet when the owner asks which customers are profitable after freight and rebates, which SKUs are tying up cash, or which reps are discounting their way to volume, the answer still arrives as a spreadsheet a week later.

Power BI for wholesale distributors starts with data a stocking distributor already owns: sales orders, invoices, purchase orders and item costs in an ERP such as NetSuite, SAP Business One, Epicor or Sage; bin locations, picks and cycle counts in a warehouse management system; shipments and carrier charges in the shipping or fulfillment platform. Each system answers its own questions. What a distributor rarely has is one model that joins them, so that margin, inventory turns and fill rate come from the same numbers every morning.

This page covers the distribution version of that work — the measures a wholesale business actually runs on, where they come from, and why the reporting built into an ERP stops short of them. If you want the general engagement with no industry attached, that is our Power BI consulting services page. If your ERP is NetSuite and the first question is how to get the data out, start with NetSuite Power BI integration services.

The numbers a wholesale distributor runs on

Distribution is a thin-margin, high-volume business, and the margin is decided line by line. The same SKU can make money for one customer and lose it for another once contract pricing, freight, rebates and returns are counted. The dashboards that earn their keep show margin by SKU, by customer and by rep, at the level of the invoice line, and let a manager drill from a disappointing total straight to the orders behind it.

Around margin sit the working-capital and service measures: how fast inventory turns, how much stock is dead or slow, how often orders ship complete and on time, and how long customers take to pay. None of these is exotic. The difficulty is that they draw on different systems, and the definitions drift unless someone writes them down once.

  • Gross margin by SKU, customer, product line, branch and sales rep, at invoice-line level
  • Inventory turns and days on hand by SKU and warehouse, with slow-moving and dead stock flagged
  • Fill rate — by line, by unit and by order, each named so they are never confused
  • On-time delivery against the promised ship date, by warehouse and by carrier
  • Rep performance — sales, margin and discount depth against price list, by territory
  • AR aging and days sales outstanding by customer, alongside that customer's margin
Wholesale distribution dashboards, the systems each one draws on, and a workable refresh cadence
DashboardSource systemsTypical refresh
Margin by SKU, customer and repERP invoice lines and item costs, freight charges, rebate agreementsDaily, reconciled at month-end close
Inventory turns and days on handERP inventory valuation, period-end snapshots, cost of goods soldDaily, snapshotted monthly
Slow-moving and dead stockERP item history, WMS on-hand by locationWeekly
Fill rate and backordersERP sales orders and shipments, WMS picksDaily
On-time deliveryERP promised dates, shipping and carrier recordsDaily
Rep performance and discount depthERP invoices, price lists, rep-to-customer assignmentsDaily
AR aging by customerERP or accounting invoices and paymentsDaily

Why ERP reporting stops short for distributors

Every distribution ERP ships with sales and inventory reports, and for a single question at a single moment they are often adequate. The limits appear when a question crosses a boundary. The ERP knows the invoiced price and the item cost; the shipping system knows what the freight actually cost; the vendor rebate agreement lives in a spreadsheet; the WMS knows whether the order was picked complete. True margin by customer needs all of them.

There is also a definitional problem no reporting tool solves on its own. Inventory turns can be calculated on average cost or on period-end value, over a trailing twelve months or annualized from a quarter. Margin can be stated before or after freight, rebates and cash discounts. Fill rate means three different things depending on who is asked. A distributor that has not agreed on those rules gets different answers from different reports. Settling them once, inside a shared semantic model, is most of the work of making distribution reporting trustworthy.

  • Item cost lives in the ERP; freight, rebates and returns often live somewhere else
  • Many ERP inventory views show current on-hand, not what stock looked like at each month-end
  • Rep and territory assignments change, and history gets restated unless it is modelled by date
  • Exports land in Excel, get edited by hand, and the edited copy becomes the version people quote

Joining the ERP, the warehouse and shipping in one model

How data leaves a distribution ERP depends on the platform and the edition. NetSuite offers SuiteAnalytics Connect and a REST API; SAP Business One, Epicor and Sage installations typically expose a SQL database or a reporting API, on premises or hosted. We establish that route with you, and where needed your ERP partner, before any report is designed, because it decides what can be automated and how often the data refreshes.

The workable pattern is to land each source on a schedule, map its keys once — the same item, the same customer, the same warehouse, the same rep — and build a star schema on top: invoice lines, inventory snapshots and shipments as facts; items, customers, vendors, reps, warehouses and a fiscal calendar as shared dimensions. One filter then moves every visual on the page, and a measure such as margin after freight is defined once for every report.

Row-level security is usually the next request. Reps see their own customers, branch managers see their branch, and the owner sees the whole business, all from one published report rather than a copy per person.

  • Confirm the ERP extraction route (connector, database or API) before designing around it
  • Snapshot inventory at each period-end so turns and days on hand have real history
  • Allocate freight and rebates to the invoice line so margin is stated before and after, both labelled
  • Date the rep-to-customer assignment so territory changes do not rewrite last year's numbers

Inventory turns and fill rate: define them before you chart them

Inventory turns are cost of goods sold divided by average inventory value, and nearly every word in that sentence needs a decision: which cost, averaged over which periods, at which warehouse or across all of them. The model can carry more than one version — a trailing-twelve-month figure for the board, a recent-quarter figure for the buyers — as long as each is named and nobody silently swaps them.

Fill rate follows the same rule. Line fill, unit fill and order fill answer different questions, and a distributor quoting a fill rate to a key customer should know exactly which one it is. Paired with on-time delivery and the stock position behind each short line, they turn a vague service complaint into a list of SKUs to reorder or reprice.

How the engagement runs, and what it costs

The first conversation is about access and definitions, not visuals: which ERP and edition you run, where freight and rebate data live, and how your business defines margin, turns and fill rate. From there the pattern is a working prototype on your real data, reviewed with the people who will use it, then extended. One margin dashboard that the sales managers trust is worth more than six that nobody opens.

Every engagement is run by Edward Pinela, MBA, Principal Consultant at Lightray Solutions, remotely. The person who scopes the work is the person who builds it, which is why the scoping call is worth having before a specification exists.

Distribution dashboard projects are quoted per business, because the ERP, the number of warehouses and the state of the cost and rebate data move the number too much for a list price to be honest. If you have in-house capability and need senior Power BI hands in blocks rather than a project, Power BI Flex Support starts at $2,500 for 20 hours at $100–$125 per hour, in prepaid blocks whose hours do not expire.

Further reading: Microsoft Learn — star schema guidance for Power BI.

Not sure if this is the right fit?

Book a free 30-minute call with Edward Pinela, MBA. If it is not the right fit, you will be told that on the call.

Book a free call

Frequently asked questions

Can you connect Power BI to our ERP?

In most cases, yes, but the route differs by platform and edition. NetSuite is usually read through SuiteAnalytics Connect or its REST API; SAP Business One, Epicor and Sage installations typically expose a SQL database or a reporting API. We confirm the extraction path with you, and your ERP partner if needed, before any dashboard is designed, because it decides what can be automated and how often the data refreshes.

How do you show true margin when freight and rebates are booked separately?

Freight and rebates are brought into the model as their own tables and allocated to the invoice line by a rule your team agrees — by weight, by value or by shipment. Margin is then reported both before and after those costs, each clearly labelled, so the number a rep sees and the number finance closes on are reconciled rather than argued over.

Can sales reps see only their own customers?

Yes. Row-level security in Power BI filters the data by the signed-in user, so reps see their own accounts and margin, branch managers see their branch, and the owner sees the whole business — all from one published report. The rules live in the data model, so they apply wherever that model is used.

Do we need Microsoft Fabric or a data warehouse?

Usually not to start. A single distributor's orders, inventory and invoices are manageable volumes for a well-built Power BI semantic model refreshing on a schedule. A warehouse becomes worthwhile when you need inventory history the ERP does not keep, when several warehouses or acquired branches run different systems, or when many sources must be reconciled nightly.

How long before we see a working dashboard?

A first useful dashboard on one clean source is typically a matter of weeks, not months. The schedule is set by data access and definitions rather than report building: how reliably the ERP data can be extracted, how much inventory history exists, and how long it takes your team to agree on how margin, turns and fill rate are measured.

Talk it through with a senior consultant

Book a free 30-minute call with Edward Pinela, MBA. No obligation and no sales pitch — just an honest read on whether this is the right fit.

Free 30-minute strategy session
Speak directly with a principal consultant
Actionable recommendations you can use immediately
No contracts, no commitment, no pressure

Prefer to call? +1 (714) 872-9606

Schedule Your Free Strategy Call

We respond within 4 business hours. Most hear back within 2.

Your information is protected and never shared.