borghei/revenue-operations
> Analyzes pipeline coverage, tracks forecast accuracy with MAPE, and calculates GTM efficiency metrics for SaaS revenue optimization
npx skills add https://github.com/borghei/Claude-Skills --skill revenue-operations
Pipeline analysis, forecast accuracy tracking, and GTM efficiency measurement for SaaS revenue teams.
Before running the analysis, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the output.
# Analyze pipeline health and coverage
python scripts/pipeline_analyzer.py --input assets/sample_pipeline_data.json --format text
# Track forecast accuracy over multiple periods
python scripts/forecast_accuracy_tracker.py assets/sample_forecast_data.json --format text
# Calculate GTM efficiency metrics
python scripts/gtm_efficiency_calculator.py assets/sample_gtm_data.json --format text
Analyzes sales pipeline health including coverage ratios, stage conversion rates, deal velocity, aging risks, and concentration risks.
Input: JSON file with deals, quota, and stage configuration
Output: Coverage ratios, conversion rates, velocity metrics, aging flags, risk assessment
Usage:
# Text report (human-readable)
python scripts/pipeline_analyzer.py --input pipeline.json --format text
# JSON output (for dashboards/integrations)
python scripts/pipeline_analyzer.py --input pipeline.json --format json
Key Metrics Calculated:
Input Schema:
{
"quota": 500000,
"stages": ["Discovery", "Qualification", "Proposal", "Negotiation", "Closed Won"],
"average_cycle_days": 45,
"deals": [
{
"id": "D001",
"name": "Acme Corp",
"stage": "Proposal",
"value": 85000,
"age_days": 32,
"close_date": "2025-03-15",
"owner": "rep_1"
}
]
}
Tracks forecast accuracy over time using MAPE, detects systematic bias, analyzes trends, and provides category-level breakdowns.
Input: JSON file with forecast periods and optional category breakdowns
Output: MAPE score, bias analysis, trends, category breakdown, accuracy rating
Usage:
# Track forecast accuracy
python scripts/forecast_accuracy_tracker.py forecast_data.json --format text
# JSON output for trend analysis
python scripts/forecast_accuracy_tracker.py forecast_data.json --format json
Key Metrics Calculated:
Accuracy Ratings:
| Rating | MAPE Range | Interpretation |
|--------|-----------|----------------|
| Excellent | <10% | Highly predictable, data-driven process |
| Good | 10-15% | Reliable forecasting with minor variance |
| Fair | 15-25% | Needs process improvement |
| Poor | >25% | Significant forecasting methodology gaps |
Input Schema:
{
"forecast_periods": [
{"period": "2025-Q1", "forecast": 480000, "actual": 520000},
{"period": "2025-Q2", "forecast": 550000, "actual": 510000}
],
"category_breakdowns": {
"by_rep": [
{"category": "Rep A", "forecast": 200000, "actual": 210000},
{"category": "Rep B", "forecast": 280000, "actual": 310000}
]
}
}
Calculates core SaaS GTM efficiency metrics with industry benchmarking, ratings, and improvement recommendations.
Input: JSON file with revenue, cost, and customer metrics
Output: Magic Number, LTV:CAC, CAC Payback, Burn Multiple, Rule of 40, NDR with ratings
Usage:
# Calculate all GTM efficiency metrics
python scripts/gtm_efficiency_calculator.py gtm_data.json --format text
# JSON output for dashboards
python scripts/gtm_efficiency_calculator.py gtm_data.json --format json
Key Metrics Calculated:
| Metric | Formula | Target |
|--------|---------|--------|
| Magic Number | Net New ARR / Prior Period S&M Spend | >0.75 |
| LTV:CAC | (ARPA x Gross Margin / Churn Rate) / CAC | >3:1 |
| CAC Payback | CAC / (ARPA x Gross Margin) months | <18 months |
| Burn Multiple | Net Burn / Net New ARR | <2x |
| Rule of 40 | Revenue Growth % + FCF Margin % | >40% |
| Net Dollar Retention | (Begin ARR + Expansion - Contraction - Churn) / Begin ARR | >110% |
Input Schema:
{
"revenue": {
"current_arr": 5000000,
"prior_arr": 3800000,
"net_new_arr": 1200000,
"arpa_monthly": 2500,
"revenue_growth_pct": 31.6
},
"costs": {
"sales_marketing_spend": 1800000,
"cac": 18000,
"gross_margin_pct": 78,
"total_operating_expense": 6500000,
"net_burn": 1500000,
"fcf_margin_pct": 8.4
},
"customers": {
"beginning_arr": 3800000,
"expansion_arr": 600000,
"contraction_arr": 100000,
"churned_arr": 300000,
"annual_churn_rate_pct": 8
}
}
Use this workflow for your weekly pipeline inspection cadence.
python scripts/pipeline_analyzer.py --input current_pipeline.json --format text
assets/pipeline_review_template.mdUse monthly or quarterly to evaluate and improve forecasting discipline.
python scripts/forecast_accuracy_tracker.py forecast_history.json --format text
assets/forecast_report_template.mdUse quarterly or during board prep to evaluate go-to-market efficiency.
python scripts/gtm_efficiency_calculator.py quarterly_data.json --format text
assets/gtm_dashboard_template.mdCombine all three tools for a comprehensive QBR analysis.
| Reference | Description |
|-----------|-------------|
| RevOps Metrics Guide | Complete metrics hierarchy, definitions, formulas, and interpretation |
| Pipeline Management Framework | Pipeline best practices, stage definitions, conversion benchmarks |
| GTM Efficiency Benchmarks | SaaS benchmarks by stage, industry standards, improvement strategies |
| Template | Use Case |
|----------|----------|
| Pipeline Review Template | Weekly/monthly pipeline inspection documentation |
| Forecast Report Template | Forecast accuracy reporting and trend analysis |
| GTM Dashboard Template | GTM efficiency dashboard for leadership review |
| Sample Pipeline Data | Example input for pipeline_analyzer.py |
| Expected Output | Reference output from pipeline_analyzer.py |
Analyzes sales pipeline health including coverage ratios, stage conversion rates, sales velocity, deal aging risks, and concentration risks.
python scripts/pipeline_analyzer.py --input pipeline.json --format text
python scripts/pipeline_analyzer.py --input pipeline.json --format json
| Flag | Type | Description |
|------|------|-------------|
| --input | required | Path to JSON file with deals, quota, and stage configuration |
| --format | optional | Output format: text (default) or json |
Tracks forecast accuracy over time using MAPE, detects systematic bias, analyzes trends, and provides category-level breakdowns.
python scripts/forecast_accuracy_tracker.py forecast_data.json --format text
python scripts/forecast_accuracy_tracker.py forecast_data.json --format json
| Flag | Type | Description |
|------|------|-------------|
| forecast_data.json | positional | Path to JSON file with forecast periods and optional category breakdowns |
| --format | optional | Output format: text (default) or json |
Calculates core SaaS GTM efficiency metrics with industry benchmarking, ratings, and improvement recommendations.
python scripts/gtm_efficiency_calculator.py gtm_data.json --format text
python scripts/gtm_efficiency_calculator.py gtm_data.json --format json
| Flag | Type | Description |
|------|------|-------------|
| gtm_data.json | positional | Path to JSON file with revenue, cost, and customer metrics |
| --format | optional | Output format: text (default) or json |
| Problem | Likely Cause | Resolution |
|---------|-------------|------------|
| Pipeline coverage below 3x quota | Insufficient top-of-funnel activity or poor lead-to-opportunity conversion | Audit lead sources and conversion rates by stage; increase outbound activity or marketing spend in underperforming channels |
| Forecast MAPE above 25% | Inconsistent deal stage criteria, sandbagging, or lack of inspection rigor | Standardize stage exit criteria; implement weekly pipeline reviews tied to velocity not just activity; coach high-bias reps individually |
| Magic Number below 0.5 | GTM spend is inefficient relative to new ARR generated | Review channel ROI; reduce spend in low-performing channels; improve rep productivity before adding headcount |
| LTV:CAC below 3:1 | CAC too high or churn eroding lifetime value | Address churn first (use churn-prevention skill); then optimize CAC by shifting to lower-cost acquisition channels |
| Deals slipping past forecast close date | Lack of deal qualification, missing champion, or no compelling event | Implement MEDDIC/BANT qualification; require compelling event documentation for commit-stage deals |
| Pipeline heavily concentrated in early stages | Poor stage progression indicating stalled deals or loose qualification | Set maximum stage age limits; implement automated alerts for deals exceeding 2x average cycle per stage |
| Net Dollar Retention below 100% | Contraction and churn outpacing expansion revenue | Prioritize expansion playbooks for healthy accounts; conduct exit interviews for churning accounts; review pricing tier structure |
In scope: Pipeline health analysis (coverage, velocity, aging, concentration), forecast accuracy measurement (MAPE, bias, trends, category breakdowns), GTM efficiency metrics (Magic Number, LTV:CAC, CAC Payback, Burn Multiple, Rule of 40, NDR), weekly/monthly/quarterly review workflows, and QBR preparation combining all three analysis dimensions.
Out of scope: CRM system administration or data extraction (tools consume JSON exports), deal-level sales coaching (tools flag deals but do not prescribe sales tactics), marketing attribution modeling, customer success health scoring (use customer-success-manager skill), and real-time pipeline monitoring. Tools analyze point-in-time snapshots; continuous monitoring requires integration with CRM/BI platforms.
Limitations: Benchmarks are based on aggregate SaaS industry data and vary by company stage (seed, Series A-C, growth, public), vertical, and sales motion (PLG vs enterprise). Pipeline analysis assumes deal data includes accurate stage, value, age, and close date fields. Forecast accuracy requires minimum 3 periods for trend analysis. GTM metrics require accurate financial data that may not be available in early-stage companies.
Take borghei/revenue-operations from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.