ooligo
claude-skill

Sales comp plan drafter

Difficulty
advanced
Setup time
2-3 hours
For
revops · sales-enablement
RevOps

Stack

A Claude Skill that drafts a sales compensation plan — metric, pay mix, quota, accelerator curve, SPIFs, clawback trigger, dispute policy — and then prices it by replaying last year’s actual attainment distribution through the new curve. It reports what the plan costs at three levels of company performance, what the median rep actually earns against the OTE they were recruited on, and which clawback conditions the draft fails. It ends in draft or blocked. There is no verdict that means approved.

The bundle ships at apps/web/public/artifacts/comp-plan-drafter-skill/ and contains SKILL.md plus three reference templates: references/1-plan-inputs-template.md (role, segment, OTE, quota, curve, work states, budget), references/2-attainment-history-template.md (one row per rep-year, terminated reps included), and references/3-sample-output-format.md (the exact Markdown the Skill emits, with a worked example).

When to use

Six to ten weeks before the plan year opens, on a plan where the only cost model is a spreadsheet that assumes everyone lands at 100% of quota. That assumption is the reason this exists. The Bridge Group’s 2026 AE research, across 158 B2B companies, puts 48% of reps at quota, with enterprise AEs at 38% and a median quota-to-OTE ratio that rose to 4.6x. A plan costed at full attainment is not conservative or aggressive — it is priced against a population that does not exist, and the error shows up as either a budget overrun or, far more often, a team quietly earning well under the OTE on their offer letter.

Also valid: a mid-year amendment for one segment, a new role with no plan precedent, and a post-mortem against the plan currently in market when variable comp came in well off forecast and nobody can say whether the cause was the curve or the quota.

The part that earns its keep is step 3. Every comp tool can render a curve; almost none of them replay your own rep-level history through the curve you are about to ship. That back-cast is what turns “the accelerators look reasonable” into “this costs 2.41M at last year’s performance and 2.98M if the team improves ten points.”

When NOT to use

  • Approving or issuing a plan. A comp plan is a contract. In California, Labor Code § 2751 requires it in writing, signed by the employer, with a signed acknowledgment of receipt from the employee, and it must state the method of computing commissions including the chargeback policy. Every draft the Skill emits carries requires_counsel_review: true in its header and no path removes it.
  • Calculating or paying commissions. This drafts and prices the plan. Payout calculation, dispute handling, and payroll belong to an ICM platform. The Skill writes to nothing.
  • Setting an individual rep’s quota. It models a quota for a role and a segment. Assigning a number to a named person is a coverage-and-capacity question — do the territory carve first, then price the plan against it.
  • Recruiting pay bands. Benchmarking base and equity for a role against Radford or Pave data is a different job with different sources and a different approver.
  • Books with fewer than a dozen fully-ramped rep-years. Thirteen rows is a distribution you can argue about. Six is an anecdote with a percentile function applied to it, and the Skill returns blocked rather than a cost number it cannot support.

Setup

  1. Fill the plan inputs. In references/1-plan-inputs-template.md, set role, segment, headcount, target OTE, pay mix, proposed quota, and budget_ceiling. Leave any curve field as propose and the Skill drafts that piece; pin the ones already decided. Set market_ote_reference from a survey you actually hold and name it in market_ote_source — the retention flag in the output is only as good as that number.
  2. Export the attainment history with the leavers in it. In references/2-attainment-history-template.md, one row per rep-year for the trailing year: prorated quota, attainment against that prorated quota, months ramped, termination date. include_terminated: true is required and the Skill returns blocked when it is false.
  3. Decide the cap deliberately. The template ships uncapped. A cap protects the budget against one outsized deal and reliably produces the sandbagging it was written to prevent. Look at the high case in the cost table before choosing, rather than inheriting the template’s default.
  4. Run dry_run: true first. It returns the observed distribution, the fully-ramped count, and every row it had to exclude with the reason. Most history exports carry two or three rows with a zero quota or a 400% attainment from a single deal, and you want those visible before they are inside a cost number.
  5. Install and scope credentials. Drop the bundle into ~/.claude/skills/comp-plan-drafter/ and set SFDC_TOKEN with read on Opportunity, User, and Quota if you are pulling the history from Salesforce rather than a CSV. Read-only is the correct scope, not a precaution.

What the skill actually does

Two passes, and the split is deliberate. Pass one drafts the plan — that is the judgment work, and it belongs to the model. Pass two back-casts the draft against the observed distribution, and that arithmetic runs in code. A piecewise payout function applied to forty rep-rows will not reproduce run to run when a model does it in context, and a compensation conversation collapses the moment two runs of the same draft return two plan costs.

The cost report gives three numbers rather than one: the observed distribution, plus and minus the sensitivity band. A comp plan is a leveraged instrument and the useful figure is the slope. A plan whose cost moves 8% across a twenty-point attainment swing is not steering anyone; one that moves 60% is a budget exposure somebody should accept on purpose.

Earnings are reported by decile, never as an average. In the worked example in references/3-sample-output-format.md, the plan lands 21% under an approved budget while the median rep earns 154,900 against a 200,000 OTE — a combination a budget-only review passes without comment. The Skill also refuses the easy fix: at 61% median attainment, no defensible quota-to-OTE ratio pays the median rep target, so it names the real choice (fix coverage, territory, or ramp — or say the quiet part at hire) instead of proposing a rate tweak that cannot close the gap.

The policy check emits a checklist, not a conclusion. Three conditions decide whether a clawback survives challenge in most states: the trigger is defined in the plan document before the commission is paid, the earning event is tied to something genuinely reversible, and recovery cannot push a rep below the applicable minimum wage in any pay period. The most common drafting error is the second — earning on booking while recovering on twelve-month churn — and the Skill names the mismatch rather than reporting a generic pass.

Cost reality

Because the rep-level arithmetic happens in code, token cost scales with the size of the summary and the plan document, not with headcount. A 40-rep plan runs roughly 1 to 3 USD per draft-and-stress-test cycle on Claude Sonnet 5 at published API pricing of 3 USD per million input tokens and 15 USD per million output tokens. That figure is an estimate derived from token pricing and typical document length; it moves with how much narrative you ask for, not with roster size. A plan-design cycle takes six to twelve runs as the curve gets revised, so budget around 20 USD for the season.

The comparison that matters is not tooling spend, it is calendar. A RevOps analyst building the same three views by hand — replaying every rep-year through a candidate curve, rebuilding it for each revision, and assembling the state checklist — spends two to four days per iteration, which is why most teams model one curve and then negotiate from it. Each run here is minutes plus an hour reading the output, which is what makes eight revisions fit inside the window instead of one.

vs alternatives

  • QuotaPath — publishes real numbers, which is rare in this category: Growth at an 800 USD monthly platform fee including the first five users plus 50 USD per user per month on the Premium tier, billed annually, with plan modeling, multi-level approvals, and API access (vendor pricing page, checked 2026-08-11). A 40-rep org runs roughly 30,600 USD a year on Premium. Pick it when you want the plan to live in the system that also calculates the payouts and routes the approvals. It models scenarios well; it does not tell you the median rep will earn 77% of OTE.
  • CaptivateIQ — nothing published, per-seat on payees rather than admins, with Vendr reporting a 36,120 USD median annual contract across 305 analyzed purchases. Its Compensation Builder Agent went to limited beta in May 2026 and drafts formulas from your existing plans, which is the catch: a team with four overlapping accelerators gets help building a fifth. Pick CaptivateIQ when incentive compensation management is the scope and the plan structure is already settled.
  • A compensation consultant — the honest incumbent for plan design, and better than this at the political work of getting a plan accepted. They produce one good plan a year and generally do not back-cast it against your rep-level history unless you hand it over and pay for the analysis.
  • Last year’s plan with the numbers changed — the actual baseline at most companies, and the reason accelerator schedules drift for years without anyone pricing the drift. It costs nothing and it is how a fourth component ends up in a plan that nobody can explain in two sentences.

Watch-outs

  • An attainment history that excludes the reps who left. Attrition is not random with respect to attainment — low attainers leave, disproportionately. A survivors-only file understates plan cost and overstates the health of the distribution at the same time. Guard: include_terminated is required, the Skill returns blocked when it is false, and terminated reps enter with prorated quota and partial-year attainment.
  • A distribution produced under a different quota. Last year’s attainment reflects last year’s quota and territories. Guard: the Skill records prior_plan_quota_median and warns when the drafted quota moves more than quota_shift_tolerance_pct, labelling the cost model directional rather than presenting it as a forecast.
  • A plan that passes the budget check and loses people. The cost report is a finance instrument and will happily approve a plan the median rep cannot live on. Guard: the decile table sits next to the cost table, so the retention cost and the budget cost are on the same page and get read in the same meeting.
  • A permanent SPIF. A SPIF with no end date is not a SPIF, it is an undocumented rate increase nobody re-approves. Guard: the SPIF line requires an explicit expiry in the inputs file and the Skill refuses to draft the component without one.
  • Treating blocked as a judgment on the design. It says the numbers cannot be trusted, not that the plan is wrong. Guard: every blocked return names the specific data defect and what would clear it, so the response is an export fix rather than a redesign.

Stack

  • Claude — plan drafting, curve design, policy-gap narrative; the back-cast arithmetic runs in code, not in context
  • Salesforce — closed-won history, quota records, and roster, when the attainment file is pulled rather than exported by hand
  • The plan inputs and attainment history files — the two inputs that make the output specific to your org rather than a template
  • An ICM platformCaptivateIQ, QuotaPath, or whatever calculates the payouts once the drafted plan is approved and signed
  • Sales compensation plan design — the framework behind the metric, curve, and floor choices this Skill drafts against, plus quota coverage for the capacity math that has to hold before the plan means anything

Files in this artifact

Download all (.zip)