# Development Pipeline Tracking

> Weekly roll-up of the active development pipeline. Aggregates sites under contract, in entitlement, in design, in permitting, and in construction (by phase); tracks TCO/delivery target dates, baseline-vs-current schedule slip, baseline-vs-current cost slip, change-order trend, draw schedule status, contractor performance flags, lease-up readiness, and financing draw status. Groups by region and deal_lead. Flags critical-path slips beyond tolerance and escalates Dealpath/Procore/Intacct reconciliation blockers. Narrative-first with a KPI dashboard. Informational to recommendation severity: this pack produces a weekly tracker, not approvals. Gated actions (rebaseline, scope trim, contingency pull, change orders) remain in their own workflows (`schedule_risk_review`, `cost_to_complete_review`, `change_order_review`).

- Skill: `mariourquia/development-pipeline-tracking` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add mariourquia/development-pipeline-tracking`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mariourquia/development-pipeline-tracking/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: mariourquia (https://skillmd.com/u/mariourquia)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/mariourquia/development-pipeline-tracking

---


# Development Pipeline Tracking

## Workflow purpose

Give development_lead, construction_lead, and asset_mgmt_director a single weekly
view of the active development pipeline — from deal close through delivery — so that
slip on any project surfaces against the portfolio baseline in the same week it
happens.

This pack is a tracker. It never authorizes a rebaseline, a scope change, a CO, or a
contingency pull. It flags, it aggregates, and it routes into the owning workflow.
The workflow is intentionally read-heavy across three source systems (Dealpath for
deal-side posture, Procore for construction state and commitments, Intacct for
posted capex spend) and depends on the cross-system reconciliation posture declared
in `_core/stack_wave4/source_of_truth_matrix.md`.

## Trigger conditions

- **Explicit:** "weekly development pipeline", "dev pipeline tracker", "dev pipeline
  review", "critical-path slip this week", "what's slipping in construction",
  "development dashboard".
- **Implicit:** weekly development-lead cadence; Procore critical-path milestone
  slipped vs. baseline; Dealpath closed-deal handoff lag exceeds overlay tolerance
  (`dp_handoff_dev_lag`); commitment overdrawn check fires
  (`pc_recon_commitment_overdrawn`); capex spend-to-plan breaches overlay band;
  lease-up readiness deadline approaching for any project.
- **Recurring:** weekly per active pipeline (Friday morning / Monday morning per
  org convention).

## Inputs (required / optional)

| Input | Type | Required | Notes |
|---|---|---|---|
| Dealpath deal register | table | required | all deals at stage in {sourced, under_contract, ic_approved, closing, funded} |
| Dealpath deal-milestone log | table | required | per-deal milestone state |
| Procore project roster | table | required | all active construction_projects |
| Procore schedule milestone log | table | required | baseline + current_forecast per milestone |
| Procore commitment register | table | required | open commitments, paid_to_date, retention |
| Procore change-order register | table | required | approved + pending |
| Procore draw-request log | table | required | submitted, approved, funded dates |
| Intacct actuals feed (capex) | table | required | posted spend by capex_project dimension |
| Intacct invoice register | table | required | AP posting status for commitments |
| Dev_project_crosswalk | yaml | required | dealpath deal <-> procore project <-> intacct project |
| Capex_project_crosswalk | yaml | required | procore project <-> intacct project |
| Schedule-milestone baseline | record | required | preserved per project |
| Construction duration assumptions | csv | required | region-scoped |
| Tolerance-band schema | yaml | required | reconciliation_tolerance_band.yaml |
| Weather / jobsite log | log | optional | for weather-delay narrative |
| Contractor performance scorecard | record | optional | cross-project GC / major sub |

## Outputs

| Output | Type | Shape |
|---|---|---|
| Pipeline dashboard by stage | `dashboard` | sites_under_contract, in_entitlement, in_design, in_permitting, in_construction (by phase) |
| Schedule posture | `kpi_review` | `schedule_variance_days`, `milestone_slippage_rate`, `critical_path_slip_days` (proposed) per project |
| Cost posture | `kpi_review` | `cost_to_complete`, `contingency_remaining`, `contingency_burn_rate`, `change_orders_pct_of_contract`, `trade_buyout_variance` |
| Draw posture | `kpi_review` | `draw_cycle_time`, `draw_burn_rate_vs_plan` (proposed), open draws, funded YTD |
| Commitment exposure | `kpi_review` | `commitment_exposure_forward_dollars` (proposed), commitments-overdrawn list |
| Delivery outlook | `kpi_review` | TCO/delivery target per project, slip vs. baseline, `cco_to_first_lease_days` (proposed) where applicable |
| Lease-up readiness | `kpi_review` | projects within 180 days of delivery; gating items |
| Financing draw status | `kpi_review` | per-project draw schedule state vs. lender calendar |
| Regional / deal-lead rollup | `dashboard` | by region; by deal_lead |
| Reconciliation posture | `memo` | `dp_handoff_dev_lag`, `pc_recon_commitment_overdrawn`, `pc_recon_commitment_vs_posted_spend` findings |
| Narrative memo | `memo` | 3-5 paragraphs, cited metrics, top-3 watch items |
| Confidence banner | banner | reference as_of + status |

## Required context

Asset_class, segment, region (one or many), deal_lead (optional filter). Project
grain rolls up to region + deal_lead. Axis `project_id` is optional (omit to get a
pipeline-wide view; supply to get a single-project drill-down); when omitted, the
workflow aggregates across all active development projects in the org overlay's
scope.

## Process

### Step 1. Pipeline stage snapshot

Assemble stage buckets from Dealpath and Procore:

- `sites_under_contract` (Dealpath stage = under_contract, closing).
- `sites_in_entitlement` (Dealpath stage = ic_approved or funded AND
  `development_project.entitlements_status = in_process`).
- `sites_in_design` (Procore project exists, phase = design/preconstruction).
- `sites_in_permitting` (Procore project exists, permits_status pending).
- `sites_in_construction_by_phase` (Procore project phase in {mobilization,
  foundation, framing, mep_rough, drywall, finishes, punchlist, closeout}).

Source-of-truth: per `source_of_truth_matrix.md`, Dealpath is primary for `deal`
and `development_project` (pre-handoff); Procore is primary for
`construction_project` once the project executes. Surface any site stuck in
transition (e.g., Dealpath says funded but Procore project not yet created).

### Step 2. Schedule posture

For each active construction project:

- Compute `schedule_variance_days` (current_forecast_completion - baseline_completion).
- Compute `milestone_slippage_rate` (share of milestones where current_forecast_date > baseline_date).
- Compute `critical_path_slip_days` (proposed): slip restricted to
  `critical_path_flag = true` milestones.
- Flag any project whose critical-path slip exceeds the tolerance band (cite
  `reconciliation_tolerance_band.yaml`).
- Attribute cause where observable: weather, trade delay, permit, material lead
  time, labor, owner decision, design. Hand off to `workflows/schedule_risk_review`
  for any project whose slip crosses the overlay rebaseline trigger.

### Step 3. Cost posture

For each active construction project:

- Inherit `cost_to_complete` from the most recent `workflows/cost_to_complete_review`
  output. Do not recompute here.
- Compute `contingency_remaining` and `contingency_burn_rate` from Procore
  commitment register and Intacct posted spend.
- Compute `change_orders_pct_of_contract` (approved COs / original contract).
- Compute `trade_buyout_variance` where buyouts happened this quarter.
- Compute `capex_spend_vs_plan` (YTD). Flag any project with spend-to-plan
  breaching the overlay band without a change-order trail.
- Flag any project where `contingency_burn_rate > 1` at current percent complete
  cost — route to `workflows/cost_to_complete_review`.

### Step 4. Commitment exposure

Use Procore commitment register (per `source_of_truth_matrix.md`, Procore is
primary for commitment; Intacct reconciles posted spend):

- Sum forward 12-month `commitment_exposure_forward_dollars` (proposed) across
  all active projects, grouped by region and by trade.
- For each commitment: check `paid_to_date + retention_balance <=
  revised_contract_total + overdrawn_tolerance_band`. Cite
  `pc_recon_commitment_overdrawn` on any breach; route to the runbook at
  `reference/connectors/adapters/procore_construction/runbooks/procore_common_issues.md::commitment_overdrawn`.
- List commitments with posting lag >
  `reconciliation_tolerance_band.yaml::co_posting_lag_band` (Intacct has not
  posted within the lag window) — these are audit entries, not blockers.

### Step 5. Change-order trend

For each project:

- 4-week and 12-week rolling count of approved COs; rolling dollars of approved COs.
- Pending COs aging past overlay threshold — flag.
- Categorize COs (owner_directed, design_error, site_condition, scope_clarification,
  unforeseen) per `ChangeOrder.category`. Surface any shift in mix (e.g., rising
  share of design_error COs triggers a design-team review conversation).

### Step 6. Draw posture

For each project with a construction loan:

- `draw_cycle_time` trailing 90 days per draw (submitted -> funded).
- Open draws: submitted-not-approved, approved-not-funded, aging buckets.
- `draw_burn_rate_vs_plan` (proposed): (draw_amount_funded_ytd / draw_plan_ytd)
  where the lender's draw plan is available.
- Any draw where `pc_recon_draw_approved_vs_cash_funded` fails — route to
  `workflows/draw_package_review` for next submission cycle context.

### Step 7. Contractor performance flag

Pull cross-project contractor performance scorecard (optional input). For each
major GC / sub:

- Count of projects where they hold critical-path work.
- Rolling `trade_buyout_variance` and `change_orders_pct_of_contract` attributed
  to this contractor.
- Insurance expiry status (from Procore vendor records).
- Subcontractor-distress signals (lien filings, labor complaints, schedule misses
  across multiple projects) — if two+ projects show signals, flag as
  `subcontractor_distress` and route to the construction_manager queue.

### Step 8. Delivery outlook & lease-up readiness

For projects in the last 180 days before expected TCO / certificate of occupancy:

- Current delivery forecast vs. baseline (cite `schedule_variance_days`).
- Gating items: final inspections, TCO documentation, marketing kickoff,
  model-unit readiness, staffing plan in place.
- `cco_to_first_lease_days` (proposed) — for already-delivered projects, the
  actual gap; for pre-delivery projects, the planned gap per lease-up plan.
- Hand off to `workflows/lease_up_first_period` for projects inside the lease-up
  window.

### Step 9. Financing draw status

For each project:

- Lender calendar next 60 days: draw submission, funding, compliance certificate
  dates.
- Any draw submission tied to a blocker (insurance endorsement expiring, lien
  waiver gap) — route to `workflows/draw_package_review`.
- Equity-capital-call schedule forward 90 days.

### Step 10. Reconciliation posture across source systems

Cite and surface the following cross-system reconciliation findings from the
adapter contracts:

- `dp_handoff_dev_lag` (warning; dealpath-approved deal lacking procore project >
  `dev_handoff_lag_threshold_days`). Cite the rule id and the runbook at
  `reference/connectors/adapters/dealpath_deal_pipeline/runbooks/dealpath_common_issues.md::dev_handoff`.
- `pc_recon_commitment_overdrawn` (blocker) — any hit.
- `pc_recon_commitment_vs_posted_spend` (tolerance band drift).
- `pc_recon_co_approved_vs_invoice_posted` (CO posting lag).
- `pc_recon_draw_approved_vs_cash_funded` (draw posting lag).
- `pc_recon_dev_deal_to_procore_project` (deal-to-project handoff).

Any blocker puts the affected project into `low_confidence` on the dashboard and
the reconciliation memo lists the exception with runbook pointer.

### Step 11. Regional and deal-lead rollup

Group the project-level views by:

- Region: sum counts and forward exposure by region; highlight outlier regions.
- Deal_lead: count of open projects per deal_lead; sum forward exposure; rolling
  slip-days average per deal_lead.

### Step 12. Top-3 watch items

Narrative synthesis: name the three most consequential pipeline watch items this
week. Each watch item cites: the project, the metric slug, the tolerance band
reference, the owning workflow, and the proposed next action.

### Step 13. Confidence banner

Every reference surfaced with `as_of_date` and `status`. Any sample-tagged
reference is explicit. Cross-system reconciliation findings cited by rule id.

### Decision points and branches

- Critical-path slip > overlay tolerance on any project: route to
  `workflows/schedule_risk_review`. Do not rebaseline here.
- Contingency_burn_rate > 1 at current percent-complete: route to
  `workflows/cost_to_complete_review`.
- Commitment overdrawn: flag as blocker; hand off to Procore runbook; do not
  approve any new draw on that project until resolved.
- Dealpath-to-Procore handoff lag > overlay: route to development_manager with
  dealpath runbook pointer.
- Any project approaches first-lease milestone: hand off to
  `workflows/lease_up_first_period`.
- Any project approaches a lender calendar draw: hand off to
  `workflows/draw_package_review`.

## Metrics used

See frontmatter. Canonical metrics are inherited from
`workflows/schedule_risk_review`, `workflows/cost_to_complete_review`, and
`workflows/draw_package_review`. The proposed metrics
(`critical_path_slip_days`, `draw_burn_rate_vs_plan`, `cco_to_first_lease_days`,
`handoff_lag_dealpath_to_procore`, `commitment_exposure_forward_dollars`) are
aggregations required by the pipeline-tracking use case; formal promotion into
`_core/metrics.md` happens in a follow-up canonical change-control cycle.

## Reference files used

- `reference/connectors/_core/stack_wave4/source_of_truth_matrix.md`
- `reference/connectors/adapters/dealpath_deal_pipeline/normalized_contract.yaml`
- `reference/connectors/adapters/dealpath_deal_pipeline/reconciliation_rules.md`
- `reference/connectors/adapters/procore_construction/reconciliation_checks.yaml`
- `reference/connectors/adapters/procore_construction/runbooks/procore_common_issues.md`
- `reference/connectors/adapters/sage_intacct_gl/reconciliation_rules.md`
- `reference/connectors/master_data/dev_project_crosswalk.yaml`
- `reference/connectors/master_data/capex_project_crosswalk.yaml`
- `reference/normalized/construction_duration_assumptions__{region}.csv`
- `reference/normalized/schemas/reconciliation_tolerance_band.yaml`
- `reference/normalized/approval_threshold_defaults.csv`
- `reference/derived/contingency_assumptions__{org}.csv`

## Escalation points

- Critical-path slip above tolerance: CM -> DM -> AM -> executive. Route to
  `workflows/schedule_risk_review`.
- Commitment overdrawn (cite `pc_recon_commitment_overdrawn`): CM + AM; project
  draws held until resolved.
- Dealpath-to-Procore handoff lag (cite `dp_handoff_dev_lag`): DM -> AM.
- Contingency exhaustion risk: CM + AM; route to `workflows/cost_to_complete_review`.
- Weather delay beyond overlay tolerance: CM -> AM.
- Subcontractor distress pattern (>= 2 projects): CM -> AM -> legal_and_risk.

## Required approvals

None for the tracker itself (informational / recommendation severity).
Downstream owning workflows carry their own approval gates (rebaseline -> row
per overlay; capex reallocation -> row per overlay; draw final submission ->
row 14; CO approval -> row 10 / 11).

## Failure modes

1. Treating Dealpath deal stage as project state. Fix: stage semantics are in
   Dealpath adapter's `normalized_contract.yaml`; project state is in Procore.
   Surface both where relevant; never collapse.
2. Computing critical-path slip without the `critical_path_flag`. Fix:
   `critical_path_slip_days` (proposed) is restricted to milestones with
   `critical_path_flag = true`. Document the filter in output.
3. Commitment overdrawn silently accepted because Procore reconciliation view
   not surfaced. Fix: `pc_recon_commitment_overdrawn` is an explicit check every
   run; any hit appears as a blocker on the dashboard.
4. Dealpath closed deal without Procore project not flagged. Fix:
   `dp_handoff_dev_lag` is cited every run; rule id and threshold live in the
   dealpath adapter dq_rules.
5. Inheriting CTC values from a stale cost-to-complete review. Fix: each
   project's CTC carries its own `as_of_date`; stale CTCs are annotated.
6. Regional / deal-lead rollup drawn without the axis filter. Fix: rollup views
   are explicit filters; not the default view.
7. Draw burn-rate computed without the lender's draw plan. Fix:
   `draw_burn_rate_vs_plan` is skipped for projects without a lender plan and
   annotated as "no_lender_plan" in the dashboard.
8. Sample overlay treated as authoritative. Fix: confidence banner surfaces
   sample-tag explicitly.

## Edge cases

- **Weather delay.** Overlay-driven expected-delay allowance (per
  `construction_duration_assumptions__{region}.csv`). Variance beyond overlay is
  the flag. Regional rollup groups weather-attributable slip separately from
  other slip so the narrative does not conflate.
- **Subcontractor bankruptcy.** Two-plus projects affected: mark as
  subcontractor_distress; trigger legal_and_risk review. A single affected
  project routes through `workflows/schedule_risk_review` per normal; the
  pipeline tracker only flags the cross-project pattern.
- **Baseline reset mid-quarter.** A rebaseline approved via
  `workflows/schedule_risk_review` changes the project's current baseline. This
  tracker preserves prior baseline in the `baseline_reset_history` section of
  the narrative and clearly notes the rebaseline date; `schedule_variance_days`
  uses the current approved baseline for comparison but the memo surfaces both
  to prevent silent drift across weekly runs.
- **Deal closed but not yet funded.** Dealpath `stage = closed, status = awaiting
  funding` shows in `sites_under_contract` with a sub-tag. Do not yet create a
  Procore project expectation; the handoff clock starts at funding.
- **Capex project in Procore but unmapped in Intacct.** Flag as a blocker per
  source-of-truth matrix. Cost posture for that project is `unreconciled`;
  dashboard annotates `no_intacct_mapping`.
- **Pending CO aging past overlay.** Dashboard lists; does not execute. Routes to
  `workflows/change_order_review`.
- **TCO reached but not CCO.** Soft-cost category shift per loan overlay;
  `cco_to_first_lease_days` (proposed) calculation starts from CCO.

## Example invocations

1. "Run the weekly development pipeline tracker. Flag critical-path slip beyond tolerance."
2. "Pipeline dashboard by region for the Southeast portfolio."
3. "What's the deal-lead exposure for Alex this week? Include cost and schedule posture on each project."
4. "Check commitment overdrawn status across all active construction projects."
5. "Forward 12-month commitment exposure by trade."

## Example outputs

### Output — Weekly pipeline tracker (abridged, week ending 2026-04-10)

**Pipeline stage summary.**

| Stage | Count | YoY change |
|---|---|---|
| Under contract | 4 | flat |
| In entitlement | 2 | flat |
| In design | 3 | +1 |
| In permitting | 2 | -1 (Willow Creek advanced to construction) |
| In construction — mobilization | 1 | flat |
| In construction — foundation | 2 | flat |
| In construction — framing | 1 | flat |
| In construction — mep_rough | 2 | flat |
| In construction — drywall | 1 | flat |
| In construction — finishes | 2 | flat |
| In construction — punchlist | 1 | flat |

**Schedule posture.** Portfolio `milestone_slippage_rate` within band. Three
projects with `schedule_variance_days` outside band; one (Willow Creek) on
critical path with `critical_path_slip_days` (proposed) at overlay tolerance
ceiling. Hand off triggered to `workflows/schedule_risk_review`.

**Cost posture.** Portfolio `capex_spend_vs_plan` within band. Two projects
show `contingency_burn_rate` approaching 1.0 at percent-complete below 50%.
Hand off triggered to `workflows/cost_to_complete_review`. Portfolio
`change_orders_pct_of_contract` within overlay band; one project (Riverbend) at
edge.

**Commitment exposure.** Forward 12-month
`commitment_exposure_forward_dollars` (proposed) aggregated. Two commitments
failed `pc_recon_commitment_overdrawn` on Riverbend sitework contract — runbook
pointer surfaced. Draws on Riverbend held until resolved.

**Draw posture.** Portfolio `draw_cycle_time` trailing within band. One project
with open draw approved-not-funded past overlay (lender callback). Routed to
`workflows/draw_package_review`.

**Delivery outlook.** One project (South Fork) in the last 180 days before
expected TCO. Gating items: model-unit finishes, staffing plan signed. Hand off
to `workflows/lease_up_first_period` queued for next week.

**Reconciliation posture.** `dp_handoff_dev_lag` warning on one closed deal
(Atlantic Grove) — procore project not yet created, 7 business days since
funding; below blocker threshold but outside tolerance. Development_manager
notified.

**Regional / deal-lead rollup.** Southeast carries 6 of 11 active construction
projects. Alex's book carries 3 projects; weighted schedule slip within band.

**Top-3 watch items.**

1. Willow Creek critical-path slip — `schedule_risk_review` triggered.
2. Riverbend commitment overdrawn — draws held; runbook triggered.
3. Atlantic Grove handoff lag — procore project creation expected within 3
   business days.

**Confidence banner.**
```
References: dev_project_crosswalk@2026-04-08 (starter),
construction_duration_assumptions__southeast@2026-03-31 (starter),
reconciliation_tolerance_band@2026-03-31 (sample),
contingency_assumptions__{org}@2026-03-31 (starter).
Source-of-truth matrix: wave_4_authoritative.
Proposed metrics flagged: critical_path_slip_days, draw_burn_rate_vs_plan,
cco_to_first_lease_days, handoff_lag_dealpath_to_procore,
commitment_exposure_forward_dollars.
```

