Case study

Finance reporting that keeps up with the day

Omnichannel e-commerce

An omnichannel retailer whose finance leadership was steering on yesterday’s numbers in a business that changes within the day. The figures now update while the day is still trading.

Read the engagement brief(opens in a new tab)
Period
7 months
Turnaround
50% shorter
A schematic: the separate reports this engagement started from, the one consolidated reporting layer that replaced them, and the technologies underneath.

Yesterday’s numbers the next morning, replaced by today’s during the day

The reporting was correct and late. Month-end ran through Excel, the daily figures landed the morning after, and by then the decisions they informed had been made on instinct or postponed. That is the version of the problem that never shows up as a data-quality complaint.

revenue and cost sources loaded automatically: shop, payments, marketplaces, ads, ERP
5
order key reconciling shop, payment provider and ERP
1
contribution margin levels, CM1 and CM2, per channel and per SKU
2
shorter reporting turnaround, as recorded at the end of the engagement
50%

Anonymised by sector and size, because the confidentiality that protects this client would protect you too. Sector and outcomes are real; identifying detail is not.

One trading day, before and now

Before and after the engagement

Next morning

  • Exports by handShop, payments, marketplaces, ads and ERP
  • Matched in ExcelShop against payment against ERP, in every file
  • Margin worked outPer channel, when there was time
  • Figures landThe morning after the day they describe

During the day

  • Shop orders streamEventstream, as they happen
  • Scheduled loadsPayments, marketplaces, ads and ERP into the same model
  • Finance sees the cockpitToday’s figures, through the day, on one model
Before, the figures for a day arrived the next morning; now shop orders stream in during the day and the other sources load on schedule into the same model.

The engagement in full

Client
An omnichannel e-commerce retailer of 50 to 250 people, selling direct through its own shop and through marketplaces, with finance closing the month in Excel.
Situation
The reporting was correct and late. By the time the daily figures landed, the decisions they informed had either been made on instinct or postponed, which is the version of this problem that never shows up as a data-quality complaint.
Mandate
Replace the manual Excel month-end with a daily finance cockpit on a Fabric foundation, with the figures updating during the trading day.
What we built
  • FoundationA review that found the figures correct but arriving a day late, after the decisions they were meant to inform.
  • ActivationNear-real-time financial reporting on the governed model, so the figures update during the trading day rather than after it has closed.

Where the time went

The figures were right, which is why the lateness had gone unfixed. It came from the layer between the systems and the report: every source was exported, matched and reconciled by hand, so the day had to end before its numbers could start.

Discrepancies surface the same day

Data-quality rules with alerting move the discovery of a mismatch from month-end to the day it happens.

  1. Data arrivesStreamed or scheduled
  2. Quality rulesShop, payment and ERP checked against each other
  3. Alert raisedTo the owner, on the day
  4. Fixed before closeNot found at month-end

The architecture

Sources: Shop · Payment provider · Marketplaces · Ad platforms · ERP. Ingestion: Fabric Data Factory · Eventstream. OneLake: Silver · Gold · Quality rules. What reads it: Finance cockpit · Excel
Every revenue and cost source loads automatically, shop orders stream, reconciliation happens once in Silver, and margin logic sits in Gold. The fast path and the slow path share one model.

Architecture decisions

DecisionRejected alternativeWhy
Latency solved on the governed modelA parallel fast pipelineA side path gets a few figures to the screen sooner and leaves two sets of numbers that disagree by the afternoon.
Reconcile once, in SilverReconciling in every Excel fileA unified order key matches shop, payment provider and ERP before anything reads the data.
Margin logic in GoldMargin built per reportCM1 and CM2 per channel and per SKU became a standard view rather than an analysis.
Direct Lake and EventstreamA shorter import refreshA faster refresh buys minutes and keeps the ceiling; reading the lakehouse natively removes it.

What the client has today

  • Finance figures that update during the trading day rather than landing the morning after.
  • Shop, payment provider and ERP reconciled once in Silver on a unified order key, rather than in every Excel file.
  • CM1 and CM2 per channel and per SKU as a standard view rather than an analysis.
  • Data-quality rules with alerting, so a discrepancy surfaces the day it happens rather than at month-end.
  • One governed model under the near-real-time path and the rest of the reporting, read by Power BI and Analyze in Excel.
  • A foundation that forecasting and Copilot questions attach to when the client is ready.
Where it left them
Finance leadership sees performance as it happens rather than a day later, on the same numbers month-end is closed on.
Stack
  • Microsoft Fabric
  • OneLake
  • Direct Lake
  • Fabric Data Factory
  • Eventstream
  • Power BI
  • DAX
  • REST APIs
  • ERP integration
All case studies

The other engagements

  • Retail

    Foundation then Activation then Acceleration alongside Stewardship

    Store revenue, executive questions and forecasting on one set of definitions

    A retailer with Microsoft Fabric already in production, semantic models over Direct Lake and store revenue streaming in, who wanted forecasting, Copilot questions and anomaly detection on top of it.

    • Microsoft Fabric
    • Power BI semantic models
    • Direct Lake
    • Copilot in Power BI
    • Fabric AI Functions
    • Activator
  • Industrial manufacturing

    Foundation then Activation then Acceleration

    Governed reporting across a production network

    An industrial manufacturer reporting across a production network of sites, each with its own view of what was running.

    • Microsoft Fabric
    • OneLake
    • OneLake Security
    • Direct Lake
    • Spark
    • MES
    • OPC UA
    • Power BI
    • DAX
    • Azure Key Vault
    • Purview
    • Azure DevOps
  • Hospitality and real estate

    Foundation then Activation

    A CFO cockpit over a group that closed its books separately

    A holding group across hospitality and real estate, with entities that each closed their own books and a CFO who had to answer for all of them.

    • Microsoft Fabric
    • OneLake
    • Direct Lake
    • Databricks Mirrored Catalog
    • Fabric Data Factory
    • Power BI
    • DAX
    • Calculation groups
    • Row-level security
    • Azure DevOps
    • Azure Key Vault
    • Purview
  • Multi-brand retail

    Foundation then Activation

    One governed model across a multi-brand retail group

    A retail group running several brands, each with its own systems, its own reporting habits and its own answer to what a margin is.

    • Microsoft Fabric
    • Direct Lake
    • Databricks
    • Eventstream
    • KQL Database
    • Power BI
    • DAX
    • SAP
    • Salesforce
    • Azure DevOps
All case studies

Free consultation

Know where your data stands in an hour.

A free 60-minute consultation. No pitch, no invoice. You’ll leave knowing whether your data is ready for AI, and whether we’re a good fit.

Book your free consultation(opens in a new tab)