---
id: "10.12"
title: "Campaign log"
dept: marketing-and-growth
status: needs-you
owner: Param
branded: false
last_verified: 2026-10-26
sources:
  - "none: no Brew campaign has run"
  - "memory: cozy-meta-campaign, brew-live-stores, no-spend-while-building"
  - "brew origin/main a559de6: digest.js:1-14, build.js:1012"
---

# Campaign log

## Answer

The one list of every marketing campaign for Brew, with its goal, cost and result; it is empty because no campaign has run, and Param must say what counts as a campaign and who keeps the log.

## Today

| Fact | Source |
|---|---|
| No Brew campaign, paid or organic, appears in any source | [src: no source found in memory or brew origin/main] |
| Five design partners came in person to person, not from a campaign | [src: memory brew-live-stores] |
| Emails the product sends to its own users, such as the Monday digest and Plays ready, are product messages, not campaigns | [src: brew/digest.js:1-14] [src: brew/build.js:1012] |
| Campaigns for other stores, such as Cozy Snugglet on Meta, belong to that store and are not logged here | [src: memory cozy-meta-campaign] |

### The log

| # | Start | End | Campaign | Goal | Channel | Hook | Cap | Spent | Read asks | Reads started | First hand offs | Result | Owner |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| | | | No campaign yet | | | | | | | | | | |

## Tomorrow

| Item | Version | Tag |
|---|---|---|
| A row for every campaign before it starts, filled in when it ends | v1 | New, proposed |
| Organic campaigns logged too: a six week social cycle, an outreach batch, an event | v1 | New, proposed |
| Each version's own small launch logged as a campaign | v2 to v4 | New, proposed |
| Results pulled from the [growth metrics](/marketing-and-growth/growth-metrics) once they are counted | v1 | Changes, once analytics exist |

## How we do it

Proposed, until Param decides:

1. Before a campaign starts, add a row with start date, goal, channel, hook, cap and owner. Spent and results stay empty.
2. A campaign with money in it needs Param's written yes in the row's owner cell before it starts.
3. When it ends, fill spent, read asks, reads started, first hand offs and one line of result.
4. A result is what a person did. Never followers, likes or reach.
5. A campaign that is stopped early says why in the result.

## Numbers

| Metric | Definition | Where measured | Status |
|---|---|---|---|
| Campaigns run | Rows with an end date | This log | Proposed |
| Cost per read ask | Spent divided by read asks, per row | This log | Proposed |
| Asks to hand off | First hand offs divided by read asks, per row | This log | Proposed |

## Open

1. **What counts as a campaign?** Proposal: anything with a start, an end and one ask: a paid test, a six week posting cycle, an outreach batch, an event or a launch.
2. **Who keeps the log?** Proposal: whoever owns the campaign fills its row; Param checks it every Friday.
3. **Does the log live here or in a sheet?** Proposal: here, so every campaign sits next to the plan that made it.
4. **Do we log the first design partner outreach after the fact?** Proposal: yes, one row per partner with how they came in, from what Param remembers, marked From memory.
