name: Development Pipeline Tracking slug: development_pipeline_tracking version: 0.1.0 status: draft category: residential_multifamily subsystem: residential_multifamily pack_type: workflow targets:
- claude_code
stale_data: |
Dealpath stage-to-canonical milestone mapping, Procore project state semantics, baseline
schedule tolerances, weather-contingency assumptions, and regional trade-duration
references drift. Every critical-path statement cites a reference. Sample overlays must
be replaced before any output is treated as an ownership-side commitment.
applies_to:
segment: [middle_market]
form_factor: [garden, walk_up, wrap, suburban_mid_rise, urban_mid_rise]
lifecycle: [development, construction]
management_mode: [self_managed, third_party_managed, owner_oversight]
role: [development_manager, construction_manager, asset_manager, portfolio_manager, coo_operations_leader, ceo_executive_leader]
output_types: [kpi_review, memo, dashboard]
decision_severity_max: recommendation
references:
reads:
- 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 writes: [] metrics_used:
- schedule_variance_days # canonical — _core/metrics.md
- milestone_slippage_rate # canonical
- cost_to_complete # canonical
- contingency_remaining # canonical
- contingency_burn_rate # canonical
- change_orders_pct_of_contract # canonical
- trade_buyout_variance # canonical
- draw_cycle_time # canonical
- capex_spend_vs_plan # canonical
- punchlist_closeout_rate # canonical
- dev_cost_per_unit # canonical
- critical_path_slip_days # proposed: true — subset of schedule_variance_days restricted to critical-path milestones; promote to canonical when ontology amendment lands
- draw_burn_rate_vs_plan # proposed: true — (draw_amount_funded_ytd / draw_plan_ytd); promote to canonical alongside DrawRequest plan semantics
- cco_to_first_lease_days # proposed: true — days from certificate_of_occupancy_issued to first_executed_lease; promote when lifecycle bridge in ontology lands
- handoff_lag_dealpath_to_procore # proposed: true — mirrors dp_handoff_dev_lag; days from deal.ic_approval_date to procore.project_created_at
- commitment_exposure_forward_dollars # proposed: true — sum(open_commitment.remaining) forward 12 months (Procore domain); promote with canonical commitment escalation_paths:
- kind: critical_path_slip_above_tolerance to: construction_manager -> development_manager -> asset_manager -> executive
- kind: commitment_overdrawn to: construction_manager + asset_manager -> approval_request per overlay; cite pc_recon_commitment_overdrawn
- kind: dealpath_procore_handoff_lag to: development_manager -> asset_manager; cite dp_handoff_dev_lag
- kind: contingency_exhaustion_risk to: construction_manager + asset_manager -> approval_request per overlay
- kind: weather_delay_beyond_overlay to: construction_manager -> asset_manager
- kind: subcontractor_distress to: construction_manager -> asset_manager -> legal_and_risk approvals_required: [] description: | 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).
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 ANDdevelopment_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 tocritical_path_flag = truemilestones. - 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_reviewfor any project whose slip crosses the overlay rebaseline trigger.
Step 3. Cost posture
For each active construction project:
- Inherit
cost_to_completefrom the most recentworkflows/cost_to_complete_reviewoutput. Do not recompute here. - Compute
contingency_remainingandcontingency_burn_ratefrom Procore commitment register and Intacct posted spend. - Compute
change_orders_pct_of_contract(approved COs / original contract). - Compute
trade_buyout_variancewhere 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 > 1at current percent complete cost — route toworkflows/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. Citepc_recon_commitment_overdrawnon any breach; route to the runbook atreference/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_timetrailing 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_fundedfails — route toworkflows/draw_package_reviewfor 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_varianceandchange_orders_pct_of_contractattributed 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_distressand 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_periodfor 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 atreference/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.mdreference/connectors/adapters/dealpath_deal_pipeline/normalized_contract.yamlreference/connectors/adapters/dealpath_deal_pipeline/reconciliation_rules.mdreference/connectors/adapters/procore_construction/reconciliation_checks.yamlreference/connectors/adapters/procore_construction/runbooks/procore_common_issues.mdreference/connectors/adapters/sage_intacct_gl/reconciliation_rules.mdreference/connectors/master_data/dev_project_crosswalk.yamlreference/connectors/master_data/capex_project_crosswalk.yamlreference/normalized/construction_duration_assumptions__{region}.csvreference/normalized/schemas/reconciliation_tolerance_band.yamlreference/normalized/approval_threshold_defaults.csvreference/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
- 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. - Computing critical-path slip without the
critical_path_flag. Fix:critical_path_slip_days(proposed) is restricted to milestones withcritical_path_flag = true. Document the filter in output. - Commitment overdrawn silently accepted because Procore reconciliation view
not surfaced. Fix:
pc_recon_commitment_overdrawnis an explicit check every run; any hit appears as a blocker on the dashboard. - Dealpath closed deal without Procore project not flagged. Fix:
dp_handoff_dev_lagis cited every run; rule id and threshold live in the dealpath adapter dq_rules. - 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. - Regional / deal-lead rollup drawn without the axis filter. Fix: rollup views are explicit filters; not the default view.
- Draw burn-rate computed without the lender's draw plan. Fix:
draw_burn_rate_vs_planis skipped for projects without a lender plan and annotated as "no_lender_plan" in the dashboard. - 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_reviewper normal; the pipeline tracker only flags the cross-project pattern. - Baseline reset mid-quarter. A rebaseline approved via
workflows/schedule_risk_reviewchanges the project's current baseline. This tracker preserves prior baseline in thebaseline_reset_historysection of the narrative and clearly notes the rebaseline date;schedule_variance_daysuses 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 fundingshows insites_under_contractwith 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 annotatesno_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
- "Run the weekly development pipeline tracker. Flag critical-path slip beyond tolerance."
- "Pipeline dashboard by region for the Southeast portfolio."
- "What's the deal-lead exposure for Alex this week? Include cost and schedule posture on each project."
- "Check commitment overdrawn status across all active construction projects."
- "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.
- Willow Creek critical-path slip —
schedule_risk_reviewtriggered. - Riverbend commitment overdrawn — draws held; runbook triggered.
- 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.