Win rate over decided proposals (won + lost), bucketed by the month the decision landed (`toStartOfMonth(decision_date)`) and the deal's segment, region, and rfx_type. `decided_count` counts every proposal that reached a won/lost decision; `won_count` counts the wins. `win_rate` is exposed as a formula measure (sum(won_count) / nullif(sum(decided_count), 0)) so it remains correct across any window. Pending and withdrawn proposals are excluded entirely — they are NOT counted as losses, and they do not appear in any month because their decision_date is NULL.
- highTreating pending or withdrawn proposals as losses
This metric considers only decided proposals (outcome in ('won','lost')). Pending and withdrawn proposals are excluded from both `decided_count` and `won_count` — they are not silently counted as losses. A denominator that includes pending deals understates the win rate.
- mediumRecomputing win_rate by dividing summed columns client-side
`win_rate` is a formula measure (sum(won_count) / nullif(sum( decided_count), 0)) — correct under any window. Dividing two already-aggregated outputs across a multi-month window yields a different (biased) number than the formula.
- mediumBucketing by submitted month instead of decision month
The grain is the decision month (`toStartOfMonth(decision_date)`), so a proposal lands in the month it was won/lost, not when it was submitted. For cycle-time-to-decision use the `proposal_economics` metric instead.
- “What was the proposal win rate over the last 6 months?”
- “Which segments have the highest win rate this year?”
- “How does win rate compare across RFP, RFQ and RFI by region?”
- proposal_economics
Carries margin and cycle-time-to-decision for the same decided proposals — pair with win_rate to see whether wins are profitable.
- rfx_pipeline
Upstream opportunity pipeline (count + est_value) that feeds the proposals this win rate is computed over.