Why does Epicor reporting keep ending up in Excel?
Because the ERP's reporting layer answers one question at a time, for one person. A BAQ returns exactly the rows you asked for; someone still has to trend them, join them to another BAQ and reconcile the two by hand. The workbook that results becomes the real reporting system — unversioned, owned by one person, and quietly wrong in ways nobody can audit.
The symptoms are consistent across shops. Job margin is known only after the job closes, too late to act on. Two people quote different on-time percentages because one measured the promise date and the other the request date. Production reporting stops at the plant and never reaches the leadership meeting. A semantic model fixes this at the root: one set of facts and dimensions, one definition of margin and of on-time, and visuals that recompute themselves — the discipline described on our Power BI data modeling and DAX page.
Which Epicor dashboards do you actually build?
The six areas buyers ask for most: an executive summary for leadership, job costing and margin for finance and operations, inventory and material review for the stockroom, production tracking for the floor, vendor scorecards for purchasing, and on-time delivery for customer service. Each is a page in one model rather than six disconnected reports.
The executive summary opens with booked and shipped revenue, gross margin, open jobs and backlog, trended against prior periods. Job costing puts estimate against actual for labor, material and burden, ranks jobs by margin variance and drills to the transactions underneath. Inventory and material review shows on-hand by warehouse and bin, aging stock and shortages against demand. Production tracking compares scheduled and reported quantities by operation. Vendor scorecards rank suppliers on lead time and receipt performance. On-time delivery measures shipments against the promise date and the customer request date separately, because they are different questions. Manufacturers who want the wider plant-floor picture should read Power BI for manufacturing and logistics, and our Power BI dashboard examples gallery shows the layouts we build.
What Epicor data sits behind each dashboard area?
Every page above maps to records your Epicor instance already holds. This is the mapping we walk through on the demo call, described at a general level — the exact tables or endpoints depend on your version, your modules and how your team has configured them.
Dashboard area and the Epicor data it surfaces
| Dashboard area |
Epicor data it surfaces |
Question it answers |
| Executive summary |
Sales orders, invoices, open jobs and backlog |
Are we booking, shipping and earning what we planned? |
| Job costing & margin |
Job headers with estimated cost, plus labor, material and burden transactions |
Which jobs are running over estimate, and where? |
| Inventory & material review |
Part master, on-hand quantities by warehouse and bin, issues and receipts |
What do we hold, what is aging, and what is short? |
| Production tracking |
Job operations, scheduled versus reported quantities, labor by resource group |
Is the floor keeping to the schedule? |
| Vendor scorecards |
Purchase orders, receipts and supplier records |
Which suppliers deliver on time, complete and at the agreed cost? |
| On-time delivery |
Customer shipments against promise and request dates on the order line |
Are we hitting the date we gave the customer? |
How do you connect Power BI to Epicor?
Through whichever supported route your deployment allows: Epicor REST services, a read-only replica of the database, or a reporting data mart your IT team already stages. We land the records, shape them into a star schema, write the measures, and schedule the refresh — so nothing depends on a person remembering to export.
For Kinetic in the cloud, REST services are usually the route: your administrator issues a scoped, read-only service account, and we pull the records behind each report on a schedule. On-premises or Azure-hosted, a read-only database replica is generally better for volume — it lets us pull years of job and transaction history incrementally instead of asking a live production system for it. If your team already maintains a data mart fed from Epicor, we build on that first; it keeps one version of the extract logic rather than two. Scheduled BAQ exports remain a fallback for small, stable extracts, but they do not scale to years of transactions.
Whatever the route, we do not point Power BI at production and hope. We land the extract, run it incrementally so each refresh moves only changed rows, and let the report query a modeled copy. Refresh then runs inside Power BI's documented limits — Microsoft's data refresh reference (opens in new tab) explains the cadence available on each licence — and where the source sits on your own network, an on-premises data gateway (opens in new tab) carries the connection. We fix breakages out of your banked hours.
Which access path is right for us?
It depends on your deployment, how much history you need, and what your administrator is willing to open up. This is the honest comparison behind the scope estimate you approve before any hours are spent.
Epicor access paths for Power BI and what each is best at
| Access path |
Best for |
Tradeoff |
| Epicor REST services |
Cloud and Kinetic instances; scoped, scheduled pulls |
Needs a service account and read permissions from your administrator |
| Read-only database replica |
On-premises or Azure-hosted instances; long history, incremental loads |
Requires DBA cooperation and usually a gateway |
| Existing reporting data mart |
Teams already staging Epicor data for reporting |
Only covers what has been staged; gaps still need filling |
| Scheduled BAQ export |
Small, stable extracts and quick proofs of concept |
Does not scale to years of transactions; stays semi-manual |
| Landed copy + star schema |
Every production build, on top of any route above |
Adds a storage layer — which is the point, not a cost |
Who is this for, and what does it cost?
Discrete manufacturers, job shops, make-to-order and mixed-mode plants, and distribution businesses running Epicor — usually with a controller or operations leader who is tired of assembling the same workbook. You buy prepaid Flex hours that never expire: Starter $2,500, Growth $4,600 or Power $8,000, with rates from $100/hour on the largest block.
Most tasks ship in 3–5 business days once you approve the scope estimate; a first full ERP build is larger and gets a clear timeline up front. The usual pattern is a Growth or Power block for the connection, the model and the first pages — that work is front-loaded — then the remaining hours spent on extra views, DAX changes and refresh care. There is no project minimum and no retainer: you send a request, we reply with a scope and the hours it needs, and hours deduct only for work you approve. The mechanics are laid out on how prepaid Flex hours work. If you run more than one system, our NetSuite Power BI dashboard and Business Central Power BI dashboard pages describe the equivalent builds. Architecture and engineering firms on Deltek's project ERP have their own version on our Deltek Vantagepoint Power BI dashboard page. Wholesale distributors on Epicor’s other ERP have theirs on the Prophet 21 Power BI dashboard page. Plants running Infor instead — SyteLine on-premises or CloudSuite Industrial in Infor’s cloud — should start at our Infor SyteLine Power BI dashboard page, which works through the extraction routes out of CSI and the job-costing traps specific to that schema.
What do you own when we finish, and what happens next?
Everything. The Power BI file, the semantic model and DAX, the extraction logic, the refresh schedule and the service account all live in your tenant and your Epicor instance. There is no black box, no licence to us and no lock-in — if you never send another request, the dashboards keep running.
We publish to your workspace, document the access route and the records we pull, and walk your team through the model so someone internal can maintain it. Most clients then keep a few banked hours for the requests that follow: a page for a new plant, a measure that has to track a changed costing method, or a refresh that broke when credentials rotated. That is post-launch support without a retainer — the same hours, spent when you need them.