Agent skill
revenue-forecasting
Revenue forecasting pipeline - bottoms-up pipeline forecast, tops-down model, ensemble blending, scenario analysis, and forecast calibration loop.
Filed under CRM and RevOps.
From varunk130/ai-gtm-skill-library · 31 skills · 5 · pushed 2026-07-31
What it does when it runs
Revenue forecasting pipeline - bottoms-up pipeline forecast, tops-down model, ensemble blending, scenario analysis, and forecast calibration loop. Use when: revenue forecast, sales forecast, pipeline forecast, bookings forecast, NRR forecast, ARR forecast, forecast calibration, scenario planning, ensemble forecasting, board forecast.
Read from 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-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/varunk130/ai-gtm-skill-library.git /tmp/ai-gtm-skill-library git -C /tmp/ai-gtm-skill-library sparse-checkout set "revops-skills/revenue-forecasting" mkdir -p ~/.claude/skills/revenue-forecasting cp -R "/tmp/ai-gtm-skill-library/revops-skills/revenue-forecasting/." ~/.claude/skills/revenue-forecasting/
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.
The skill
Source on GitHub ↗Reproduced in full from varunk130/ai-gtm-skill-library/blob/90e878c73a8fbfd1cab864424ccf674fdc889157/revops-skills/revenue-forecasting/SKILL.md, which is licensed MIT (repository). 894 words, 12 headings.
Revenue Forecasting (FORECAST Framework)
Design a revenue-forecasting pipeline that produces a defensible, calibrated number - not a rep-roll-up that's been over-promised twice. FORECAST blends bottoms-up pipeline math with a tops-down model, runs scenarios, and closes the loop with calibration so the forecast improves quarter over quarter.
Core Principle
A forecast is only as good as its calibration loop. Most forecasts re-anchor every quarter and never learn. FORECAST treats forecasting as an ensemble of models with explicit error tracking, so the system gets more accurate over time.
The FORECAST Framework
| Letter | Stage | The Question |
|---|---|---|
| F | Foundations | What's the ARR / bookings definition, period boundary, and currency convention? |
| O | Outlook (Bottoms-Up) | What does pipeline-weighted by stage and rep commit produce? |
| R | Run-Rate Model | What does the time-series / cohort model produce independent of pipeline? |
| E | Ensemble Blend | How are bottoms-up and tops-down blended, and what's the confidence band? |
| C | Calibration | What's the historical forecast error by segment, stage, and rep? |
| A | Adjust | What manual adjustments are in, and which are evidence-based vs hope-based? |
| S | Scenarios | What are the base / upside / downside cases and their drivers? |
| T | Track | How is forecast vs actual tracked, and how does it feed back into the model? |
Bottoms-Up Forecast
| Element | Spec |
|---|---|
| Stage Conversion | Historical conversion % from each stage to closed-won, refreshed quarterly |
| Time-in-Stage Decay | Probability decay for opportunities aging past expected stage duration |
| Rep Commit Categories | Commit / Best Case / Pipeline / Omitted with named definitions |
| Coverage Multiples | 3x for new logo, 1.2-1.5x for renewal, segment-specific |
| Hygiene Rules | Stale opps demoted, no-next-step opps flagged, close-date discipline |
Tops-Down Run-Rate Model
| Method | Use For |
|---|---|
| Cohort run-rate | Established motions with stable retention |
| Channel attribution roll-up | Multi-channel motions; identifies channel-level slow-down |
| Seasonality-adjusted trend | Markets with clear quarterly / monthly seasonality |
| Leading-indicator regression | Mature businesses with stable lead → revenue mapping |
Ensemble Blending
Don't pick one model - blend them, weighted by historical accuracy:
| Component | Weight Rationale |
|---|---|
| Bottoms-up rep commit | Weight up when historical commit accuracy > 90% |
| Bottoms-up stage-weighted | Weight up for new motions or new reps |
| Tops-down run-rate | Weight up for mature, stable segments |
| AI / ML model | Weight up only if it beats the others on out-of-sample tests |
Always produce point estimate + confidence band - never a single number with no error bar.
Scenarios
| Scenario | Construction |
|---|---|
| Base | Ensemble central estimate |
| Upside | Top quartile of pipeline conversion + favorable mix |
| Downside | Bottom quartile conversion + concentration-risk realization |
| Stress | Material churn / lost-deal / macro event sensitivity |
Each scenario must name the 2-3 drivers that move it, not just shift a number.
Calibration Loop
This is where most forecasting programs fail.
| Step | Action |
|---|---|
| Track forecast vs actual | By period, segment, stage, rep |
| Decompose error | Conversion error vs timing error vs mix error |
| Update model weights | Reweight ensemble based on out-of-sample accuracy |
| Revise stage conversion | At least quarterly; sooner if material drift |
| Coach rep commit accuracy | Visible scorecards |
Output
Save to outputs/revenue-forecasting-[period]-[YYYY-MM-DD].md
| Artifact | Description |
|---|---|
| Definitions Sheet | ARR / bookings / period / currency conventions |
| Bottoms-Up Spec | Stage conversion, decay, commit categories, hygiene rules |
| Tops-Down Model | Run-rate / regression / cohort approach with assumptions |
| Ensemble Spec | Component weights with historical-accuracy rationale |
| Scenario Pack | Base / Upside / Downside / Stress with named drivers |
| Calibration Report | Forecast vs actual error decomposition, trend |
| Adjustments Log | Every manual adjustment with rationale and owner |
| Forecast Dashboard | Single source of truth across finance, sales, RevOps |
Process
- Lock the definitions - same ARR, period, and currency rules across teams
- Build the bottoms-up with disciplined hygiene and decay rules
- Build at least one tops-down model as a check
- Blend into an ensemble with weights from historical accuracy
- Run scenarios with named drivers, not just percent shifts
- Close the calibration loop every period - forecast credibility lives or dies here
Tips
- Single-number forecasts hide risk - always publish a confidence band
- Decay stale opportunities ruthlessly - they're the #1 source of forecast misses
- Manual adjustments need evidence - log them or they become hope
- Calibrate per segment / per rep - aggregate accuracy hides poor accuracy underneath
- The forecast is a product - ship versioned releases, not slack messages
Pairs With
- revenue-analytics - Drivers and leading indicators feed the forecast
- renewal-orchestration - Risk score informs renewal-stage probability
- customer-analytics - Cohort retention curves feed run-rate models
- budget-allocator - Forecast scenarios drive reallocation decisions
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.
- revenue-forecasting by devangk003 · 0
- revenue-intelligence by ericosiu · 3,449
- sales-and-revenue-operations by manojbajaj95 · 92
- expansion-revenue-architect by NEON-Rutger · 45
- revenue-operating-cadence by NEON-Rutger · 45
- revops-forecasting by NEON-Rutger · 45
- revops-revenue-planning by NEON-Rutger · 45
- recurring-revenue by 0xF4ng · 5
Need help setting it up?
This page tells you what revenue-forecasting 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.