Technical White Paper · 01 of 05 · Data Synthesis Series · M.01 QBR Automation
Audience: technical MSP buyers and vCISOs
The quarterly review is a data-integration project nobody scoped.
A QBR worth a client's hour pulls from at least six places: ticket and SLA performance from the PSA, asset health and patch posture from the RMM, backup and recovery status from the BCDR platform, security posture from the M365 tenant and the EDR, license utilization from the licensing layer, and agreement economics from finance. Each system answers its own question well. None of them answer the client's question — am I getting what I pay for, and what should change next quarter — because that answer lives in the spaces between them.
So it gets built by hand. Industry reporting puts manual QBR prep at four to six hours per client, per quarter — exporting from each console, reconciling mismatched definitions in a spreadsheet, and pasting the result into slides that are already aging by the time the meeting starts. The work scales linearly with the client count, lands on senior engineers and vCIOs, and produces a snapshot rather than a system.
The real cost isn't the slide deck. It's that no one is watching the joined picture between quarters, when the signals that matter — margin erosion, a slipping renewal, a security gap on your biggest account — actually move.
Where the QBR data actually lives.
Here is the stack a typical $500K–$3M MSP already operates, and the slice of the QBR each layer owns. The point of the right-hand column: every one of these tools is blind to the others. A best-in-class RMM dashboard still can't tell you whether a high-maintenance client is profitable.
| System | Representative Vendors | What It Holds for the QBR | Blind To, On Its Own |
|---|---|---|---|
| PSA | ConnectWise PSA · Autotask · HaloPSA | Ticket volume & trends, SLA attainment, reopen rate, time entries, agreements, invoicing | Device health, patch state, security posture |
| RMM | NinjaOne · Datto RMM · N-able · ConnectWise RMM · Atera | Asset inventory, patch compliance, uptime, monitoring alerts, AV/EDR agent status, EOL hardware | Labor cost, contract value, client sentiment |
| BCDR / Backup | Datto BCDR · Veeam · Acronis | Backup success rate, recovery-test status, retention coverage | Whether failures track to at-risk accounts |
| Security | Microsoft 365 / Defender · SentinelOne · Huntress | Secure score, MFA coverage, incident counts, EDR coverage gaps | Which exposed clients carry the most revenue |
| Licensing / Cloud | Microsoft 365 admin · Pax8 · Intune | License counts, seat utilization, cloud spend, assignment gaps | Headcount growth and upsell headroom |
| Finance | QuickBooks · Xero · PSA financials | Agreement revenue, COGS, recurring vs project mix | The effort actually spent delivering it |
Each platform exposes this data through an administrator-scoped, read-only API. The constraint is never access to the data — it's that the data is never joined.
The insights you can't get from any single tool.
None of the dashboards above is wrong. Each is just partial. The value isn't in any one feed — it's in the join. These are the questions an MSP can only answer by synthesizing across systems, expressed as the datasets each one requires.
Which clients cost more to serve than they pay?
PSA agreement value ⋈ PSA time entries & labor cost
→ true margin per client
The single most expensive blind spot in the industry. Revenue lives in finance; the effort that consumes it lives in ticket time entries. Joined, they expose the clients quietly running at negative margin — the conversation a QBR exists to have.
How healthy is each account, on one axis, over time?
PSA ticket trend + reopen rate + RMM patch compliance
+ BCDR backup success + M365 secure score
→ composite health index
Five systems, one number, tracked quarter over quarter. A single weighted index that turns "everything looks fine in each console" into a defensible, directional read on the relationship.
Where is the next renewal — or the next upsell — hiding?
PSA agreement expiry + RMM asset aging / EOL
+ Pax8 & M365 license headroom + ticket categories
→ evidence-backed renewal & upsell narrative
An expiring agreement next to end-of-life hardware, unassigned licenses, and a cluster of tickets in one category is not a guess — it's a scoped proposal waiting to be written, grounded in the client's own data.
If a breach landed tomorrow, where would it hurt most?
security posture gaps (secure score, MFA, EDR coverage)
⋈ client revenue rank
→ risk-weighted exposure
Posture data is meaningless until it's ranked by what's at stake. Mapping the weakest postures onto the highest-revenue accounts tells you — and the client — exactly where remediation budget should go first.
Which renewals are already slipping, two quarters out?
rising ticket volume + falling SLA / CSAT + shrinking engagement
→ leading churn indicator
The same joined dataset that powers the QBR is the early-warning signal for retention — the synthesis this paper describes is the foundation the next module (M.02 Churn Early Warning) runs on.
The hard part isn't the chart. It's making six systems agree.
Joining MSP data is not a reporting problem; it's an identity problem. The same client is Acme Corporation in ConnectWise, Acme Corp in NinjaOne, and a tenant GUID in Microsoft 365. Until those resolve to one canonical account, every "joined" metric is wrong. Synthesis is the discipline of getting the systems to agree before anyone draws a chart.
Entity resolution
Resolve every record — across PSA company IDs, RMM organization names, M365 tenant identifiers, and licensing accounts — to a single canonical client. Match on domain, tenant ID, and explicit ID mapping rather than fuzzy names alone, because a near-miss on identity quietly corrupts every downstream number.
Normalization and time alignment
Different tools use different grains and different definitions — an "alert" in Datto RMM is not a "ticket" in Autotask, and SLA clocks start on different events. Synthesis normalizes these to shared entities (account, asset, agreement, period) and a common quarter boundary, so a metric means the same thing no matter which console it came from.
Correlation and the narrative
Once the data is resolved and aligned, the cross-tool metrics in Section 03 are derived, and the quarter's story is drafted against them. This is where methodology — including pattern detection across the joined dataset and first-draft narrative generation — does the heavy lifting. The client never receives an agent, a model, or a tool to operate. They receive a finished review and the standing view behind it.
That last point is the whole reason this gap exists. Your PSA vendor has no reason to surface how your RMM data reflects on their tickets; your RMM vendor has no reason to read your finance system. Each is incented to deepen its own slice, not to join across a competitor's. The synthesis layer sits above all of them — read-only, through each platform's admin API, on the stack you already run. No rip-and-replace.
From a quarterly scramble to a standing operation.
Once the synthesis is installed, the QBR stops being an export job and becomes a view that's current between meetings. The quarterly deliverable is a by-product of a system that's already watching the joined picture. These are the outcomes M.01 is built to produce — defined per engagement, in writing, before work starts.
| Outcome | Target | Basis |
|---|---|---|
| QBR prep time | 4–6 hr → < 30 min | per client / quarter |
| Data freshness | on-demand | vs quarterly snapshot |
| Account health index | all clients | standing, quarter-over-quarter |
| Service-margin visibility | per agreement | effort vs revenue |
Catalyst OS is in active development; M.01 ships with our founding cohort. These are the targets the module is built to hit, defined and measured per engagement — not averaged results from a finished platform.
What we commit to
Every engagement defines its deliverables in writing in the SOW — what we'll build, what you'll see, and when — signed before a dollar changes hands. Pre-revenue, we won't pretend to guarantee outcomes we haven't yet measured at scale. We commit to the work.
What it costs
M.01 · QBR Automation is the first operations workflow in the operating layer. It's included in the Foundation tier (M.01–M.03 · $12,500 setup / $3,200 MRR), or stands alone:
- Setup: $4,500
- Per month: $1,200
Where this goes next.
This is paper one of five. Each one takes a module of the operating layer and shows the cross-tool data synthesis behind it — the insights the popular MSP stack can't produce on its own.
| Paper | Module |
|---|---|
| 01 · Now | QBR Automation |
| 02 | Churn Early Warning |
| 03 | Proposal Generation |
| 04 | Pipeline Visibility |
| 05 | Content & Authority |
The first conversation
It's a 30-minute listen, not a pitch — we map your stack, confirm the data is reachable, and show you the first synthesized view against your own systems. If the join doesn't surface something you didn't already know, there's nothing to buy.
Reach out to Lucas Dowd at lucas@catalystshift.ai.