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.

Stable13 min read

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:

  1. Get Expected Demand FTE from risk-weighted demand calculation
  2. Get Readiness Supply FTE from talent readiness assessment
  3. 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)ActionRationale
≤ -0.5Sell FreelyExcess capacity, low risk
-0.5 to 0.0Sell ConditionallyTight capacity, monitor closely
0.0 to 0.5Build Stash (short-term) OR Sell Conditionally (chronic)Small gap, manageable with stash
0.5 to 1.5Partner (short-term) OR Hire (chronic)Medium gap, need external support
> 1.5Hire (chronic) OR Limit Sales (short-term)Large gap, can't fulfill safely

Balanced (Controlled Growth)

Risk Gap (FTE)ActionRationale
≤ 0.0Sell FreelySupply meets or exceeds demand
0.0 to 1.0Sell Conditionally OR Build StashSmall gap, manageable risk
1.0 to 2.0Partner (short-term) OR Hire (chronic)Medium gap, selective partnering
> 2.0Hire (chronic) OR Limit Sales (short-term)Large gap, selective commitment

Aggressive (Accept Higher Risk)

Risk Gap (FTE)ActionRationale
≤ 0.5Sell FreelyComfortable capacity
0.5 to 1.5Sell ConditionallyModerate gap, will stretch
1.5 to 3.0Build Stash OR PartnerLarge gap but willing to stretch
> 3.0Hire 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

json
{
  "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

ComponentFTE
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


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:

  1. Calculate gap including new commitment
  2. If gap manageable (≤ 1.0 FTE) → Build Stash or Partner
  3. 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.

Related tools & templates

All tools