Landing
Retain the imported invoice, order and stock columns.
- invoices_raw
- purchase_orders_raw
- stock_movements_raw
Analytics Engineering
For reporting and data teams whose important figures depend on repeated transformations, unclear joins or datasets that have drifted apart.
Quanta Meridian builds facts and dimensions for orders, invoices, receipts and reference data, then keeps the SQL, tests and example rows that explain each reported total.
The wholesale mart shows how invoice, purchase and stock records become shared reporting tables. The matching project compares purchase orders, warehouse receipts and supplier invoices before payment, while the delivery projects prove one metric definition across SQL, Excel and Power BI.
When the model needs attention
A distributor can process orders, invoices and warehouse receipts successfully while still lacking reporting tables that Finance and Operations can use consistently.
If one report joins invoice lines to order-level delivery records and another averages delivery lines, both queries may run while producing different totals. The disagreement starts with grain, not presentation.
The reporting model gives each fact a declared row meaning, uses shared customer, product and date dimensions, and keeps the tests that reconcile reported figures to the retained orders, invoices and receipts.
Each layer has a specific job, a named table and a check before the next model uses it.
Retain the imported invoice, order and stock columns.
Standardise names, types, keys and record rules.
Apply purposeful joins and reusable business logic.
Publish facts, dimensions and agreed measures.
Fact grain, measures, refresh owner and known limitations remain beside the model.
This trace is generated from the published Supplier Invoice Matching and Review build. It keeps the typed records, rule result and human decision distinct.
INV-000004
Accounts Payable retains the arrived document, checksum and extracted fields as separate records.
Source document and load metadataInvoice £81 / order £75
Supplier Litware, Inc., purchase order 4 and 11 accepted outers are joined without replacing the source records.
Typed keys and accepted receiptsPRICE_DIFFERENCE
The four-way MATCH-1.0.0 rule applies TOL-DEFAULT-GBP and retains the failed price comparison.
Versioned rule and toleranceMANUALLY_ACCEPTED_EXCEPTION
A buyer-approved price change is attached during independent rematch; the original mismatch remains recoverable.
Reviewer decision; no payment executedWhy the structure matters
Layers and tests are useful because they connect a question about a figure to the exact record and calculation that need attention.
Run the same orders, invoices and rules through documented preparation steps instead of reconstructing logic from a finished report.
Trace a figure to the invoice line or order event, calculation, definition and check that produced it.
See which models, reports and owners are affected before a changed file or rule is released.
Engineering method
The model moves from imported transaction tables to business-shaped facts and dimensions. Each step has one purpose, a named table and a point where it can be checked.
The reporting question and row grain are agreed before invoice lines, order lines, receipts or delivery events are joined. That prevents a one-to-many relationship from multiplying a financial or service total.
Orders, invoices, receipts and reference records are typed and standardised in named stages. Shared keys and business rules are applied once before facts and dimensions are prepared for Excel or Power BI.
The retained build includes executable SQL or Python, mappings from business fields to report columns, failed records and instructions for rerunning the result after a monthly file or definition changes.
A bounded engagement
The commercial route is deliberately concrete: isolate one disputed result, build the reporting model it requires and leave the next run inspectable by another analyst.
Bring the report total, the records used to calculate it and the people who prepare and review it. The first review identifies the grain, joins and ownership that need attention.
Retain the source records, type the fields, make purposeful joins and publish only the facts, dimensions and checks needed for the agreed reporting decision.
Handover includes executable transformations, failed records, lineage, test results, change notes and a named owner for the next reporting cycle.
The maintained reporting model
The reporting question, row grain and available records determine the model. Its contract, transformations, failed tests and rerun instructions remain connected to the tables another analyst uses.
Agree which records enter the model, what each table means and what must remain true.
The build retains operational table register and contract, declared grain and key rules and field-to-model mapping.
Move the logic out of repeated reports and into models with one clear purpose.
The build retains landing and staging models, intermediate transformations and reporting marts and semantic definitions.
Leave the checks and documentation needed to rerun, investigate and change the model.
The build retains automated tests and failed records, lineage and build instructions and named ownership and known limitations.
Implementation environments
The same model discipline applies whether the build is compact or sits inside a larger data environment.
Relationships, repeated transformations, history or record-level traceability need a structured model.
The model still needs an agreed grain, business definitions and checks; SQL alone does not provide them.
Validation, file handling or analysis needs configuration, tests and retained run evidence.
Python is used for a clear task with declared records and results, not as an unexplained processing layer.
A curated model needs shared measures and an accessible way to inspect reporting detail.
The semantic model consumes agreed data; it should not become the hidden home for every transformation.
Model changes need review, history and instructions that remain beside the working code.
Version control records a change. It does not replace testing, ownership or an agreed release process.
A finished example
Each featured example has a different evidential role: declared grain, purchase-to-pay reconciliation or one invoice carried through a versioned tolerance and human review.

The invoice asks for payment, but the purchase order and warehouse receipt must agree before the reviewer can release it.

A three-way reconciliation checks whether the purchase order, warehouse receipt and supplier invoice agree before an invoice is cleared for payment.

A reporting analyst prepares the wholesaler’s May sales, margin and stock report from invoice lines, supplier orders and warehouse movements, with each figure checked before finance, sales and warehouse managers use it.
Related capabilities
SQL gives invoice lines, orders, receipts and reference data a declared grain before they become shared reporting totals.
Explore the SQL capabilityPython turns reporting rules and analytical methods into repeatable runs with declared inputs, retained results and tests another analyst can inspect.
Explore the Python capabilityPower BI connects an agreed management question to a dimensional model, explicit measures and the records needed to explain the result.
Explore the Power BI capabilityScope and limitation
A first review follows one figure to its source records, grain, joins, rules and current owner. That is enough to define a useful next step without sharing confidential records in the initial conversation.
Bring one report or dataset whose logic is difficult to trace and a short account of how it is refreshed today. Confidential or protected data is not needed for the first conversation.
Discuss a reporting modelReturn to all solutions