# Output Template

One page. The story first, the numbers underneath, three actions at the end.

---

## Structure

```
## Growth pulse — <period>

<One sentence: what this period actually says about the growth engine.>

### The numbers

**Revenue** — <value>, <delta> · <channel breakdown in one line>
**Leads** — <count>, <delta> · <top source>
**Win rate** — <percent>, <delta>
**Ad return** — <multiple> on <spend> · <cost per lead, with trend>
**Sentiment** — <score>, <delta> · <dispute or churn signal>

### What's working

- <Specific, with the number>

### What isn't

- <Specific, with the number and the likely cause>

### Do these three things

1. **<Action>** — <why, citing the number> · <what it's worth>
2. **<Action>** — <why> · <what it's worth>
3. **<Action>** — <why> · <what it's worth>

<Appendix: sources unavailable this run, if any.>
```

Omit any section with no data. Never print an empty header.

---

## Worked example

```
## Growth pulse — July

Lead volume is the best it's been all year, and the funnel is losing them at
the quote stage.

### The numbers

**Revenue** — USD 86,400, up 4% vs. June · 61% direct, 24% paid social, 15% referral
**Leads** — 112, up 38% vs. June · paid social is the top source at 47
**Win rate** — 11%, down from 19%
**Ad return** — 2.1x on USD 3,200 · cost per lead USD 18, down from USD 31
**Sentiment** — 4.4 stars, flat · 1 dispute, no change

### What's working

- Paid social is the best it has ever performed. Cost per lead fell 42% to USD 18 and
  volume nearly doubled. The creative refresh on Jun 12 is the likely cause.
- Referral revenue is up 22% with no spend behind it.

### What isn't

- 38% more leads produced 4% more revenue. The funnel is losing them: 68 leads
  reached quote stage and 12 closed. That single step is where the growth went.
- Median first response is 31 hours. Paid-social leads arrive at all hours and sit
  overnight.

### Do these three things

1. **Fix quote-stage follow-up.** 56 quoted deals went nowhere last month. At
   the current average deal of USD 740, recovering even a quarter of them is
   ~USD 10,000. This is the largest number on the page.
2. **Answer inbound faster.** 31 hours to first response on leads that cost USD 18
   each. Same-day replies would likely move win rate more than any new campaign.
3. **Hold paid-social spend where it is.** It is performing, but do not scale yet —
   one more month of data will show whether USD 18 per lead holds at higher volume.

Sources unavailable this run: Google Ads (not connected here — export a CSV and
I'll add it next time).
```

Notice the shape. The headline names the problem. The actions are ranked by money, not by ease. The third action is a deliberate "don't do anything yet," which is a real recommendation.

---

## When the honest answer is "steady"

Do not manufacture drama. A calm month should read calm:

```
## Growth pulse — July

Nothing moved much. Revenue, leads, and win rate are all within a few points
of June, and sentiment is unchanged.

...

### Do these three things

1. **Nothing urgent this week.** The engine is steady. The one thing worth
   watching is referral share, which has grown three months running with no
   effort behind it — worth a deliberate test next month.
```

A pulse that invents three urgent actions every week trains the owner to stop reading it.

---

## When data is missing

Name it once, at the bottom, and say what would fix it:

```
Sources unavailable this run: HubSpot (auth expired — reconnect and funnel
conversion returns), Google Ads (not connected here — export the campaign CSV).
```

Never surface a connector error mid-brief, and never let a missing source silently remove a section without a word.
