How does Power BI read Sage X3 data?
Through a read-only copy of the database beneath X3, or through the web services X3 publishes — never by pointing Power Query at the live production instance. Power BI ships no first-party Sage X3 connector, so a scheduled job reads the rows, lands them in a store you own, and Power BI models that copy on a refresh schedule.
Where X3 runs on your own infrastructure or with a partner who will provide a replica, the database route is usually the cheapest for long history: real SQL against SQL Server or Oracle, proper incremental keys, and no load on the application servers. It also needs the most careful hand, because the physical schema is not what the screens show you. Tables are grouped by folder schema, columns carry their index suffix, and a great many fields are codes that mean nothing until they are decoded against X3's own setup tables — so we build a named, documented extract per table rather than copying everything and hoping.
Where the deployment is hosted and no database connection is on offer, the route is the web services X3 publishes, or scheduled extracts, feeding the same landing store. That path is slower for a first backfill of several years and perfectly good for a nightly delta, which is why we confirm it with whoever administers your instance before quoting: the door that is open decides the refresh cadence the finished dashboard can support. If you already license Sage Data & Analytics for X3, we can model from the warehouse it maintains instead of duplicating the extraction — Sage sets the commercials for that product and does not publish a price, so ask your Sage partner what you already own before adding anything.
Downstream, the pattern is identical whichever route we take. We land a copy, refresh it incrementally so each run moves only rows changed since the last one — Microsoft's incremental refresh reference (opens in new tab) explains how the partitioning works — and let Power BI query the modeled copy. A daily scheduled refresh is the usual cadence and more frequent runs are available; the ceilings are set out in Microsoft's data refresh reference (opens in new tab). Where X3 sits inside your own network, an on-premises data gateway (opens in new tab) carries the connection; we configure it, document it, and fix breakages out of your banked hours.
Which extraction route fits your deployment?
This is the honest comparison behind the scope estimate you approve before any hours are spent. We confirm the route with whoever administers your X3 instance first, because the wrong assumption here is what turns a five-day build into a five-week one.
Routes out of Sage X3 into Power BI, compared
| Route out of X3 |
Best for |
Tradeoff |
| Read-only replica of the X3 database (SQL Server or Oracle) |
On-premises and partner-hosted sites whose DBA can stand up a replica; long history at low cost |
You read the physical schema — folder schemas, suffixed columns, coded fields to decode — and it can change on an X3 upgrade |
| Web services published by X3 |
Hosted deployments where no database connection is offered; targeted nightly deltas |
Paged and slower for a multi-year backfill; each object has to be requested and mapped, and throughput depends on what your host allows |
| An analytics warehouse you already license |
Teams already running Sage Data & Analytics who want Power BI on the same numbers |
You inherit its model and refresh; anything outside its scope still needs its own path, and its commercials are set by Sage, not published |
| Scheduled extracts from X3 into a store you own |
Locked-down environments, or a first look at a handful of tables |
Freshness is bounded by the export schedule, and somebody has to own the file handling |
| Landed copy modeled as a star schema |
Every production build, on top of whichever route above applies |
Adds a modeling layer — which is the point, not a cost |
Which X3 records sit behind each dashboard?
Every view below maps to records your folders already hold. The table names are X3's standard ones; your version, the modules you run, and any custom fields or tables your integrator has added change the detail, so we confirm the mapping against your own folders before quoting the work.
Dashboard area, the Sage X3 data behind it, and the question it settles
| Dashboard area |
X3 records it reads |
Question it answers |
| Margin by product line |
Sales invoices and their lines (SINVOICE, SINVOICED) joined to the item master and item-site records (ITMMASTER, ITMFACILIT), with cost taken from stock valuation rather than the current standard cost |
Which lines and items actually earn once real cost is attached, across every folder? |
| Work-order variance |
Work orders with their material and operation lines (MFGHEAD, MFGMAT, MFGOPE) against the issues and time actually booked to them |
Which jobs consumed more material, labour or machine time than the routing assumed? |
| BOM & routing cost roll-up |
Bills of material and routings with their operation times and cost centres, rolled against the item master |
What should this product cost, and how far has actual drifted from it? |
| Inventory turns by site |
Stock movement history (STOJOU) and stock lines against on-hand quantities per site (ITMFACILIT, FACILITY) |
How fast does each item turn at each site, what is sitting still, and where are we short? |
| OTIF delivery performance |
Sales order lines and deliveries (SORDER, SORDERQ, SDELIVERY) comparing requested, promised and actual ship dates |
Are we shipping on time and in full — against the date the customer asked for, and the one we promised? |
| AR aging and group P&L |
Journal entries and their detail (GACCENTRY, GACCENTRYD) filtered by ledger, with the customer master (BPCUSTOMER) and a mapped group account structure |
Who owes what, how old is it, and does the consolidated statement add up without a spreadsheet? |
How do folders, legislations and currencies end up in one model?
By becoming explicit dimensions rather than filters somebody has to remember. Folder, company, site, ledger and legislation are carried as modeled columns on every fact table, local accounts are mapped to one agreed group structure, and each monetary measure declares the currency it reports — so a group figure can be drilled to a single site without changing meaning.
Currency is where this gets practical. An X3 document carries the currency it was transacted in, while the ledger states the same document in the company's currency, and a group reporting currency may be a third. All three are true, and a measure that does not say which one it uses will be quoted differently by two departments forever. We define the conversion rule with your controller — rate at posting for actuals, an agreed rate for comparatives — then label every measure accordingly, so the currency question gets settled once instead of during each board meeting.
The same discipline runs through access. Multi-site groups rarely want every site leader seeing every site's margin, so we apply row-level security on the folder, company or site dimension, which means one published report serves everyone and each person sees their own rows. Our guide to setting up row-level security in Power BI covers how that is configured and tested, and the wider modeling discipline behind all of it is described on our Power BI data modeling and DAX page.
Which manufacturing numbers does the model carry?
The financial and delivery side of production: work-order variance split into material, labour and machine time; standard cost from the BOM (bill of materials) and routing roll-up against what a job actually consumed; inventory turns and stock cover by site; OTIF (on time in full) against both requested and promised dates; and margin by product line once real cost is attached.
Those five answer the questions a plant controller and an operations director argue about, and they all come from records X3 already holds — no shop-floor instrumentation required. Plant-floor OEE and downtime is a different data source entirely, read from machine states rather than from the ERP, and that build is covered on our Power BI for manufacturing and logistics page. Where X3 runs a distribution business rather than a plant, the fill-rate, backorder-aging and vendor-performance set is covered on our Power BI for wholesale distributors page; this page stays on the X3 data itself.
Who is this for, and what does it cost?
Manufacturers, distributors and process businesses running Sage X3 — typically several companies or sites, often across more than one legislation, where a controller or operations lead rebuilds the same workbook every month. You buy prepaid Flex hours that never expire: Starter at $2,500, Growth at $4,600, or Power at $8,000, with hourly rates from $100 on the largest block.
Because we scope each task and quote the hours before any work begins, you agree the cost of a build up front rather than watching a meter run. The usual pattern for X3 is a Growth or Power block: the extraction route, the folder and ledger modeling, and the first pages are front-loaded, and the remaining hours go to extra views, measure changes and refresh care over the following months. Most individual tasks ship in 3–5 business days after approval; a first multi-folder ERP build is larger and gets a clear timeline up front. There is no project minimum and no retainer — the mechanics are on how prepaid Flex hours work.
Sage sells several products that share a name and almost nothing technically, so it is worth being precise about which one you run. This page is about X3. If your books are in Sage Intacct's cloud financials, the dimension-based path is covered on our Sage Intacct Power BI dashboard page; smaller sites on the on-premises SMB product should start at our Sage 100 Power BI dashboard page; and contractors on Sage 300 CRE have a different data path again, covered on our Sage 300 CRE Power BI dashboard page. Groups running X3 alongside one of those get one model spanning both, rather than two reports nobody reconciles.
What do you own when we finish?
Everything. The Power BI file, the semantic model and DAX, the extraction logic and the documented table and field lists, the landing store, the refresh schedule, and the service account all live in your tenant and your environment. 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 every table we read, and walk your team through the model so someone internal can maintain it. Most clients then keep a few banked hours for what follows: a page for a newly acquired company in a new folder, a measure that has to track a changed costing method, or a refresh that broke after an X3 upgrade moved a field. That is post-launch support without a retainer — the same hours, spent when you need them. Contact is form-only: send your request and we reply with a scope estimate.