Risk Gap & Decisions: From Demand to Action
Framework for calculating risk gap (demand minus readiness) and translating it into clear operational actions: sell, staff, partner, hire, or limit sales.
Executive summary
- Risk gap = Expected Demand FTE - Readiness Supply FTE, calculated per capability and time horizon
- Positive gap = demand exceeds supply (risk); negative gap = supply exceeds demand (opportunity to sell)
- Five operational actions: Sell Freely, Sell Conditionally, Build Stash, Partner, Hire, Limit Sales
- Risk appetite (conservative, balanced, aggressive) determines thresholds for each action
- Without risk gap analysis, firms either over-commit (delivery failures) or under-commit (lost revenue)
Definitions
Risk Gap: The difference between expected demand FTE and readiness supply FTE for a specific capability and time horizon. Positive gap indicates delivery risk; negative gap indicates unused capacity.
Risk Gap Formula:
Risk Gap = Expected Demand FTE - Readiness Supply FTE
Where:
Expected Demand FTE = From risk-weighted demand calculation
Readiness Supply FTE = Internal ready + External stash K3-K4
Risk Appetite: The organization's tolerance for delivery risk, expressed as thresholds for when to sell, staff proactively, partner, hire, or limit sales.
What's included: All ready and nearly-ready talent (internal and external), demand certainty adjustments, agency fit considerations.
What's NOT included: Talent not yet assessed for readiness, demand below confidence threshold (e.g., <10% pipeline stage).
Key insight: Risk gap is forward-looking (what might happen) vs. which is backward-looking (what already happened).
Why this matters
Business impact
Risk gap analysis drives two critical outcomes:
Outcome 1: Prevent delivery failures from over-committing
- Problem: Sales commits to engagement, delivery can't staff, forced to use underqualified talent
- Root cause: No gap analysis—didn't know readiness supply was 1.5 FTE but demand was 3.0 FTE
- Consequence: 40% rework rate, client escalation, margin drop from 45% to 22%
Outcome 2: Prevent revenue loss from under-committing
- Problem: Sales hears "we can't staff," declines opportunity, but readiness supply was sufficient
- Root cause: Delivery over-estimated risk, said "limit sales" when gap was 0.3 FTE (manageable)
- Consequence: Lost $600K revenue, talent sitting idle at 18%
Outcome 3: Trigger right action at right time
- Small gap (0-1 FTE): Build stash, sell conditionally
- Medium gap (1-2 FTE): Partner for immediate demand, hire for chronic demand
- Large gap (>2 FTE): Hire for chronic demand, limit sales for short-term demand
Organizations using risk gap analysis report:
- 20-30% more accurate demand fulfillment (commit when ready, decline when not)
- 10-15% improvement in (better matching of supply to demand)
- Faster decisions (clear thresholds eliminate debate)
How it works
Step 1: Calculate Risk Gap
Formula:
Risk Gap = Expected Demand FTE - Readiness Supply FTE
For each capability and horizon:
- Get Expected Demand FTE from risk-weighted demand calculation
- Get Readiness Supply FTE from talent readiness assessment
- Subtract: Gap = Demand - Supply
Example:
- Capability: Cloud Architecture
- Horizon: Short-term (next 8 weeks)
- Expected demand: 3.5 FTE
- Readiness supply: 2.2 FTE (1.5 internal ready + 0.7 external stash K3-K4)
- Risk Gap = 3.5 - 2.2 = +1.3 FTE
Interpretation: We have 1.3 FTE shortfall—demand exceeds supply by 1.3 people.
Step 2: Check Agency Sufficiency
Question: Does available talent have sufficient agency for the demand?
Agency threshold: If demand requires Agency 4+ (client-facing, owns delivery) but readiness supply has Agency 2-3, partner is required regardless of FTE gap.
Why: Low-agency talent can technically do the work but can't own client relationships. Using them risks delivery failure even if FTE capacity exists.
Decision:
- Agency sufficient → Proceed to risk gap thresholds (Step 3)
- Agency insufficient → Partner (use external senior talent)
Step 3: Apply Risk Appetite Thresholds
Risk appetite determines action thresholds:
Conservative (Minimize Delivery Risk)
| Risk Gap (FTE) | Action | Rationale |
|---|---|---|
| ≤ -0.5 | Sell Freely | Excess capacity, low risk |
| -0.5 to 0.0 | Sell Conditionally | Tight capacity, monitor closely |
| 0.0 to 0.5 | Build Stash (short-term) OR Sell Conditionally (chronic) | Small gap, manageable with stash |
| 0.5 to 1.5 | Partner (short-term) OR Hire (chronic) | Medium gap, need external support |
| > 1.5 | Hire (chronic) OR Limit Sales (short-term) | Large gap, can't fulfill safely |
Balanced (Controlled Growth)
| Risk Gap (FTE) | Action | Rationale |
|---|---|---|
| ≤ 0.0 | Sell Freely | Supply meets or exceeds demand |
| 0.0 to 1.0 | Sell Conditionally OR Build Stash | Small gap, manageable risk |
| 1.0 to 2.0 | Partner (short-term) OR Hire (chronic) | Medium gap, selective partnering |
| > 2.0 | Hire (chronic) OR Limit Sales (short-term) | Large gap, selective commitment |
Aggressive (Accept Higher Risk)
| Risk Gap (FTE) | Action | Rationale |
|---|---|---|
| ≤ 0.5 | Sell Freely | Comfortable capacity |
| 0.5 to 1.5 | Sell Conditionally | Moderate gap, will stretch |
| 1.5 to 3.0 | Build Stash OR Partner | Large gap but willing to stretch |
| > 3.0 | Hire OR Partner (rarely limit sales) | Very large gap, hire or partner aggressively |
Step 4: Take Action
Action 1: Sell Freely
When: Gap ≤ 0 (supply exceeds demand)
What it means: Actively pursue all opportunities in this capability, commit immediately, no staffing risk.
Communication: "We have capacity and capability—commit to all qualified deals."
Action 2: Sell Conditionally
When: Gap 0-1 FTE (small shortfall)
What it means: Pursue opportunities but with conditions:
- Flexible start dates (give delivery 1-2 weeks to staff)
- Client acceptance of "nearly ready" talent (with mentor support)
- Willingness to partner if gap grows
Communication: "We can likely staff this, but need 1-2 weeks lead time."
Action 3: Build Stash
When: Gap 0-2 FTE, short-term horizon
What it means: Proactively source external contractors (move K1-K2 to K3-K4), don't commit sales yet.
Timeline: 2-4 weeks to build K3 (screened) stash, ready for immediate deployment.
Communication: "We're building capacity—hold sales commitments 2 weeks while we secure contractors."
Action 4: Partner
When: Gap 1-2 FTE (short-term) OR agency insufficient
What it means: Engage contractors or agencies immediately for this demand, don't try to build internally.
Timeline: 1-2 weeks to engage (if K3-K4 stash exists), 3-4 weeks if sourcing from scratch.
Communication: "We'll use contractors to fulfill this demand."
Action 5: Hire
When: Gap > 1.5-2.0 FTE, chronic demand (recurring need)
What it means: Initiate hiring for permanent , typically 8-12 week .
Timeline: 8-12 weeks to hire and onboard.
Communication: "This is chronic demand—we're hiring permanent capacity."
Warning: Don't hire for short-term demand (< 6 months)—risk bench bloat after engagement ends.
Action 6: Limit Sales
When: Gap > 2.0 FTE, short-term demand, and can't partner/hire in time
What it means: Decline new opportunities in this capability until gap closes.
Timeline: Temporary (until hiring completes, stash builds, or demand drops).
Communication: "We can't fulfill additional demand in this capability right now—decline or defer opportunities."
Example: CaseCo Mid
{
"canonical_block": "example",
"version": "1.0.0",
"case_ref": "caseco.mid.v1",
"updated_date": "2026-02-16",
"scenario_title": "Risk Gap Analysis Prevents Over-Commitment and Guides Action",
"scenario_description": "CaseCo Mid analyzed risk gap across three capabilities (Cloud, Data, Integration) and took different actions for each based on gap size and horizon.",
"capability_1_cloud_architecture": {
"horizon": "Short-term (8 weeks)",
"expected_demand_fte": 3.5,
"readiness_supply": {
"internal_ready": 1.5,
"external_stash_k3_k4": 0.7,
"total": 2.2
},
"risk_gap": 1.3,
"agency_check": "Sufficient (Agency 4+ available)",
"risk_appetite": "Balanced",
"threshold_analysis": "Gap 1.3 FTE falls in 1.0-2.0 range → Partner (short-term) OR Hire (chronic)",
"demand_type": "Short-term (specific project pipeline)",
"recommended_action": "Partner",
"action_taken": {
"decision": "Build stash + Partner",
"steps": [
"Week 1: Sourced 3 contractors, screened to K3 (screened)",
"Week 2: Pre-cleared 2 contractors to K4 (ready), agreed rates $175-185/hr",
"Week 2: Committed to sales—can now fulfill 3.5 FTE demand (1.5 internal + 2.0 external)"
],
"timeline": "2 weeks from analysis to sales commitment",
"cost": "$630K for 6-month engagement (2 contractors × $180/hr × 1,750 hours)",
"outcome": "Fulfilled demand, avoided over-commitment, no delivery failures"
}
},
"capability_2_data_engineering": {
"horizon": "Chronic (recurring need)",
"expected_demand_fte": 4.2,
"readiness_supply": {
"internal_ready": 2.8,
"external_stash_k3_k4": 0.3,
"total": 3.1
},
"risk_gap": 1.1,
"agency_check": "Sufficient (Agency 3-4 available)",
"risk_appetite": "Balanced",
"threshold_analysis": "Gap 1.1 FTE falls in 1.0-2.0 range → Hire (chronic demand)",
"demand_type": "Chronic (recurring across multiple clients)",
"recommended_action": "Hire",
"action_taken": {
"decision": "Hire 1 Senior Data Engineer",
"rationale": "Demand is recurring, not one-time project. Building internal capacity more economical than contractors long-term.",
"timeline": "10 weeks to hire and onboard",
"cost": "$175K/year fully-loaded cost rate",
"outcome": "Hired 1 Senior Data Engineer, closed gap to +0.1 FTE, moved to 'Sell Freely' after hire"
}
},
"capability_3_integration_engineering": {
"horizon": "Short-term (8 weeks)",
"expected_demand_fte": 2.1,
"readiness_supply": {
"internal_ready": 2.5,
"external_stash_k3_k4": 0.4,
"total": 2.9
},
"risk_gap": -0.8,
"agency_check": "Sufficient (Agency 3-4 available)",
"risk_appetite": "Balanced",
"threshold_analysis": "Gap -0.8 FTE (negative) → Sell Freely",
"demand_type": "Short-term (specific deals)",
"recommended_action": "Sell Freely",
"action_taken": {
"decision": "Sell Freely",
"communication_to_sales": "We have 2.9 FTE capacity for 2.1 FTE demand—actively pursue all integration opportunities",
"outcome": "Committed to 2.1 FTE demand, kept 0.8 FTE as buffer/bench (acceptable at 5-10% bench)"
}
},
"key_learning": "Risk gap analysis enabled three simultaneous actions across three capabilities: Partner for Cloud (short-term gap), Hire for Data (chronic gap), Sell Freely for Integration (excess capacity). Without gap analysis, would have applied single blanket decision (e.g., 'limit all sales' or 'partner for everything')."
}
Action: Risk Gap Decision Tool
Use this tool to calculate risk gap and determine action:
Risk Gap Calculator
Capability: _______________________ Time Horizon: [ ] Immediate [ ] Short-term [ ] Chronic
Step 1: Calculate Risk Gap
| Component | FTE |
|---|---|
| Expected Demand FTE | _______ |
| Readiness Supply FTE (internal) | _______ |
| Readiness Supply FTE (external K3-K4) | _______ |
| Total Readiness Supply | _______ |
| Risk Gap (Demand - Supply) | _______ |
Step 2: Check Agency
Required agency level: _______ (1-5) Available agency level: _______ (1-5)
Agency sufficient?: [ ] Yes (proceed to Step 3) [ ] No (→ Partner required)
Step 3: Determine Action
Risk Appetite: [ ] Conservative [ ] Balanced [ ] Aggressive
Risk Gap Threshold:
- ≤ 0.0 FTE → Sell Freely
- 0.0-1.0 FTE → Sell Conditionally OR Build Stash
- 1.0-2.0 FTE → Partner (short-term) OR Hire (chronic)
- > 2.0 FTE → Hire (chronic) OR Limit Sales (short-term)
Demand Type: [ ] Short-term (< 6 months) [ ] Chronic (recurring)
Recommended Action: _______________________
Step 4: Execute Action
Action: _______________________ Timeline: _______ weeks Cost estimate: $_______ Communication to sales: _______________________
Pitfalls
Pitfall 1: Calculating gap at aggregate level (not per capability)
Early warning: Firm shows aggregate bench of 10%, but still can't staff cloud deals (cloud-specific gap is +2.5 FTE).
Why this happens: Easier to calculate total FTE gap than per-capability gap. Assumes talent is fungible across capabilities.
Example: CaseCo Mid had:
- Cloud gap: +2.5 FTE (demand 4.5, supply 2.0)
- Integration gap: -1.8 FTE (demand 2.2, supply 4.0)
- Aggregate gap: +0.7 FTE (looks manageable)
Used aggregate gap, said "Sell Conditionally" across all capabilities. Result: Committed to cloud deals they couldn't staff, while integration talent sat on bench.
Fix: Calculate risk gap per capability, not aggregate. You can't staff cloud deals with integration engineers.
Pitfall 2: Not adjusting for agency when readiness supply is high
Early warning: Capacity exists (gap ≤ 0) but talent lacks agency for client-facing work, leading to delivery issues.
Why this happens: FTE gap calculation ignores agency dimension. Assumes "available = ready" without checking agency fit.
Example: CaseCo Mid had 0.0 FTE gap for data engineering (supply = demand). All supply was Agency 2 (task executors). Deal required Agency 4 (client-facing, owns delivery). Committed anyway. Client escalated: "Your team needs constant direction."
Fix: Add agency check before applying gap thresholds:
- If agency insufficient → Partner (regardless of FTE gap)
- If agency sufficient → Proceed with FTE-based thresholds
Pitfall 3: Using same thresholds for short-term and chronic demand
Early warning: Hiring for short-term demand (gap = 1.5 FTE, 3-month project), then talent goes to bench after project ends.
Why this happens: Thresholds say "gap > 1.5 → Hire" without considering demand duration. Hiring is appropriate for chronic demand, not short-term.
Example: CaseCo Mid had 1.8 FTE gap for cloud capability, short-term demand (6-month project). Threshold said "Hire." Hired 2 cloud architects ($350K cost). Project ended, 2 architects moved to bench (no follow-on demand). 30% bench rate, $175K bench cost.
Fix: Add demand duration check:
- Short-term demand (< 6 months): Partner or Build Stash (don't hire)
- Chronic demand (recurring): Hire
Update thresholds: "Gap > 1.5 → Hire if chronic demand, Partner if short-term demand."
Pitfall 4: Waiting too long to take action ("analysis paralysis")
Early warning: Gap calculated, action identified, but no execution for 3-4 weeks while "we gather more data" or "wait for next planning cycle."
Why this happens: Risk gap analysis feels theoretical. Team waits for "perfect information" or scheduled planning meeting.
Example: CaseCo Mid calculated 1.5 FTE cloud gap in week 1. Recommended action: Build Stash. Waited 3 weeks for next monthly planning meeting. By week 4, sales committed to deals (didn't know about gap), delivery couldn't staff, forced to use underqualified talent.
Fix: Act within 1 week of gap calculation:
- Gap identified → Action decided → Execute immediately
- Don't wait for planning cycles—update plan after action
Risk gap analysis is for real-time decisions, not quarterly planning only.
Next
- Demand Planning — Calculate expected demand FTE
- Risk-Weighted Demand — Adjust demand by confidence
- Talent Readiness — Calculate readiness supply FTE
- Staffing Gate — Decision process using gap analysis
FAQs
Q: What if risk gap is negative (supply > demand)—should we reduce headcount?
A: Not immediately. Negative gap scenarios:
- -0.5 to 0.0 FTE: Healthy buffer, keep capacity for demand spikes
- -0.5 to -1.5 FTE: Acceptable bench (5-10%), use for training, business development
- < -1.5 FTE: Chronic excess capacity, consider redeploying to other capabilities, upskilling, or (last resort) headcount reduction
Never reduce headcount for short-term negative gaps—demand fluctuates.
Q: How often should we recalculate risk gap?
A: Frequency varies by horizon:
- Immediate horizon: Weekly (demand changes rapidly)
- Short-term horizon: Bi-weekly or monthly
- Chronic horizon: Monthly or quarterly
Also recalculate when:
- Large deal enters/exits pipeline
- Talent becomes available (rolling off project) or unavailable (starts new project)
- External stash changes (contractor accepts other engagement)
Q: What if risk gap is different across geographies (e.g., gap in US but surplus in EU)?
A: Calculate risk gap per geography if talent isn't mobile:
- Gap +1.5 FTE in US, -0.8 FTE in EU → Partner in US, Sell Freely in EU
If talent is mobile (remote work, willing to relocate):
- Combine supply across geographies
- Gap becomes +0.7 FTE (1.5 - 0.8) → Sell Conditionally OR Build Stash
Don't use aggregate gap if talent can't actually move.
Q: Should we set risk appetite once for the whole org, or per capability?
A: Start with org-wide risk appetite, then customize per capability if needed:
- Core capabilities (e.g., cloud, data): Conservative or Balanced (minimize delivery risk)
- Emerging capabilities (e.g., AI, new tech): Aggressive (willing to stretch, learn, partner heavily)
Example: CaseCo Mid uses Balanced as default, Conservative for financial services compliance work (high risk), Aggressive for new AI capability (early growth phase).
Q: What if sales already committed before we calculated risk gap?
A: Retroactive gap analysis:
- Calculate gap including new commitment
- If gap manageable (≤ 1.0 FTE) → Build Stash or Partner
- If gap unmanageable (> 2.0 FTE) → Escalate to COO, options:
- Renegotiate start date with client (buy time to staff)
- Partner (external support)
- Decline/exit engagement (last resort, damages relationship)
Prevention: Integrate gap analysis into sales process—sales can't commit without delivery confirmation.
Q: What's the difference between "Sell Conditionally" and "Build Stash"?
A: Sell Conditionally: Accept deals now but with conditions (flexible start dates, mentor support, client expectations managed)
Build Stash: Don't accept deals yet, spend 2-4 weeks building external stash (K3-K4), then sell
Use Sell Conditionally when:
- Gap is small (0-0.5 FTE)
- Demand is immediate (can't wait 2-4 weeks)
- Have mitigation plans (pairing, mentoring)
Use Build Stash when:
- Gap is medium (0.5-2.0 FTE)
- Demand is short-term (not chronic)
- Can defer sales 2-4 weeks while building capacity
Q: Can we have different risk gaps for same capability across different time horizons?
A: Yes—common pattern:
- Immediate horizon: Gap +1.5 FTE (can't staff now)
- Short-term horizon: Gap +0.5 FTE (talent rolling off projects in 4 weeks)
- Chronic horizon: Gap -0.3 FTE (planned hiring will create surplus)
Actions:
- Immediate: Limit Sales or Partner (can't fulfill now)
- Short-term: Sell Conditionally (can fulfill in 4 weeks)
- Chronic: Sell Freely (surplus capacity coming)
Always specify horizon when calculating gap.
Q: What if we don't have external stash (K3-K4) built yet—can we still calculate gap?
A: Yes, but readiness supply will be lower:
- Readiness Supply = Internal ready only (no external stash)
- Risk gap will be higher (larger shortfall)
- Recommended action will shift toward "Build Stash" or "Limit Sales"
Fix: Start building stash immediately—target 10-15 K3 contractors per core capability, refreshed quarterly.