# Media plan — B2B SaaS

The media plan with five columns a subscription business needs: which slice of the ideal customer profile the line is aimed at, where in the funnel it is bought to act, which account list it works from, how long the deal behind it takes to close, and what the sales team has to agree a lead is before it counts.

Everything else is the general plan, unchanged. One row per line of spend, budgets as integers in minor units, one currency named per row, and a target column that ships blank because the number is yours.

## How to use it

1. Copy this file, or the CSV version if you would rather work in a sheet.
2. Write one row per line of spend, and split any line that spans two funnel stages or two ICP segments.
3. Fill in the expected sales cycle before the target, because the cycle decides when the target can first be read.
4. Agree the sales-accepted definition with the person who will be accepting the leads, and write it into the row.
5. Leave Target blank until you have a baseline measured over at least one full cycle.
6. Sum Budget (minor units) per currency, never across currencies.
7. Re-read the plan when the first cohort has had a full cycle to mature, not at the end of the month.

## The columns

**Channel** (Text). One platform per row, never two. A channel carrying two funnel stages carries two rows, because the two will never share a target.

**Campaign** (Text). The campaign name as it will be typed into the account, so the plan and the account line up on sight.

**Objective** (Text). Why this line exists: prospecting, retargeting, retention or a launch. One per row, because a line with two objectives is judged on whichever one reads better.

**Audience** (Text). Who the line is aimed at, in terms the platform will accept: a saved audience, an uploaded list, a keyword theme, a placement. Specific enough to be built from the cell.

**ICP segment** (Text). The slice of the ideal customer profile the line sells to: a company size band, an industry, a role, a stack. The column that sets the message, the offer and the deal size all at once.

**Funnel stage** (Text). Where the line acts: awareness, demand capture, pipeline acceleration, expansion. A line spanning two stages is two lines, because the two are judged on different events.

**Target account list** (Text). The named list this line works from, or Open where it does not. Name the list and its version, so a change to the list is visible as a change to the plan rather than as a mystery in delivery.

**Expected sales cycle** (Text). How long a deal from this segment usually takes, in weeks. It is the column that says when this line can first be judged, and without it every line gets read too early.

**Sales-accepted definition** (Text). What sales has agreed counts as a real lead from this line: a title, a company size, a stated need, a booked call. Written here so the argument happens once, at planning time.

**Flight start** (Date (YYYY-MM-DD)). The line's first spending day. In a quarterly business it is usually set by the pipeline coverage a quarter needs rather than by the calendar.

**Flight end** (Date (YYYY-MM-DD)). The last day, inclusive. Set it at least one sales cycle before the quarter it is meant to serve, or the line is paying for pipeline that lands after it is needed.

**Budget (minor units)** (Integer). This line's budget written in the currency's smallest unit, so 1,500.00 is entered as 150000. Integers, because a column of decimals drifts by a cent a row and the total is then wrong for a reason nobody can find.

**Currency** (ISO 4217 code). The code the ad account settles in, which is not always the one the business reports in. A company selling into several regions will have several, and a column of bare numbers cannot be summed across them.

**Primary metric** (Text). The single number that decides whether this line worked. For software this is usually a cost per sales-accepted lead or a cost per opportunity, and only rarely a cost per form fill.

**Target** (Number). The figure this line has to reach. Blank in the file on purpose: it needs a baseline from your own pipeline, measured over at least one sales cycle, before it means anything.

**Owner** (Text). The person who answers for the line. In a subscription business this is often split between demand generation and the sales lead who owns the segment; name one of them.

**Notes** (Text). What the next person needs: the list that has not been refreshed, the case study still in legal, the segment where the product does not yet have a story. Also where to say a figure is a guess.

## The media plan

| Channel | Campaign | Objective | Audience | ICP segment | Funnel stage | Target account list | Expected sales cycle | Sales-accepted definition | Flight start | Flight end | Budget (minor units) | Currency | Primary metric | Target | Owner | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |

## Before you commit it

- Every row names an ICP segment and a funnel stage.
- Every row carries an expected sales cycle, and no line is scheduled to be judged before it has passed.
- Every target account list names its version.
- Every sales-accepted definition has been read by the person who accepts the leads.
- Every budget is an integer in minor units and every row names its currency.
- Every target traces to a baseline in your own pipeline, or is blank.
- Anything that is a guess says so, in Notes, in words.
