Required Datapoints
- Open Opportunities
- Stage, Persona, and ICP Match
- Behavioral Signals (e.g. demos, product usage)
- Historical Close Rates by Stage
Forecasted Win Rate estimates the likelihood of closing a deal based on pipeline characteristics, buyer behavior, and historical data. It helps predict revenue with greater accuracy.
Forecasted Win Rate is a key indicator of sales effectiveness and pipeline quality, reflecting how likely current opportunities are to close based on scoring models, deal stage progression, persona alignment, and historical patterns.
The relevance and interpretation of this metric shift depending on the model or product:
A rising forecasted win rate typically signals a healthy pipeline, solid ICP alignment, and effective qualification, while a decline may indicate padded forecasting or messaging misalignment.
By segmenting by persona, sales stage, source, or deal size, you can refine lead scoring, prioritize high-likelihood deals, and eliminate pipeline bloat.
Forecasted Win Rate informs:
These are the main factors that directly impact the metric. Understanding these lets you know what levers you can pull to improve the outcome
Actionable ideas to optimize this KPI, from fast, low-effort wins to strategic initiatives that drive measurable impact.
Activities commonly tied to improving or operationalizing this KPI.
| Activity | Description |
|---|---|
| Revenue Forecasting | Revenue Forecasting is a systematic approach to estimating future revenue by analyzing current sales pipeline data, historical performance, and market trends. It turns signals into decisions, interventions, and measurable follow-up. Relevant KPIs include Forecasted Win Rate. |
| Sales Pipeline Management | Sales Pipeline Management involves systematically monitoring, analyzing, and improving each stage of the customer journey, from initial lead generation through to deal closure. It makes the motion operational through ownership, routines, and cross-functional follow-through. Relevant KPIs include Forecasted Win Rate. |
| GTM Strategy | GTM Strategy focuses on Developing an actionable plan to introduce and position a product or service in the market involves defining target segments, mapping customer journeys, and setting clear value propositions. It gives teams a clear plan for where to focus, how to sequence work, and what to measure. Relevant KPIs include Forecasted Win Rate. |
| Lead Scoring | Lead Scoring is a crucial component of modern go-to-market strategies. It turns signals into decisions, interventions, and measurable follow-up. Relevant KPIs include Forecasted Win Rate and Lead Quality Score. |
This KPI is associated with the following stages in the AAARRR (Pirate Metrics) funnel:
This KPI is classified as a lagging Indicator. It reflects the results of past actions or behaviors and is used to validate performance or assess the impact of previous strategies.
This role is directly accountable for the KPI and is expected to drive progress and decisions around it.
These roles contribute directly to performance and typically partner on execution, reporting, or optimization.
These leading indicators influence this KPI and act as early signals that forecast future changes in this KPI.
These lagging indicators confirm, quantify, or amplify this KPI and help explain the broader business impact on this KPI after the fact.
How this KPI is structured in Cube.js, including its key measures, dimensions, and calculation logic for consistent reporting.
cube('Opportunities', { sql: `SELECT * FROM opportunities`,
joins: { Stages: { relationship: 'belongsTo', sql: `${CUBE}.stage_id = ${Stages}.id` }, Personas: { relationship: 'belongsTo', sql: `${CUBE}.persona_id = ${Personas}.id` }, BehavioralSignals: { relationship: 'hasMany', sql: `${CUBE}.id = ${BehavioralSignals}.opportunity_id` } },
measures: { forecastedWinRate: { sql: `forecasted_win_rate`, type: 'number', title: 'Forecasted Win Rate', description: 'Estimated likelihood of closing a deal based on pipeline characteristics, buyer behavior, and historical data.' } },
dimensions: { id: { sql: `id`, type: 'string', primaryKey: true }, stage: { sql: `${Stages}.name`, type: 'string', title: 'Stage' }, persona: { sql: `${Personas}.name`, type: 'string', title: 'Persona' }, icpMatch: { sql: `icp_match`, type: 'string', title: 'ICP Match' }, createdAt: { sql: `created_at`, type: 'time', title: 'Created At' } }})cube('Stages', { sql: `SELECT * FROM stages`,
measures: {},
dimensions: { id: { sql: `id`, type: 'string', primaryKey: true }, name: { sql: `name`, type: 'string', title: 'Stage Name' } }})cube('Personas', { sql: `SELECT * FROM personas`,
measures: {},
dimensions: { id: { sql: `id`, type: 'string', primaryKey: true }, name: { sql: `name`, type: 'string', title: 'Persona Name' } }})cube('BehavioralSignals', { sql: `SELECT * FROM behavioral_signals`,
measures: {},
dimensions: { id: { sql: `id`, type: 'string', primaryKey: true }, opportunityId: { sql: `opportunity_id`, type: 'string', title: 'Opportunity ID' }, signalType: { sql: `signal_type`, type: 'string', title: 'Signal Type' }, eventTime: { sql: `event_time`, type: 'time', title: 'Event Time' } }})Note: This is a reference implementation and should be used as a starting point. You’ll need to adapt it to match your own data model and schema