# Risk Envelope v1 — Chinn 1200 (#bid1)

*Probabilistic bid distribution from Monte Carlo over 10-block decomposition · 10,000 trials · seed=42*

**Run:** 2026-04-30 17:38 UTC
**Atom Library:** v2 (76 closed jobs · 18 cohorts)

## Headline distribution (with 12% O&P added on top)

| Percentile | Direct Cost | + 12% O&P | Total Bid | Position vs Rich's bid |
|---|---:|---:|---:|---:|
| P10 (aggressive) | $2,665,123 | $319,815 | **$2,984,937** | -36.5% |
| P25 | $2,927,978 | $351,357 | **$3,279,335** | -30.2% |
| P50 (median) | $3,518,071 | $422,169 | **$3,940,240** | -16.2% |
| P75 | $4,480,799 | $537,696 | **$5,018,494** | +6.8% |
| P90 (cushioned) | $5,057,423 | $606,891 | **$5,664,314** | +20.5% |

**Rich's actual 1st bid:** $4,700,000
**Mean of distribution (with O&P):** $4,063,544
**Stddev:** $795,907

**Where Rich's bid sits in the distribution:** P84 (calibrated direct cost)

## Block-level composition (variance contribution)

Each block is a priceable component of the bid. The variance contribution shows which blocks drive the most uncertainty in the total bid.

| Block | Scale | P10 | P50 | P90 | Cost Share | Variance Share | Uncertainty Factor |
|---|---|---:|---:|---:|---:|---:|---:|
| `heat_pump_central_plant` | 1 plant (project-level) | $0 | $557,398 | $1,536,850 | 16.6% | **84.7%** | 2.5× |
| `ri_material_per_fx` | 1,648 fx | $697,157 | $904,693 | $1,112,821 | 27.0% | **5.8%** | 1.0× |
| `ri_labor_per_fx` | 1,648 fx | $672,150 | $870,239 | $1,067,104 | 26.0% | **5.3%** | 1.0× |
| `fixture_finish_material` | 1,648 permit fx | $345,390 | $473,921 | $600,271 | 14.1% | **2.2%** | 1.0× |
| `site_logistics_overhead` | Engineering + rental + parking + permits | $82,769 | $165,521 | $244,586 | 4.9% | **0.9%** | 1.2× |
| `garage_drainage_system` | Sumps + OWS + fdn pumps + trench + silt basin | $50,726 | $112,228 | $174,860 | 3.3% | **0.5%** | 1.3× |
| `support_boilers_23x` | 23 small unit-level boilers | $30,484 | $80,081 | $130,244 | 2.4% | **0.3%** | 1.5× |
| `subs_specialty_misc` | Insulation + sterilize + tub repair + dog wash + sauna RI | $20,376 | $53,064 | $85,267 | 1.6% | **0.1%** | 1.2× |
| `underslab_drainage` | 2,800 LF underslab + fixtures over SOG | $15,106 | $46,191 | $76,948 | 1.4% | **0.1%** | 1.3× |
| `fixture_finish_labor` | 1,648 fx × 10% finish-labor share | $63,408 | $86,814 | $110,822 | 2.6% | **0.1%** | 1.2× |

## Top variance contributors (where to focus calibration)

These blocks drive the most uncertainty. Tightening these atoms = narrower bid envelope.

1. **`heat_pump_central_plant`** (84.7% of total variance · 16.6% of cost)
   - Heat-pump central plant — single-comp atom (KOZ Trane $290k). NYLE 4-pack quoted $448k equip + $95k tanks + $12k controls = $555k.
   - Tightening lever: add more comps to atom
2. **`ri_material_per_fx`** (5.8% of total variance · 27.0% of cost)
   - All material codes — but Chinn 1200 includes heat-pump equipment in this category
   - Tightening lever: verify scope is well-defined
3. **`ri_labor_per_fx`** (5.3% of total variance · 26.0% of cost)
   - All labor codes
   - Tightening lever: verify scope is well-defined
4. **`fixture_finish_material`** (2.2% of total variance · 14.1% of cost)
   - Toilets, lavs, tubs, showers, kitchen sinks, fittings — well-calibrated atom
   - Tightening lever: verify scope is well-defined
5. **`site_logistics_overhead`** (0.9% of total variance · 4.9% of cost)
   - Bellevue downtown logistics premium — engineering $74k + rental/parking $48k + permits $43k
   - Tightening lever: verify scope is well-defined

## Risk-dimension overlays

Multiplicative adjustments applied on top of base envelope. Default state (no risks active) leaves envelope unchanged.

| Risk dimension | Active | P10× | P50× | P90× | Effect |
|---|---|---:|---:|---:|---|
| `sd_set_bid_premium` | ✓ | 1.00 | 1.05 | 1.15 | SD-set bids carry implicit scope-uncertainty premium. CD-set bids should use 1.00 across. |
| `single_source_vendor_risk` | ✓ | 1.00 | 1.00 | 1.05 | If single-vendor heat-pump quote is stale or vendor cannot deliver, +5% replacement-cost risk on P90 only. |
| `chinn_co_posture` | ✓ | 1.00 | 1.00 | 1.00 | Chinn closed jobs run Mech A (CO traffic but net-zero) — no probabilistic effect on bid envelope, but expect gross billings to swing during execution. |

## Strategic interpretation

**Calibrated direct-cost P50:** $3,518,071
**Rich's bid direct cost:** $4,196,429
**Position:** Rich is +19.3% above the calibrated P50.

✓ Rich's bid sits in the **P25–P75 zone** — well-calibrated bid posture.

**Bid-strategy framework:**
- **Aggressive (P10):** $2.98M — win the bid; thin margin
- **Median (P50):** $3.94M — calibrated point estimate
- **Cushioned (P90):** $5.66M — protect margin; lower win rate

## Methodology

- **Block decomposition:** bid split into 10 priceable components, each anchored to an atom or scope-specific premium
- **Sampling:** Monte Carlo, normal distribution centered on atom median with σ derived from atom's calibrated IQR (P75-P25)/1.349
- **Uncertainty widening:** atoms with thin calibration (n<10) have σ widened by `uncertainty_factor` (1.2-3.0)
- **Independence assumption:** blocks treated as uncorrelated (limitation — labor and material on same job actually correlate; v2 will use copula)
- **Risk overlays:** multiplicative adjustments per dimension (currently SD-set premium active)

---
*Re-run anytime: `python3 risk_envelope.py`. Distribution is recomputed from latest atom library.*