GTM Playbooks
Finance/FP&AIntermediateLast reviewed Run it in your LLM

Check Whether Quota Is Realistic From the Distribution of Rep Attainment

The problem

Quota and headcount plans usually assume every ramped rep hits 100%, and the check afterwards is one average attainment number, so nobody sees that most reps landed below quota, that a few top performers carried the average, or that the plan needed more from the typical rep than the team has delivered.

Copy, paste, run

Run it in your LLM

One prompt for Claude or ChatGPT that runs the whole check on your own quota and bookings history: it drops reps still ramping and partial quarters, shows how attainment is spread rather than one average, and turns the median into a realistic capacity number to set against next period's target. Type run the example after pasting it to test it on the fictional data built into the prompt.

Download .mdSKILL.mdExample CSV
# Quota Attainment Distribution

You are a sales operations and FP&A lead reporting to the CRO and the CFO. From a quota and bookings export, measure how ramped reps actually performed against quota, show the spread and not just the average, and check whether next period's quota and headcount can realistically produce the team target, with every number traceable to the export.

## Rules

- Use only the data in this conversation. Do not invent reps, quotas, attainment benchmarks, or industry averages. If something is missing, ask for it, or use the fallback this prompt defines and label it as an assumption.
- Run the calculations in code (Python or your data analysis tool) if you can. If you cannot run code, say so at the top and show the working rep by rep.
- Show the formula and the count of rep-quarters next to every headline number.
- Every default in this prompt (a 6-month ramp, full quarters only, the bucket edges, planning at the median) is a starting assumption the user can change, not a benchmark.
- Read only. Do not recommend changing any rep's quota or pay in this run; report what the numbers imply for the plan and leave the decision to the user.
- Do not rank or name individual reps in the summary. The rep table is for the user's own review.
- Format: attainment as a percentage with one decimal, money to the nearest dollar, rep counts with one decimal before rounding up.

## Step 0. Inputs

If the user says "run the example", use the EXAMPLE DATA section at the end of this prompt, do not ask any questions, and label every output "Example data (fictional)".

Otherwise ask for everything below in one message, skipping anything the user already gave:

1. A CSV export with one row per rep per quarter, with these columns (ask the user to map theirs):
   - rep_id, quarter (YYYY-Qn), start_date, end_date (blank if still on the team), quota, bookings
   Where to get it: quota usually lives in the comp plan or a quota sheet kept by sales ops or finance, and bookings in the CRM (closed won amount by owner and close date) or the commission system. Ask which bookings definition the comp plan uses (for example first-year contract value or new ARR) and use the same one for every row.
2. The ramp rule: by default a rep counts as ramped in a quarter when start date + 6 months is on or before the first day of that quarter.
3. The quarters to include: by default the last four full quarters.
4. For the capacity check: ramped reps next period, quota per ramped rep, and the team target for the same period. Ask whether the target is the board number or the sum of assigned quotas; they are often different.
5. Any change to the defaults above.

Then report a data check before any analysis: rows read, rows dropped and why (duplicate rep and quarter, no quota, no bookings figure, still ramping, left during the quarter), rep-quarters kept, and quarters covered. Ask the user to confirm before going on, unless they said "run the example".

## Step 1. Attainment distribution

For each kept rep-quarter: attainment = bookings / quota.

- Rep-quarters kept, median attainment (for an even count, the average of the two middle values), the average of attainment, and team attainment = sum of bookings / sum of quota
- Share at or above 100%: rep-quarters at or above 100% / rep-quarters kept
- Distribution: counts in under 50%, 50% to under 75%, 75% to under 100%, 100% to under 125%, and 125% and up
- By quarter: rep-quarters, median, team attainment, and the count at or above 100%

Say plainly where the average and the median differ and why: a few rep-quarters far above quota pull the average up, so the median describes the typical ramped rep and the average describes the team total only if the same top performers repeat.

## Step 2. Capacity check for the period being planned

With ramped reps N, quota per rep Q, team target T, and planning attainment A (the median from step 1 by default):

- Plan capacity = N x Q. Quota coverage = plan capacity / T.
- Attainment the target needs = T / (N x Q). Count the historical rep-quarters at or above it, and give the share.
- Realistic capacity = N x Q x A. Gap to target = T - realistic capacity (negative means a cushion).
- Output of one ramped rep at A = Q x A. Extra ramped reps to close the gap = gap / (Q x A), shown with one decimal and rounded up.
- Capacity at the historical average attainment = N x Q x average, shown next to the median figure: the difference is the part of the plan that depends on top performers repeating.
- Quota against delivered output: quota / (Q x A) - 1, the percentage by which quota sits above what a rep at A delivered. Target per ramped rep = T / N.

Do not add capacity for reps still ramping unless the user gives their ramp quotas or a ramp schedule; list them separately. Do not assume attainment will change if quota changes.

## Step 3. Output

Start with a five-line summary:

- Headline: "Median attainment {median} across {n} ramped rep-quarters; {share} at or above 100%."
- The plan: "{N} reps x {Q} = {plan capacity}, {coverage}x the target; the target needs {required}% from every rep, which {count} of {n} past rep-quarters reached."
- Realistic capacity at the median and the gap, with the extra ramped reps it implies.
- Capacity at the average next to it, and what that difference depends on.
- One line: "History is {quarters}; ramped means {ramp rule}; {excluded} rows were left out."

Then these tables:

1. Data check
2. Distribution (bucket, rep-quarters, share)
3. By quarter (quarter, rep-quarters, median, team attainment, at or above 100%)
4. Capacity check (each formula in step 2 with its arithmetic)
5. Rep-quarter detail (rep, quarter, quota, bookings, attainment), for the user's review only
6. Assumptions, each labeled as an assumption, including: the ramp rule; full quarters only; one bookings definition; history is not a forecast; attainment is assumed not to change when quota changes.

If you can create files, offer the distribution, the quarter table, and the capacity check as CSV downloads.

## EXAMPLE DATA (fictional, for testing this prompt)

Use this only when the user says "run the example". The company and reps are made up.

- Quarters: 2025-Q4 to 2026-Q3; ramped means start date + 6 months on or before the quarter's first day
- Plan for 2026-Q4: 12 ramped reps, quota $150,000 each, team target $1,500,000
- Defaults: all as written above

```csv
rep_id,quarter,start_date,end_date,quota,bookings
R-01,2025-Q4,2023-02-06,,150000,180000
R-02,2025-Q4,2023-09-11,,150000,138000
R-03,2025-Q4,2024-01-08,,150000,120000
R-04,2025-Q4,2024-06-03,,150000,112500
R-05,2025-Q4,2024-11-04,,150000,90000
R-06,2025-Q4,2025-01-13,,150000,72000
R-07,2025-Q4,2025-08-04,,50000,20000
R-01,2026-Q1,2023-02-06,,150000,156000
R-02,2026-Q1,2023-09-11,,150000,127500
R-03,2026-Q1,2024-01-08,,150000,114000
R-04,2026-Q1,2024-06-03,,150000,96000
R-05,2026-Q1,2024-11-04,,150000,82500
R-06,2026-Q1,2025-01-13,,150000,63000
R-07,2026-Q1,2025-08-04,,100000,70000
R-01,2026-Q2,2023-02-06,,150000,195000
R-02,2026-Q2,2023-09-11,,150000,150000
R-02,2026-Q2,2023-09-11,,150000,150000
R-03,2026-Q2,2024-01-08,,150000,132000
R-04,2026-Q2,2024-06-03,,150000,118500
R-05,2026-Q2,2024-11-04,,150000,102000
R-06,2026-Q2,2025-01-13,,150000,52500
R-07,2026-Q2,2025-08-04,,150000,172500
R-08,2026-Q2,2026-03-02,,50000,15000
R-01,2026-Q3,2023-02-06,,150000,165000
R-02,2026-Q3,2023-09-11,,150000,144000
R-03,2026-Q3,2024-01-08,,150000,123000
R-04,2026-Q3,2024-06-03,,150000,108000
R-05,2026-Q3,2024-11-04,,150000,117000
R-06,2026-Q3,2025-01-13,2026-08-14,150000,45000
R-07,2026-Q3,2025-08-04,,150000,217500
R-08,2026-Q3,2026-03-02,,100000,60000
```

How to run it

  1. Open Claude or ChatGPT with code execution on (Claude's analysis tool, ChatGPT data analysis). Without it the model does arithmetic by hand, and you should check every number.
  2. Paste the prompt. To test it first, send "run the example" and compare with the expected results below.
  3. Attach a CSV with rep ID, quarter, start date, end date, quota, and bookings for the last four full quarters, using the bookings definition in your comp plan, and give next period's ramped reps, quota per rep, and team target. The prompt lists the columns.
  4. Read the data check first, then take the capacity check to the planning meeting: the attainment the target needs, how many past rep-quarters reached it, and the gap at the median are the three numbers to agree on before quotas go out.

Before you paste quota data

Quota and bookings by rep are sensitive pay data. Check your company's AI and data policy, prefer a business or enterprise plan, and replace names with rep IDs: the prompt only needs IDs, dates, quotas, and bookings. It reads the data and changes nothing in your CRM or comp system.

Expected results on the example data

A correct run of "run the example" should match these, give or take rounding. They are computed from the prompt's definitions by a reference implementation that is tested against hand-worked numbers. The data is fictional.

Rep-quarters kept
25 of 31 rows; median 80.0%, average 84.0%, team $3,148,500 / $3,750,000 = 84.0%
At or above 100%
7 of 25 = 28.0%
Distribution
Under 50%: 3, 50% to under 75%: 5, 75% to under 100%: 10, 100% to under 125%: 5, 125% and up: 2
Plan for 2026-Q4
12 x $150,000 = $1,800,000, 1.2x the $1,500,000 target; it needs 83.3% from every rep, which 11 of 25 past rep-quarters reached
Realistic capacity
$1,440,000 at the median, $60,000 short: 0.5 extra ramped reps at $120,000 each, rounded up to 1; $1,511,280 at the average
Quota against delivered output
$150,000 quota is 25.0% above the $120,000 a rep at the median delivered
Rows excluded
6: R-07 2025-Q4 (still ramping), R-07 2026-Q1 (still ramping), R-02 2026-Q2 (duplicate rep and quarter), R-08 2026-Q2 (still ramping), R-06 2026-Q3 (left during the quarter), R-08 2026-Q3 (still ramping)
Expected attainment by quarter
QuarterRep-quartersMedianTeam attainmentAt or above 100%
2025-Q4677.5%79.2%1
2026-Q1670.0%71.0%1
2026-Q2788.0%87.9%3
2026-Q3689.0%97.2%2

Quota capacity of $1,800,000 looks like a 20% cushion over the $1,500,000 target, but it needs 83.3% from every ramped rep, and only 11 of 25 past rep-quarters got there. At the 80% median the team delivers $1,440,000, $60,000 short, which is half of one more ramped rep. At the 84.0% average it clears the target by $11,280, so the plan works only if the top performers repeat.

Realistic capacity from your attainment history

Enter next period's ramped reps, quota, and target, and paste past attainment of ramped reps from the prompt or the template. Prefilled with the fictional example. Realistic capacity = reps x quota x median attainment.

Plan capacity (reps x quota)
$1,800,000
1.2x the target
Attainment the target needs
83.3%
11 of 25 past rep-quarters reached it
Realistic capacity at 80.0%
$1,440,000
$1,511,280 at the average of 84.0%
Gap to target
$60,000
Extra ramped reps to close it
1
0.5 at $120,000 each, rounded up
Quota vs what a rep delivered
+25.0%
$150,000 quota, $120,000 delivered at 80.0%

Distribution: 7 of 25 rep-quarters at or above 100% (28.0%)

  • Under 50%3
  • 50% to under 75%5
  • 75% to under 100%10
  • 100% to under 125%5
  • 125% and up2

Count only ramped reps who held quota for the full period. The median describes the typical ramped rep; the difference from the average is the part of the plan that depends on top performers repeating. History, not a forecast; reps still ramping are not included.

Implementation steps

  1. 1

    Write the definitions down before pulling data: one bookings definition, the same one the comp plan pays on (for example first-year contract value or new ARR); attainment = bookings / quota for one rep in one quarter; ramped = start date + 6 months on or before the first day of the quarter (an assumption you can change); only reps who held quota for the full quarter count

  2. 2

    Export one row per rep per quarter for the last four full quarters: rep ID, quarter, start date, end date, quota from the comp plan or quota sheet, and bookings from the CRM or commission system. Drop duplicates, rows with no quota, reps still ramping, and reps who left during the quarter, and list each dropped row with the reason

  3. 3

    Compute the distribution of the kept rep-quarters: median attainment, the average, team attainment (sum of bookings / sum of quota), the share at or above 100%, counts in buckets (under 50%, 50% to under 75%, 75% to under 100%, 100% to under 125%, 125% and up), and the same median and share by quarter; show the count of rep-quarters next to every number

  4. 4

    Check next period's plan: plan capacity = ramped reps x quota; the attainment the target needs = target / plan capacity; count how many past rep-quarters reached it. A target that needs more than the median from every rep is a plan that most of your history did not deliver

  5. 5

    Size realistic capacity: ramped reps x quota x median attainment, the gap to target, and the extra ramped reps that close it = gap / (quota x median attainment), rounded up; show capacity at the average next to it, since the difference is the part of the plan that depends on top performers repeating

  6. 6

    Take the result to the planning meeting before quotas go out: close the gap with headcount hired early enough to ramp, a lower target, or a named plan for more pipeline, and add reps still ramping from a ramp schedule rather than at full quota; do not assume attainment stays the same if quota is raised

  7. 7

    Run it with the copy-paste prompt on this page in Claude or ChatGPT, or with formulas in the template, check the kept rows against the comp plan, and use the calculator on this page to try other headcount, quota, and target numbers

  8. 8

    Repeat each quarter on the same definitions and keep each quarter's distribution, so a falling median or a shrinking share at 100% shows up before the annual plan, not after it

Template outline

The structure to recreate in your own workspace. Field names and thresholds are starting points.

Google Sheet: Quota attainment FYxx (Sales ops builds it, Finance owns the capacity tab)

Tab inputs: ramp_months (default 6), quarters included, next period ramped_reps, quota_per_rep, team_target

Tab rep_quarters (one row per rep per quarter): rep_id, quarter, start_date, end_date, quota, bookings
  q_start = first day of the quarter; q_end = last day
  keep = not a duplicate AND quota > 0 AND EDATE(start_date, ramp_months) <= q_start
         AND (end_date blank OR end_date >= q_end)
  attainment = bookings / quota

Tab distribution:
  n = COUNTIF(keep, TRUE); median = MEDIAN(FILTER(attainment, keep)); average = AVERAGE(FILTER(attainment, keep))
  team = SUMIFS(bookings, keep, TRUE) / SUMIFS(quota, keep, TRUE)
  at_or_above_100 = COUNTIFS(keep, TRUE, attainment, ">=1"); share = at_or_above_100 / n
  buckets: COUNTIFS on the edges 0.5, 0.75, 1, 1.25; by quarter: the same with quarter = q

Tab capacity:
  plan_capacity = ramped_reps x quota_per_rep; coverage = plan_capacity / team_target
  required = team_target / plan_capacity; reached = COUNTIFS(keep, TRUE, attainment, ">=" & required)
  realistic = plan_capacity x median; gap = team_target - realistic
  output_per_rep = quota_per_rep x median; extra_reps = ROUNDUP(MAX(gap, 0) / output_per_rep, 0)
  at_average = plan_capacity x average; quota_vs_output = quota_per_rep / output_per_rep - 1

Worked example (example data, fictional):
  31 rows, 2025-Q4 to 2026-Q3, every quota $150,000. 6 dropped: R-07 2025-Q4 and 2026-Q1 still ramping
    (started 2025-08-04, ramped from 2026-02-04), R-08 2026-Q2 and 2026-Q3 still ramping (started 2026-03-02),
    R-02 2026-Q2 listed twice, R-06 2026-Q3 left 2026-08-14.
  25 rep-quarters kept, attainment in %:
    35, 42, 48, 55, 60, 64, 68, 72, 75, 76, 78, 79, 80, 82, 85, 88, 92, 96, 100, 104, 110, 115, 120, 130, 145
  Median = 13th value = 80.0%. Average = 2,099 / 25 = 84.0% (83.96). Team = $3,148,500 / $3,750,000 = 84.0%
  At or above 100%: 7 of 25 = 28.0%
  Buckets: under 50% 3; 50% to under 75% 5; 75% to under 100% 10; 100% to under 125% 5; 125% and up 2
  By quarter (median, team, at 100%+): 2025-Q4 77.5%, 79.2%, 1 of 6; 2026-Q1 70.0%, 71.0%, 1 of 6;
    2026-Q2 88.0%, 87.9%, 3 of 7; 2026-Q3 (82 + 96) / 2 = 89.0%, 97.2%, 2 of 6

  Plan for 2026-Q4: 12 ramped reps, quota $150,000, team target $1,500,000
    Plan capacity      12 x $150,000 = $1,800,000 (1.2x the target)
    Target needs       $1,500,000 / $1,800,000 = 83.3% from every rep; 11 of 25 past rep-quarters reached it
    Realistic          $1,800,000 x 0.80 = $1,440,000
    Gap                $1,500,000 - $1,440,000 = $60,000
    Output per rep     $150,000 x 0.80 = $120,000
    Extra reps         $60,000 / $120,000 = 0.5, rounded up to 1 ramped rep
    At the average     $1,800,000 x 0.8396 = $1,511,280, $11,280 over the target
    Quota vs output    $150,000 / $120,000 - 1 = 25.0% above what the median rep delivered

Slack to #revenue-leadership before quotas go out:
"Quota check for {{period}}: median attainment {{median}} over {{n}} ramped rep-quarters, {{share}} at 100%+.
 Plan needs {{required}} from every rep ({{reached}} of {{n}} got there). Realistic capacity {{realistic}},
 gap {{gap}}, about {{extra_reps}} more ramped reps. Sheet: {{sheet_url}}"

Tab history: quarter, n, median, average, team, share_at_100, required_for_plan

Cost, time saved, and break-even

Tool cost here is your share of an LLM plan, which depends on your vendor, so it is an input. Every number below is an example input; replace each with your own figure.

Inputs (all assumptions)

Replace each value with your own figure.

  • THours a quarter to build the attainment distribution and capacity check by hand (export, ramp and partial-quarter cleanup, buckets, capacity math, write-up)6AssumptionTime the next quarterly quota or capacity review.
  • VHours a quarter with the prompt or template (export, review the data check and the results)1AssumptionTime the first two quarterly runs.
  • RLoaded hourly cost of the sales ops or FP&A analyst$75AssumptionSalary plus benefits, divided by working hours.
  • KMonthly tool cost for the LLM plan$20AssumptionYour share of the Claude or ChatGPT plan, from current vendor pricing and your invoices; the CRM, Google Sheets, and Slack are usually already paid for.

Formulas

Time saved per quarterT - V
6 - 1 = 5 hours
Time saved per week(T - V) / 13
5 / 13 = 0.4 hours
Value of time saved per quarter(T - V) x R
5 x $75 = $375
Tool cost per quarterK x 3
$20 x 3 = $60
Break-even hours per quarterK x 3 / R
$60 / $75 = 0.8 hours, so the run covers its tool cost once it saves 48 minutes a quarter
Capacity gap (fictional example data)target - reps x quota x median attainment
$1,500,000 - 12 x $150,000 x 0.80 = $60,000, or 0.5 of a ramped rep at $120,000, rounded up to 1
  • The math counts analyst time only. Catching an unrealistic plan before quotas go out may change hiring or targets, but what that is worth depends on your business, so it is not added here.
  • Attainment history is not a forecast: a new product, a pricing change, territory changes, or a different rep mix can move it. Recheck the distribution each quarter before relying on it.
  • Rerun the time math after the first two quarters with your real review time V.

Common questions

Why look at the distribution of quota attainment instead of the average?
A few reps far above quota pull the average up while most of the team lands below it. In the fictional example the average is 84.0% but the median is 80.0%, and only 7 of 25 ramped rep-quarters reached 100%.
What share of reps should hit quota?
This playbook does not use an outside benchmark; it checks the plan against your own history. In the fictional example the target needs 83.3% attainment from every ramped rep, and 11 of 25 past rep-quarters reached that, so the plan asks the typical rep for more than most have delivered.
How do you calculate realistic sales capacity?
Realistic capacity = ramped reps x quota x median attainment, and the gap = target - realistic capacity. In the fictional example, 12 x $150,000 x 0.80 = $1,440,000 against a $1,500,000 target, a $60,000 gap that one more ramped rep at $120,000 covers.
Why leave out ramping reps and partial quarters?
Their attainment measures ramp or a short quarter, not whether full quota is realistic, and it pulls the median down. Add ramping reps to capacity from a ramp schedule instead; in the fictional example 4 still-ramping rep-quarters and 1 rep who left during a quarter are left out.
Should capacity be planned at median or average attainment?
The median is what a typical ramped rep delivered and does not depend on a few top performers staying and repeating. The average reproduces past team totals only if they do: in the fictional example it gives $1,511,280 against $1,440,000 at the median, so $71,280 of the plan rides on the top of the distribution.

Keep going

View all Finance/FP&A

Need help implementing a playbook?

Our team builds custom Clay workflows and AI automations for revenue teams.

Get it built for you