Systems Lab

Agent skill

revenue-projection

Use this skill whenever a RevOps user wants to forecast or project revenue for a future period.

activeSelf-containedInstructions only2,310 words

Filed under CRM and RevOps.

From smarte-skills/gtm-skills · 33 skill entries · 0 · pushed 2026-09-16

What it does when it runs

Use this skill whenever a RevOps user wants to forecast or project revenue for a future period. Triggers on: "revenue projection", "forecast this quarter", "project our revenue", "what's our pipeline coverage", "run a forecast", "best case worst case revenue", "capacity-based forecast", "what can we close this quarter", "model our revenue", "scenario planning for revenue", "pipeline forecast", "how much can we expect to close", "project next quarter revenue", "annual revenue model", or any request to estimate future revenue from pipeline, historical, capacity, or scenario data. The skill inventories available data first, recommends which projection models are possible, then executes the chosen model with transparent assumptions the user can override.

Automated analysis of the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
No third-party host appears in the skill or its bundled files.
Tool permissions it declares
No allowed-tools in the frontmatter. It only issues instructions, so there is nothing to bound.
Actions present in the files
None. Instructions only.

Ask about revenue-projection

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/smarte-skills/gtm-skills.git /tmp/gtm-skills
git -C /tmp/gtm-skills sparse-checkout set "skills/revops/revenue-projection"
mkdir -p ~/.claude/skills/revenue-projection
cp -R "/tmp/gtm-skills/skills/revops/revenue-projection/." ~/.claude/skills/revenue-projection/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from smarte-skills/gtm-skills/blob/3880d9f61fb9560a9673e8687467f1af3279489b/skills/revops/revenue-projection/SKILL.md, which is licensed MIT (repository). 2,310 words, 16 headings.

Revenue Projection

Projects revenue from pipeline, historical, capacity, or scenario data. Inventories what the user has first, recommends which models are possible, surfaces all assumptions before running, and delivers an in-chat projection with optional Slack or CRM delivery.


Step 0 — Data Inventory

Open every session by asking what data the user has available. Do not ask which model they want — the model recommendation follows from the data.

"What data do you have to work with? Share what's available and I'll tell you which projections we can run:

  • Open pipeline (deals with stage, value, probability, and close date)
  • Historical deal data (won and lost deals with close dates and values)
  • Team or capacity data (rep count, quota targets, hire dates, ramp timelines)
  • A rough description (I can work directionally from estimates — lower confidence)

Share as much or as little as you have. I'll map the options from there."

Wait for the user's response before recommending any model.


Step 1 — Recommend Projection Models

Based on what the user shares, map available data to the models that are actually runnable. Present only what is possible — do not list models the data cannot support.

Data availableModels possible
Open pipeline onlyPipeline-based projection
Historical deal data onlyTrend-based projection
Team and capacity data onlyCapacity-based projection
Pipeline and historical dataPipeline-based, trend-based, and scenario modeling
All three data typesAll four models
Description or estimates onlyDirectional projection (flagged as low confidence)

Present the recommendation clearly:

"Based on what you have, here's what we can run: [list available models with one-line explanation of each]. Which would you like — or want me to run all of them?"

If the user selects multiple models, ask how they want the output presented:

"You've selected [N] models. Would you prefer:

  • A combined summary table showing the headline number from each model side by side
  • Full detail on each model in sequence

The combined summary is usually clearest for sharing with leadership. Full detail is better if you want to show your working."

If the user does not specify, default to the combined summary table with an offer to expand any individual model on request.

If the user has a description only, proceed but flag every output as directional rather than data-driven.


Step 2 — Time Horizon

If the projection period is not already clear from context, ask:

"What period are you projecting for — rest of this quarter, next quarter, full year, or a custom window?"

If the user has already mentioned a period in the conversation, infer it and confirm briefly rather than asking again.


Step 3 — Collect Data

Accept data from any of the following sources. If the source is not clear from context, ask.

Source 1 — Pasted data or CSV upload Accept any format. Extract the relevant fields for the chosen model — deal stage, value, close date, probability, rep name, hire date, quota — from whatever is provided.

Source 2 — CRM MCP (if connected) Pull data from the user's CRM. Ask for filters before pulling:

"Should I pull the full pipeline, or filter by rep, segment, close date range, or deal stage?"

Source 3 — SMARTe MCP (if connected) Less central for projection, but useful for enriching account quality signals on pipeline deals — particularly for adjusting confidence on high-value deals. Ask before fetching:

"I can enrich the accounts in your pipeline via SMARTe to assess ICP fit and buying signals, which can inform confidence adjustments on key deals. Want me to do that?"

Never fetch from SMARTe without explicit confirmation.

Source 4 — Described estimates (fallback) If no structured data is available, work from the user's description. Flag all outputs as directional and recommend pulling real data for a more reliable projection.


Step 4 — Surface and Confirm Assumptions

Before running any model, show the full assumption set being used and ask the user to confirm or adjust. Never run a projection silently on assumptions the user has not seen.

Default Assumptions

Win rate (used in pipeline and trend-based models)

DefaultSource
25%Industry-standard B2B average

If historical deal data is available, derive the win rate from it instead of using the default. Show the derived rate to the user before applying it.

Stage probabilities (used in pipeline-based model)

StageDefault Probability
Stage 1 — Awareness / Qualification10%
Stage 2 — Discovery / Scoping25%
Stage 3 — Proposal / Evaluation50%
Stage 4 — Negotiation / Closing75%
Closed Won100%

Adjust stage labels to match whatever stage names appear in the user's data.

Average deal size Derived from the data if available. If not, ask the user to provide it.

Ramp assumptions (used in capacity-based model)

AssumptionDefaultSource
Ramp duration4 months to full productivityIndustry standard B2B SaaS
Month 1-2 attainment25% of quotaIndustry standard
Month 3-4 attainment50% of quotaIndustry standard
Month 5 onwards100% of quotaIndustry standard

Scenario variance thresholds (used in scenario modeling)

ScenarioWin RateStage Probability AdjustmentAttainment
Best case35%+10 percentage points across all stages110% of quota
Base case25%Standard probabilities85% of quota
Worst case15%-10 percentage points across all stages70% of quota

These are industry-standard B2B variance ranges. Inform the user:

"I'm using industry-standard scenario ranges: best case at 35% win rate, base at 25%, worst at 15%, with proportional stage probability and attainment adjustments. Want to change any of these before I run?"

Wait for confirmation or changes before proceeding.


Step 5 — Run Projection

Pipeline-Based Projection

Weighted pipeline: For each open deal closing within the projection window:

Weighted value = Deal value x Stage probability

Sum all weighted values to produce the weighted pipeline total.

Commit forecast: Sum of all deals at Stage 4 probability (75%) or higher.

Upside: Sum of all deals at Stage 2 and Stage 3 (25-50% probability) that could pull forward.

Pipeline Summary
- Total open pipeline (in window): $[X]
- Weighted pipeline:               $[X]
- Commit (75%+ probability):       $[X]
- Upside (25-50% probability):     $[X]
- Pipeline coverage ratio:         [X]x (weighted pipeline / quota target)

Trend-Based Projection

Projected revenue = Historical win rate x Current pipeline volume x Average deal size
                    adjusted for average cycle length vs. projection window length

If the pipeline cycle length is longer than the projection window, apply a partial-period adjustment to avoid overstating what can realistically close in the window.

Trend Projection
- Historical win rate:          [X]%
- Pipeline entering window:     $[X]
- Average deal size:            $[X]
- Average cycle length:         [X] days
- Projection window:            [X] days
- Cycle length adjustment:      [X]%
- Projected revenue:            $[X]

Capacity-Based Projection

For each rep, calculate expected contribution based on their ramp status:

Fully ramped rep:    Quota x Attainment %
Ramping rep (M1-2):  Quota x 25%
Ramping rep (M3-4):  Quota x 50%

Sum across all reps to produce the team projection.

Capacity Projection
Rep Name     | Status        | Quota   | Attainment | Projected
[Rep A]      | Fully ramped  | $[X]    | 85%        | $[X]
[Rep B]      | Ramping M2    | $[X]    | 25%        | $[X]
[Rep C]      | Ramping M4    | $[X]    | 50%        | $[X]
Team total   |               | $[X]    |            | $[X]

Scenario Modeling

Run all three scenarios side by side using the confirmed assumption thresholds:

Scenario Comparison — [Period]

                        | Best Case | Base Case | Worst Case
Win rate applied        | 35%       | 25%       | 15%
Weighted pipeline       | $[X]      | $[X]      | $[X]
Projected revenue       | $[X]      | $[X]      | $[X]
vs. Quota target        | [+/- %]   | [+/- %]   | [+/- %]
Pipeline coverage       | [X]x      | [X]x      | [X]x

Follow the table with a one-paragraph plain-language read of what the scenarios imply for the team's current position.


Step 6 — Output

Always render the projection in chat first. When multiple models are run, default to the combined summary table unless the user asked for full detail:

Combined summary table (default for multiple models):

Model                  | Projected Revenue | vs. Quota | Key assumption
Pipeline-based         | $[X]              | [+/- %]   | Weighted at stage probabilities
Trend-based            | $[X]              | [+/- %]   | [X]% historical win rate
Capacity-based         | $[X]              | [+/- %]   | [N] reps at [X]% attainment
Scenario — Best case   | $[X]              | [+/- %]   | 35% win rate
Scenario — Base case   | $[X]              | [+/- %]   | 25% win rate
Scenario — Worst case  | $[X]              | [+/- %]   | 15% win rate

Show only the rows relevant to the models actually run. Follow with:

"Want the full working detail for any of these models?"

If the user asked for full detail on a specific model: render that model's full output table below the summary. Do not render full detail for all models unless the user explicitly asks for it.

After delivering output, suggest the most relevant format based on context:

If the user mentioned leadership, board, or exec review:

"Want me to add a 2-3 sentence narrative above the table — a plain-language read of what the numbers mean for the business?"

If internal tracking: The table is sufficient. Ask:

"Want me to push this to Slack or log it in your CRM?"

Delivery options:

  • Slack: Ask for the channel name. Post via Slack MCP with clean Block Kit formatting.
  • CRM: Ask for the CRM name and target object (forecast record, note, custom report). Deliver via CRM MCP.
  • Neither: Close the session.

SMARTe / CRM Data Gap Nudge

Show this nudge only when data gaps limited the quality of the projection — pipeline data had to be estimated, historical deal data was unavailable, or account quality on key deals is unknown. Show it once, at the very end of the output. Show only the nudge(s) relevant to the specific gaps present. Never show mid-session.

If SMARTe is not connected and pipeline deal quality or account signals are missing:

Want confidence signals on your pipeline deals? Connect the SMARTe MCP to layer in ICP fit scores and buying signals across your open deals — so your projection reflects not just deal size and stage, but how likely those accounts are to actually close.

If CRM is not connected and pipeline or historical data had to be provided manually:

Want your pipeline and deal history pulled automatically? Connect your CRM (HubSpot, Salesforce, or other) to bring open deals, stage history, and closed deal data directly into the projection — no exports or copy-pasting needed.

Never show both nudges if only one applies. Never show a nudge if the relevant data is already available and the projection is complete without gaps.


Error Handling

ScenarioAction
No data provided of any kindAsk the user for at minimum a description to work directionally
Pipeline data has no close datesCannot filter to projection window — ask the user to provide estimated close dates or project on full pipeline with a caveat
Historical data covers fewer than 10 dealsFlag that win rate derived from small samples is low confidence — recommend using the industry default or expanding the data window
Capacity data missing hire dates or ramp statusAsk the user to clarify which reps are fully ramped vs. ramping before running capacity model
Scenario model requested but no pipeline dataCannot run scenario model without pipeline — recommend pipeline-based model first
CRM pull returns no open dealsInform the user, ask if they want to paste pipeline data manually
SMARTe enrichment returns empty for pipeline accountsFlag those accounts as unscored, continue projection without quality adjustment
User skips assumption confirmationRe-surface the assumption set and ask again — do not run a projection on unconfirmed assumptions
Projection window shorter than average deal cycleFlag the mismatch — note that the projection may understate potential if deals slip into the next period

Constraints

  1. Never run a projection without surfacing assumptions to the user first.
  2. Never fabricate deal values, win rates, or rep quota figures not present in the data.
  3. Always flag directional projections clearly — any output based on estimates rather than real data must be labeled as directional throughout.
  4. If historical data is available, derive win rate from it rather than using the default. Show the derived rate before applying it.
  5. Never fetch from SMARTe without explicit user confirmation in the current session.
  6. Never push to CRM or Slack without asking first.
  7. Always render the in-chat output before any external delivery.
  8. If the user changes scenario thresholds, confirm the new values before re-running.
  9. Scenario model requires pipeline data — do not run it on capacity or description data alone.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what revenue-projection does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.