# New Business Pitch Builder

> Turn an audit of a prospect's paid, organic and funnel surface into a pitch with a prioritized gap list, confidence-discounted opportunity sizing in gross profit, and a 90-day engagement outline built from the gaps that scored highest.

New Business Pitch Builder is an AI skill that you can use in Claude Code, Codex, or type.com.

- Skill page: https://typestaging.com/library/skills/new-business-pitch-builder
- Raw SKILL.md: https://typestaging.com/library/skills/new-business-pitch-builder/SKILL.md
- Created by the type.com team
- Updated: September 24, 2026
- Package: 9 files

## How to use New Business Pitch Builder

1. **type.com:** Choose Use Skill to add New Business Pitch Builder to your type.com workspace.
2. **Claude Code:** Download the skill and extract it into ~/.claude/skills/new-business-pitch-builder/ (or .claude/skills/new-business-pitch-builder/ in a project). Then ask Claude to use New Business Pitch Builder.
3. **Codex:** Download the skill and extract it into ~/.agents/skills/new-business-pitch-builder/ (or .agents/skills/new-business-pitch-builder/ in a repository). Then ask Codex to use New Business Pitch Builder.

## Frequently asked questions

### What is New Business Pitch Builder?

New Business Pitch Builder is an AI skill that you can use in Claude Code, Codex, or type.com.

### What does New Business Pitch Builder do?

Turn an audit of a prospect's paid, organic and funnel surface into a pitch with a prioritized gap list, confidence-discounted opportunity sizing in gross profit, and a 90-day engagement outline built from the gaps that scored highest.

### Can I use New Business Pitch Builder in Claude Code or Codex?

Yes. New Business Pitch Builder is a standard Agent Skills folder with a SKILL.md file. Download it and extract it into ~/.claude/skills/ for Claude Code or ~/.agents/skills/ for Codex.

### Who created New Business Pitch Builder?

The type.com team created New Business Pitch Builder. The type.com team reviews every skill before it is published in the Skills Library.

## Example output

Example output from a sample run. Company names and figures are sample data.

```markdown
## New business pitch: Tidewater Outfitters, prepared 2026-09-22

**13 gaps found, worth $27,028 a month in gross profit ($324,333 annualized) after confidence haircuts, counting only gaps that do not overlap.** That is 2.85x the proposed $9,500 monthly retainer, so the fee is matched if roughly 35.1% of the estimate is realized. A further $6,518 a month of paid spend could be redeployed or verified.

$60,000 of monthly paid media across 5 channels returns 1,101 conversions and $93,585 of platform-reported revenue (1.56x). The site converts 1.39% of traffic end to end.

| # | Area | Gap | Monthly (adj.) | Annual (adj.) | Effort |
| ---: | --- | --- | ---: | ---: | ---: |
| 1 | Paid media | Meta Ads costs $66.67 per conversion against $39.22 on Google Shopping | $3,624 | $43,482 | 2w |
| 2 | Funnel | Checkout started to Purchase converts at 35.00% against a 40.00% benchmark | $7,782 | $93,384 | 6w |
| 3 | Paid media | Microsoft Ads reports no conversions on $2,000 of monthly spend | $1,200 | $14,400 | 1w |
| 4 | Funnel | Sessions to Product view converts at 40.00% against a 45.00% benchmark | $6,803 | $81,633 | 6w |
| 5 | Funnel | Add to cart to Checkout started converts at 45.00% against a 50.00% benchmark | $6,047 | $72,562 | 6w |
| 6 | Paid media | Google Search converts at 2.00% against a 2.80% benchmark | $3,927 | $47,124 | 4w |

…plus 7 more gaps in the full report, ranked by adjusted annual value per week of delivery effort.

| Area | Gaps | Valued as | Monthly (adjusted) | Annual (adjusted) |
| --- | ---: | --- | ---: | ---: |
| Funnel | 4 | gross profit | $25,579 | $306,948 |
| Paid media — conversion rate | 2 | gross profit | $6,872 | $82,467 |
| Organic search | 4 | gross profit | $1,449 | $17,385 |
| Paid media — spend efficiency and tracking | 3 | recovered spend | $6,518 | $78,212 |

**Next actions**
- **Days 1-30, stop the leaks:** reallocate spend from Meta Ads to the strongest cost-per-acquisition channels, and rebuild conversion tracking so the $2,000 of monthly Microsoft Ads spend is proven or cut.
- **Days 31-60, convert the traffic already arriving:** instrument the funnel and run a test roadmap against Checkout started to Purchase (35.00% vs a 40.00% benchmark).
- **Days 61-90, compound the gains:** technical, content and link work on near-miss organic pages, led by 'rain jacket' at position 14 with 40,000 monthly searches.

**Inputs:** paid snapshot, SEO pages, funnel steps and benchmark file; average order value $85.00 at 55.0% gross margin, or $46.75 gross profit per order.

_Produced by running `bash examples/run.sh` on the sample data bundled with this skill._
```

## Package files

- DATA_CONTRACT.md
- SKILL.md
- examples/data/benchmarks.csv
- examples/data/funnel_steps.csv
- examples/data/paid_snapshot.csv
- examples/data/seo_pages.csv
- examples/expected_output.txt
- examples/run.sh
- scripts/build_pitch.py

## SKILL.md

````markdown
---
name: new-business-pitch-builder
description: Turn an audit of a prospect's paid, organic and funnel surface into a pitch with a prioritized gap list, confidence-discounted opportunity sizing in gross profit, and a 90-day engagement outline built from the gaps that scored highest.
---

# New business pitch builder

Converts four exported files about a prospect into the spine of a pitch: what is
broken, what each fix is worth, in what order, and what the first 90 days look
like. Every number is traceable to a line in the input and to a stated
assumption, so the prospect can argue with the assumption instead of dismissing
the number.

## Before you run

This skill ships scripts and sample data alongside this SKILL.md. Before running any command:

1. **Get the files.** Make sure the skill's other files (`scripts/`, `examples/` and anything else listed with this skill) are in your working folder at the same relative paths. Some environments load only SKILL.md; if yours did, fetch each file from this skill's published files and write it to the matching path. In Type, read them with the skill-file tools. Anywhere else, the Type Skills Library API lists every file with its path, content and `sha256`: GET `https://api.type.com/api/public/library/skills` and take the entry with slug `new-business-pitch-builder`.
2. **Check the copies are exact.** Compare each file's size in bytes, not characters (and its hash, where your tools report one), with the published version before running. A copy written out from the published file is fine once its byte size and hash match; never run a script you summarised or reconstructed from memory.
3. **Run from the skill's folder**, calling interpreters explicitly: `python3 scripts/…` and `bash examples/run.sh`.
4. **Try the sample first.** If the skill ships `examples/run.sh` and `examples/expected_output.txt`, run `bash examples/run.sh`; its output should match the expected file exactly. If it doesn't, stop and report the first differing line rather than running on real data.

## When to use this

- Preparing a pitch, an audit deck or a proposal for a prospect where a data
  pull is possible (shared read-only access, a Looker Studio export, or numbers
  the prospect supplied in discovery).
- Qualifying an inbound lead: run it early to see whether there is enough
  opportunity to justify the pursuit.
- Building a renewal or expansion case for an existing client — the math is
  identical.

Do not use it to invent numbers for a prospect who has shared nothing. Without
real inputs the output is a confident fiction, which is worse than no deck.

## Gathering the inputs

Four CSVs, specified in `DATA_CONTRACT.md`. The script reads local files only.

1. **`paid_snapshot.csv`** — one row per paid channel for a representative
   month: spend, impressions, clicks, conversions, revenue. Sources: the
   prospect's ad accounts if read access was granted, a shared reporting
   dashboard, or figures they provided. Use one clean month, not a partial one.
2. **`seo_pages.csv`** — URL, target keyword, monthly search volume, current
   position, current monthly clicks. Sources: the prospect's Search Console
   export, or a third-party rank/volume tool. Never estimate positions by eye.
3. **`funnel_steps.csv`** — the site funnel as an ordered list of steps with
   user counts, from sessions through purchase or qualified lead. Source: the
   analytics property's funnel or path report.
4. **`benchmarks.csv`** — the comparison rates the pitch is argued against:
   per-channel conversion rate, per-step funnel rate, and optional
   position-CTR overrides. Use the agency's own portfolio medians where
   possible; cite the source in the file's `source` column and be ready to
   defend it in the room. Benchmarks are the load-bearing assumption of the
   entire deck.

Ask the prospect for average order value and gross margin. If they will not
share margin, use a conservative industry figure and say so on the slide — the
entire opportunity scales linearly with it.

## Running it

First run: `bash examples/run.sh` builds the pitch for the bundled sample
prospect in `examples/data/`. The equivalent command, which you point at your
own exports by replacing the `examples/data/` paths:

```bash
python3 scripts/build_pitch.py \
  --paid examples/data/paid_snapshot.csv \
  --seo examples/data/seo_pages.csv \
  --funnel examples/data/funnel_steps.csv \
  --benchmarks examples/data/benchmarks.csv \
  --prospect "Tidewater Outfitters" \
  --aov 85 \
  --gross-margin 55 \
  --as-of 2026-09-22 \
  --proposed-retainer 9500
```

- `--aov` and `--gross-margin` convert incremental conversions into gross
  profit. Both are required; there is no default, because a guessed margin
  silently changes every number in the deck.
- `--as-of` is required and only labels the analysis.
- `--target-position` (default 3) and `--max-position` (default 20) bound the
  organic estimate.
- `--reallocation-threshold` (default 25) is how much of a channel's spend must
  be recoverable before it is called a gap.
- `--confidence-scale` (default 1.0, maximum 1.0) uniformly lowers every
  confidence haircut. Use `0.7` or `0.6` for a deliberately conservative
  version — useful when the prospect is analytical or burned by a previous
  agency.
- `--proposed-retainer` compares the non-overlapping gross-profit estimate to
  the fee. Omit it if pricing is not yet on the table.
- `--json` for machine output.

## Reading and presenting the output

- **What we found** is the opening slide. It is written to be read aloud.
- **Prioritized gaps** is ranked by adjusted annual value per week of delivery
  effort, so the quick wins lead. Present the table, then the two or three
  detail blocks you intend to defend — do not read all of them.
- Every gap shows both a **raw** and an **adjusted** value. Present the
  adjusted number. Keep the raw number available for the question "where did
  that come from", and never total the raw column on a slide.
- **Opportunity summary** is the one-number-per-area slide. It deliberately has
  no total row and no raw column. Gaps are valued in two units — **gross
  profit** (extra orders) and **recovered spend** (paid budget that can be moved
  or cut) — and the two are never added together. The funnel and paid
  conversion-rate rows lift conversion of the same visitors, so the
  **non-overlapping gross profit** line counts only the larger of the two plus
  organic search. Quote that line and the recovered-spend line separately; do
  not add the table's rows on a slide. Funnel work usually dominates; that is
  real, and it is also the work a prospect is least likely to believe, so lead
  with the fast paid fixes and let the funnel number sit behind them.
- The **retainer comparison** uses only the non-overlapping gross-profit figure.
  Present it as "the estimate is N times the fee", never as a promise that the
  fee pays for itself.
- **Proposed 90-day engagement** is populated from the gaps that actually
  scored, not from a template: the phases contain the workstreams that follow
  from this prospect's evidence. Edit the wording, keep the mapping.
- **How these numbers were built** and **What this analysis cannot see** belong
  in the appendix and in the room. Presenting the limits is what makes the rest
  credible.

## Limits

- Opportunity sizing is arithmetic against benchmarks, not a forecast and not a
  guarantee. Never present it as revenue the agency will deliver.
- Benchmarks are supplied, not derived. A generous benchmark file produces a
  generous pitch; the skill cannot tell whether a benchmark is fair.
- Each paid channel contributes at most one gap, and funnel gaps are each
  computed with the other steps held at their current rates. Even so, gaps
  across areas overlap: improving paid conversion rate and fixing checkout touch
  the same users.
- Organic estimates assume ranking at the target position is achievable and
  ignore SERP features, intent mismatch, cannibalization and competitive
  difficulty. Keywords beyond `--max-position` are excluded outright.
- It uses platform-reported conversions and revenue as given. No attribution
  correction, no incrementality, no de-duplication across channels.
- It does not price the engagement, write the proposal, or assess whether the
  prospect can execute. It produces the analytical spine a human turns into a
  pitch.
````
