---
title: PM Predictive Analytics (G9 -- velocity, forecasts, risk)
---

# PM Predictive Analytics (G9 -- velocity, forecasts, risk)

## What it is

**In-development** predictive analytics layer: velocity tracking, Monte Carlo
completion forecasts, what-if scenarios, and risk heatmaps.

Watches how fast work moves through PM boards and produces four kinds of
predictions:

- **Velocity tracking** -- counts completed items over a configurable window
  (default 14 days). Trend uses 7-day buckets with linear regression to classify
  direction as increasing, decreasing, or stable.
- **Monte Carlo simulation** -- runs 1000 simulations per board. Each simulation
  samples a per-item velocity from empirical data (>= 10 observations) or a
  triangular distribution from best/typical/worst estimates (< 10 observations).
  Extracts p50/p85/p95 completion dates and deadline-hit probability.
- **What-if scenarios** -- three lever types: resource (velocity multiplier),
  priority (item reorder), deadline (day shift). Cascades impacts to related
  boards via parent-item relationships and blocking lead-time configs.
- **Risk heatmap** -- four dimensions per board, each clamped to [0, 1]:
  overdue risk (0.3 weight), velocity risk (0.25), bottleneck risk (0.25),
  dependency risk (0.2). Overall = weighted sum.

## Where to find it

In-development, gated behind the `pm-predictive-analytics` unreleased feature
(`pmPredictiveAnalyticsEnabled`). Background computation is gated; IPC handlers
respond unconditionally but the renderer widgets are not yet mounted.

## How it behaves

Results are cached in the G2 snapshot store and refreshed on a three-tier
scheduler: hot (on board sync), warm (15 minutes), cold (24 hours with 90-day
velocity data retention).

## For agents

### Frontend widgets

Three widgets in `src/renderer/src/features/pm-ops/`:

- `PredictiveDeadlineWidget` -- p50/p85/p95 dates, confidence source badge.
- `VelocityTrendWidget` -- current velocity, trend arrow, sparkline.
- `RiskHeatmapWidget` -- boards sorted by overall risk, expandable breakdown.

### Technical details

- Service layer in `src/main/services/pm/predictive-analytics/` (velocity
  engine, Monte Carlo engine, what-if engine, risk heatmap, observation wiring,
  prediction scheduler).
- 7 IPC channels under `pm:predictive:*` namespace.
- 4 CLI routes under `/pm/predictive/*` (velocity, velocity/trend, monte-carlo,
  risk-heatmap) — gated on `missionControlEnabled`.
- Data in `pm_velocity_history` table + `pm_intelligence_snapshots` (shared with
  G2).
- Observation wiring bridges R65 time-in-stage with G9 via
  `dispatchPostSyncSideEffects`.
- Contract: `pm-predictive-analytics-contract.md`.

## Related

The widgets this layer produces are mounted in the Ops Engine panel, documented in
[pm-operations-engine.md](pm-operations-engine.md), and the PM Advisor surfaces the same
completion forecasts as plain-language narratives — see
[pm-intelligence-advisor.md](pm-intelligence-advisor.md). Its cross-board view of the data is
described in [pm-cross-board-intelligence.md](pm-cross-board-intelligence.md). The full list of
library pages is in [INDEX.md](INDEX.md).
