A strong QBR covers four things: progress against the outcomes the customer bought you for, what they asked for and what you shipped, the problems they hit and what you did about them, and what comes next. The section that wins renewals is "you asked, we shipped" — and it only works if you can pull the account's request history and shipped changes without days of manual digging through tickets, call notes and a backlog tool that was never built for this.
Most CSMs skip that section, or fake it with a generic "here's what we released this quarter" slide that has nothing to do with what this specific account asked for. That's the difference between a QBR that reads as a template filled in from a company blog and one that proves you were listening to this account specifically.
What should a QBR template actually include?
Here's the slide-by-slide outline. Each section names where the data should come from — if you can't name the source, you'll end up eyeballing it, and eyeballed QBRs are the ones that get challenged in the room.
- 1. Recap of goals — the outcomes this account told you they bought the product for, pulled from the original close notes or kickoff doc, or CRM opportunity fields.
- 2. Usage and adoption since last QBR — product analytics: active seats, feature adoption, usage trend by the specific capabilities tied to their stated goals.
- 3. You asked, we shipped — joined view of support tickets, feedback board items, and call transcripts (Gong/Chorus) mapped to release notes and the usage delta after each ship. This is the section below.
- 4. Open requests and roadmap relevance — remaining open items from the same sources, sorted by account-weighted priority, not vote count.
- 5. Issues and resolution — support ticket volume, severity, and time-to-resolution for this account, pulled from your support tool.
- 6. Health and risk signals — a one-line summary, not a deep dive (see Why Customer Health Scores Miss Churn for how to build this properly).
- 7. What's next — next quarter's plan, tied back to goals from slide 1, and where relevant, expansion scope.
Seven slides, not seventeen. TSIA and Gainsight both make the same point in their QBR guidance: the review is a conversation anchor, not a report-out. If you need more than 20 minutes to get through the deck, you've built a report, not a QBR.
How do you build the "you asked, we shipped" section?
This is the section that earns the renewal conversation, because it's the only one that proves the relationship produced something concrete. The format is three columns: what they asked for, what happened to it, and what changed as a result.
| Requested | Status | Outcome |
|---|---|---|
| Bulk export for reconciliation reports (raised in support ticket + on a Gong call, March) | Shipped in v4.2, April release | Illustrative example: account's weekly export usage went from 3 exports/week to 22/week in the four weeks after release — a proxy for adoption, not a guarantee of retention |
| SSO group mapping for sub-teams | In progress, targeted for Q3 | No usage data yet — flag as an open commitment, not a shipped one |
| Custom field in the mobile app | Declined — doesn't fit the roadmap | Explain why, and what you offered instead (see How to Say No to a Feature Request for the framing) |
Three ingredients make this table credible instead of decorative: it has to be specific to the account (not "we shipped dark mode" when they never asked for dark mode), it has to show status honestly including the ones you declined, and it has to connect to a usage number, even a rough one, rather than just "done."
The honest version of this table is also where you handle requests that won't get built. Don't bury declines — list them, explain the reasoning, and point to what you did instead. A clear no, delivered with a reason, builds more trust than silence. Full framework on how to do that without damaging the relationship is in How to Say No to a Feature Request.
How do open requests become expansion talking points?
Every open request on the table is a forward-looking hook, if you frame it right. "You asked for X, it's scheduled for Q3, and teams that use X typically also need Y" is a natural segue into expansion scope — it doesn't feel like a pitch because it's literally answering their own question. The mistake is treating the open-requests slide as a status update when it's actually your best-qualified upsell list: these are things the account already told you they want, in their own words, with a business reason attached.
Map open requests against your pricing tiers before the call. If three of an account's five open requests sit in a higher tier, that's the expansion conversation — not a cold pitch, a direct answer to something they asked for months ago.
How do you prepare for a QBR without losing a week to spreadsheets?
Here's a realistic prep checklist with time estimates, assuming you're doing this manually today:
- Pull support ticket history for the account — 45–60 min, filtering and tagging by theme
- Pull call transcripts and extract requests mentioned — 60–90 min if you're listening back or skimming Gong notes (see How to Extract Feature Requests and Bug Reports From Gong Calls)
- Cross-reference requests against release notes — 30–45 min, usually done by searching a changelog manually
- Pull usage data and check for change after each release — 30–60 min depending on how accessible your analytics tool is
- Build the deck — 45–60 min once the data is assembled
That's 3.5 to 5 hours per account, per quarter, for a CSM with a manageable book. For a CSM covering 15–20 accounts, that's most of a week spent assembling data instead of talking to customers. This is the actual cost that templates alone don't solve — the template tells you what to build, not how to fill it in fast.
What can be assembled automatically instead of by hand?
The data that makes the "you asked, we shipped" section credible — per-account requests, their status, what shipped, and the usage change after each release — is exactly the kind of cross-source join that's painful to do manually because it lives in four different tools that don't talk to each other: support, calls, the feedback board, and product analytics.
VocxAI is the AI agent that keeps improving your product: it finds the patterns in customer feedback from any tool you use, works out what's wrong in your code, has AI agents build the fix for your approval, then checks whether it worked and acts on what it learns. For QBR prep specifically, that means the per-account request-to-shipped-change table — and the usage change after each release — is something you pull up, not something you build each quarter from a search across four tools.
Two things this doesn't cover, and where to look instead: proving the fix actually worked beyond a surface usage bump is covered in Closing the Feedback Loop: Telling Customers You Shipped It, and measuring whether a shipped change genuinely moved the needle is a separate discipline covered in a dedicated piece on outcome measurement.
FAQ
What should a QBR include?
Four things: progress against the outcomes the customer bought the product for, what they asked for and what shipped, the issues they hit and how they were resolved, and what's planned next. Keep it to 6–7 slides and let the data carry the conversation rather than reading from the deck.
How long should a QBR be?
30–45 minutes total, with the deck itself taking no more than 15–20 minutes to walk through. The rest should be conversation — if the deck eats the whole slot, it's a report, not a review.
How do you prepare for a QBR?
Pull the account's support history, call transcripts, feedback board items, and usage data, then cross-reference what they asked for against what's shipped and what moved in usage afterward. Manually this takes 3.5–5 hours per account; automated, it's a per-account view you refresh rather than rebuild.
What is the difference between a QBR and an EBR?
A QBR (Quarterly Business Review) happens every quarter and tends to be operational — usage, support, shipped requests. An EBR (Executive Business Review) happens less often, usually annually, and is pitched at senior stakeholders with a focus on strategic value and ROI rather than feature-level detail.
How do you show product progress in a QBR?
Tie it to the account's own requests, not a generic release list. A "you asked, we shipped" table with status and a usage delta per item is more persuasive than a changelog, because it's specific to what this account cares about.
See how VocxAI builds this for you
VocxAI is the AI agent that keeps improving your product: it finds the patterns in customer feedback from any tool you use, works out what's wrong in your code, has AI agents build the fix for your approval, then checks whether it worked and acts on what it learns.
Sign up for free