narrativesquarterly-reviewbusinessapi

Overview

Quarterly business reviews (QBRs) follow a predictable format: KPIs vs. plan, trends, risks, and next steps. The pptx.dev API's quarterly-review narrative automates this structure so you can generate consistent QBR decks from your data.

The Quarterly Review Structure

The quarterly-review narrative generates:

  1. KPIs — quarterly metrics vs. plan, shown as charts
  2. Risks — identified risks with mitigations

Full API Example

curl -X POST https://api.pptx.dev/v1/presentations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Q1 2026 Business Review",
    "narrative": "quarterly-review",
    "colorScheme": "slate-gray",
    "fontScheme": "calibri",
    "slides": [
      {
        "layout": "title-center",
        "content": {
          "heading": "Q1 2026 Business Review",
          "subheading": "Board Meeting — March 28, 2026"
        }
      },
      {
        "layout": "number-4x-title-center",
        "content": {
          "heading": "Q1 Scorecard",
          "items": [
            { "value": "$4.8M", "label": "Revenue (Plan: $4.5M)" },
            { "value": "92%", "label": "Gross Margin" },
            { "value": "1,240", "label": "Active Customers" },
            { "value": "72", "label": "NPS Score" }
          ]
        }
      },
      {
        "layout": "chart-1x-title-center",
        "content": {
          "heading": "Revenue: Actual vs. Plan",
          "chart": {
            "type": "CLUSTERED_COLUMN",
            "categories": ["Jan", "Feb", "Mar"],
            "series": [
              { "name": "Actual", "values": [1500, 1600, 1700] },
              { "name": "Plan", "values": [1400, 1500, 1600] }
            ]
          }
        }
      },
      {
        "layout": "chart-2x",
        "content": {
          "heading": "Customer Metrics",
          "items": [
            {
              "chart": {
                "type": "LINE_WITH_MARKERS",
                "categories": ["Jan", "Feb", "Mar"],
                "series": [{ "name": "New Customers", "values": [45, 52, 68] }]
              }
            },
            {
              "chart": {
                "type": "DOUGHNUT",
                "categories": ["Enterprise", "Mid-Market", "SMB"],
                "series": [{ "name": "Mix", "values": [40, 35, 25] }]
              }
            }
          ]
        }
      },
      {
        "layout": "list-3x-title-center",
        "content": {
          "heading": "Key Risks & Mitigations",
          "items": [
            {
              "heading": "Churn in SMB segment",
              "body": "Mitigation: Launching self-serve onboarding in Q2 to reduce time-to-value."
            },
            {
              "heading": "Engineering hiring behind plan",
              "body": "Mitigation: Opened remote positions and partnered with two new recruiting firms."
            },
            {
              "heading": "Competitor pricing pressure",
              "body": "Mitigation: Shipping enterprise tier with custom SLAs in April."
            }
          ]
        }
      },
      {
        "layout": "list-3x-title-center",
        "content": {
          "heading": "Q2 Priorities",
          "items": [
            { "heading": "Launch Enterprise Tier", "body": "Custom pricing, SLAs, and SSO" },
            { "heading": "Expand Sales Team", "body": "Hire 3 AEs for mid-market segment" },
            { "heading": "Reduce Churn", "body": "Self-serve onboarding and health scoring" }
          ]
        }
      }
    ]
  }'

Automating QBR Generation

Since QBRs follow the same structure every quarter, you can automate deck generation by pulling data from your analytics tools:

const kpis = await fetchQuarterlyKPIs("2026-Q1");
const risks = await fetchRiskRegister();

const response = await fetch("https://api.pptx.dev/v1/presentations", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.PPTX_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    title: `Q1 2026 Business Review`,
    narrative: "quarterly-review",
    colorScheme: "slate-gray",
    fontScheme: "calibri",
    slides: buildQBRSlides(kpis, risks),
  }),
});

This pattern lets you generate consistent QBR decks in seconds instead of hours.

Best Practices for QBRs

  1. Always show plan vs. actual. Context matters more than raw numbers.
  2. Lead with the scorecard. Use a number-4x layout for the headline metrics.
  3. Use slate-gray or forest-green for a professional, understated tone.
  4. End with priorities, not risks. Leave the audience with forward momentum.

Next Steps

You came for the design. Leave with the deck.

STORYD turns anything in this catalog into a finished, story-driven presentation. Free to start, no card.

See it in a deck →

5 free presentations. Exports to PPTX.