Case studies

Demonstration project

Month-End Management Pack

A five-page management pack for Ashcombe Partners, a fictional professional-services firm with four client-facing service lines. Budget to actual, the variance bridge, a drillable P&L and the client portfolio: a close that explains itself, without a finance analyst standing next to it.

  • Client Ashcombe Partners (fictional)
  • Audience Finance and leadership
  • Built with Power BI · DAX · a deterministic data generator
Month-end scorecard: KPI band against budget, operating profit bridge, P&L summary and revenue by service line

The June 2026 close on one page: revenue 4,281 against a 4,500 budget, margin and utilisation against target, and one red card naming the driver to chase. Figures in GBP thousands.

Synthetic data · fictional client · the full model, DAX and data generator are on GitHub (available on request).

The problem

Every month, Ashcombe Partners closes its management accounts and the board asks the same four questions: did we hit the number, what drove the variance, what does the full P&L look like, and which clients is the revenue really coming from? A month-end pack has to answer all four without a finance analyst standing next to it, and it must never confuse a positive number with good news.

What the report does

Five pages, each answering one of the board's questions:

  • Month-End Scorecard - the close on one page: revenue, margin, operating profit and utilisation against budget, the profit bridge in miniature, and the largest adverse variances. One red alarm card names the driver that needs attention.
  • Profit Bridge - the "why" page: a waterfall from budgeted operating profit to actual, one step per driver. Favourable steps green, unfavourable red, anchors in brass.
  • P&L Matrix - the full management P&L as a statement: subtotals in the right places, a this-month column group and a year-to-date group side by side, variance percentage as the only shaded column.
  • Client Portfolio - where the revenue comes from and at what margin: top clients against budget, and a margin-versus-revenue scatter that makes the high-revenue low-margin account impossible to miss.
  • Service Line Detail - one service line end to end, reached by right-click drillthrough: its own P&L and its clients, in the same colour language as the group pages.
Operating profit bridge from budget 720 to actual 612, one step per driver, favourable steps green and unfavourable red

The profit bridge from budgeted operating profit (720) to actual (612), one step per driver: the shape tells the story before any number is read.

Management P&L matrix with this-month and year-to-date column groups and a shaded variance percentage column

The management P&L as a statement, not a pivot dump: green shading only for favourable variance, red only for unfavourable, and an unbudgeted line honestly showing no budget rather than a divide-by-zero.

Under the hood

Every amount in the model is stored as a signed profit contribution: revenue positive, costs negative. Two things follow for free. A plain SUM is the profit at any level of the P&L, and variance carries the favourable-or-unfavourable sign automatically for every line: a cost under budget is positive and green, a revenue miss is negative and red, with one formatting rule and no special cases. The statement layout itself is driven by a small disconnected "P&L Line" table and a single measure, the finance-grade way to put subtotals exactly where an accountant expects them.

The raw ledger carries six deliberate, documented defects the model handles in the open: an unbudgeted account, a duplicated late-journal batch, dirty client names, overhead rows with no client, one cost posted with the wrong sign, and sub-pound rounding rows that vanish honestly once figures are shown in thousands.

The source

The whole project is readable as text: the semantic model in TMDL, the report in PBIR, the DAX measure by measure, and the data generator that produced every figure on this page. The repository is private while the portfolio is finalised; the source is available on request.

All data in this case study is synthetic, generated by a committed, deterministic script; Ashcombe Partners is a fictional client created to demonstrate the work. No real client data appears anywhere in this project.

Next case study: Data Reconciliation Monitor

Get in touch

A close your board could read unaided?

If your month-end pack takes days of manual work and still invites questions, this is exactly the kind of report I build.

Discuss a project