Pre-Close Deal Tracking

Per-deal closing discipline. Tracks PSA / financing key-date countdown (LOI expiry, PSA expiry, DD period end, financing contingency, close target, tax lookback), open contingencies and their evidence of removal, escrow funding status, and lender deliverable status. Produces a weekly running scorecard per deal (daily for closing-week deals), triggers escalations as key dates approach, and composes a closing-week dashboard covering every deal within the close_window_days overlay band.

6 stars

Best use case

Pre-Close Deal Tracking is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Per-deal closing discipline. Tracks PSA / financing key-date countdown (LOI expiry, PSA expiry, DD period end, financing contingency, close target, tax lookback), open contingencies and their evidence of removal, escrow funding status, and lender deliverable status. Produces a weekly running scorecard per deal (daily for closing-week deals), triggers escalations as key dates approach, and composes a closing-week dashboard covering every deal within the close_window_days overlay band.

Teams using Pre-Close Deal Tracking should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/pre_close_deal_tracking/SKILL.md --create-dirs "https://raw.githubusercontent.com/mariourquia/cre-skills-plugin/main/src/skills/residential_multifamily/workflows/pre_close_deal_tracking/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/pre_close_deal_tracking/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Pre-Close Deal Tracking Compares

Feature / AgentPre-Close Deal TrackingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Per-deal closing discipline. Tracks PSA / financing key-date countdown (LOI expiry, PSA expiry, DD period end, financing contingency, close target, tax lookback), open contingencies and their evidence of removal, escrow funding status, and lender deliverable status. Produces a weekly running scorecard per deal (daily for closing-week deals), triggers escalations as key dates approach, and composes a closing-week dashboard covering every deal within the close_window_days overlay band.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Pre-Close Deal Tracking

## Workflow purpose

Keep every deal from PSA signature through funding on schedule: track the closing checklist row-by-row, show the key-date countdown, catch contingency removal evidence gaps before they become escrow delays, and escalate when lender deliverables are at risk. The workflow does not execute closing actions — the deal team does. Its job is to surface the countdown and the gaps consistently so the human decisions are timely.

## Trigger conditions

- **Explicit:** "closing checklist for DP_DEAL_019", "daily close tracking for next week's closes", "what's open on this deal", "key-date countdown".
- **Implicit:** deal enters `under_psa`, `under_dd`, `under_financing`, or `pre_close` in Dealpath; a `deal_key_date` approaches within the overlay alert band (e.g., DD-period-end within 5 days).
- **Recurring:** weekly for all deals past `under_psa`; daily for deals within the overlay-defined closing window (typically 5-10 business days before `expected_close_date`).

## Inputs (required / optional)

| Input | Type | Required | Notes |
|---|---|---|---|
| Dealpath normalized `deal` records | table | required | canonical shape from `normalized_contract.yaml` |
| Dealpath normalized `deal_key_date` records | table | required | LOI expiry, PSA expiry, DD period end, financing contingency, close target, tax lookback |
| Dealpath normalized `deal_milestone` records | table | required | closing-checklist milestones and contingency-removal evidence linkage |
| Closing-checklist template overlay | overlay | required | per-segment / per-deal-type rows; overlay carries `as_of_date` |
| Lender deliverable schedule | overlay | optional | per-lender requirements; falls back to overlay default |
| Escrow agent contact / SLA | overlay | optional | per-jurisdiction default; overlay-tunable |
| Legal entity setup status | reference | optional | signals readiness for funding; falls back to `not_started` warning |

## Outputs

| Output | Type | Shape |
|---|---|---|
| Per-deal closing dashboard | `kpi_review` | key dates, days remaining, status per row |
| Closing checklist with status | `checklist` | row, owner, due date, evidence, state (open / complete / waived / blocked) |
| Open-contingency list | `checklist` | contingency, evidence required, responsible party, deadline |
| Lender-deliverable scorecard | `kpi_review` | item, responsible, state, days to lender deadline |
| Escalation notices | `email_draft` | `draft_for_review`; to deal_team_lead / investments_lead when key date approaches |
| Closing-week dashboard | `kpi_review` | all deals within close_window_days; at-risk flags |
| Narrative memo (per deal) | `memo` | summary of what's open, what's cleared, next 72 hours |

## Required context

`asset_class=residential_multifamily`. Deal grain: either a single `deal_id` or a list of `deal_id`s within a portfolio or fund scope. `org_id` required for approval-threshold bands. Segment and form_factor used only for overlay selection (closing-checklist template varies by deal_type and segment). `jurisdiction` relevant for tax-lookback day count and legal-entity setup bands.

## Process

1. **Freshness + DQ gate.** Evaluate Dealpath `dq_rules.yaml`. `dp_freshness_deals` blocker halts the run for affected deals. Log `dp_handoff_lag` warnings for recently closed deals.
2. **Scope.** Resolve the deal list: either a named `deal_id`, all deals past `under_psa`, or all deals within the overlay-defined closing window.
3. **Key-date countdown.** For each deal, pull every `deal_key_date` row. Compute `key_date_days_remaining` per row. Flag any date within the overlay alert band (yellow) or past date without recorded achievement (red).
4. **Closing-checklist composition.** Load overlay-defined checklist template per deal type and segment. For each row, read Dealpath `deal_milestone` state; resolve to one of `open / complete / waived / blocked`. Attach evidence pointer when present; surface missing-evidence rows explicitly.
5. **Contingency tracking.** Enumerate open contingencies with their evidence requirement and responsible party. For each, flag if past its removal deadline or if evidence is missing.
6. **Escrow status.** Surface escrow account status (opened / funded / pending), earnest-money posted state, and any hold-back or reserve requirements. Defer to reference if the adapter does not carry it; surface the gap.
7. **Lender deliverable tracking.** For each item on the lender schedule, resolve state from milestones and `deal_document` references. Compute `lender_deliverable_status_score` (overlay-defined).
8. **Tax lookback + legal entity readiness.** Compute days remaining on tax lookback; flag legal entity setup status (warn if `not_started` past overlay band).
9. **Closing certainty.** Composite `closing_certainty_score` from open-contingency count, key-date countdown, lender deliverable score, and escrow status. Overlay-tunable weighting. Publish with `proposed: true`.
10. **Escalation.** If any key date breach is imminent, any open contingency is past deadline, or any lender deliverable is blocked, compose escalation draft (`email_draft`, `draft_for_review`) to deal_team_lead and investments_lead.
11. **Price change / retrade screen.** If Dealpath records show a requested price adjustment, extension, or seller concession request, open a retrade line item and cross-link to `workflows/pipeline_review/` retrade list.
12. **Compose per-deal memo.** Three sections: (a) state of play, (b) what's open in the next 72 hours, (c) escalations sent / pending. Every claim cites a metric slug or evidence reference.
13. **Closing-week dashboard.** Roll all deals in `close_window_days` into one view; at-risk flags per deal; capital-funding sequence noted.
14. **Confidence banner.** Adapter `as_of_date`, overlay `status`, dq outcomes, any fallback behavior invoked.

## Metrics used

See frontmatter `metrics_used`. All metric slugs for this workflow are proposed (`proposed: true`) — no pre-close metric has landed in `_core/metrics.md` yet. Every output carries the `proposed` flag on each metric.

## Reference files used

- `reference/connectors/adapters/dealpath_deal_pipeline/normalized_contract.yaml`
- `reference/connectors/adapters/dealpath_deal_pipeline/dq_rules.yaml`
- `reference/connectors/deal_pipeline/schema.yaml`
- `reference/connectors/master_data/asset_crosswalk.yaml`
- `reference/normalized/approval_threshold_defaults.csv`
- `reference/normalized/close_calendar__portfolio.csv`

## Escalation points

- Key-date breach imminent (within overlay alert band): deal_team_lead -> investments_lead.
- Open contingency past deadline: deal_team_lead -> investments_lead -> asset_management_director.
- Lender deliverable blocked: deal_team_lead -> investments_lead -> finance_systems_team.
- Retrade / price-change request surfaced: deal_team_lead -> investments_lead -> executive.
- DQ blocker from Dealpath: data_platform_team -> investments_lead; affected deals paused.

## Required approvals

None for the tracking pack itself. Any closing-week action (PSA extension, deposit release, price adjustment, contingency waiver) opens its own `ApprovalRequest` via the originating workflow — this pack surfaces the gap but does not execute.

## Failure modes

1. Marking a checklist row complete without evidence pointer. Fix: evidence required or row stays `open`.
2. Using a closing-checklist template that does not match the deal type. Fix: overlay selection checks `deal_type` and `segment`; mismatch refused.
3. Reporting `days_to_close` without surfacing imminent key-date breach. Fix: imminent breaches flagged before overall countdown is published.
4. Silently defaulting escrow status when reference is absent. Fix: absent state surfaces as `unknown` with warning, not a clean status.
5. Composing an escalation draft without `draft_for_review` tag. Fix: every email output carries `draft_for_review` until overlay permits auto-send.
6. Claiming funding on partial closing (equity closed but debt pending). Fix: funding claimed only when both tranches record; split state reported explicitly.
7. Surfacing contingency as `waived` without policy reference. Fix: waiver requires overlay policy reference and approval_request link.

## Edge cases

- **Stalled deal (post-PSA, no DD progress):** deal shows extended days in `under_dd` — flagged with owner and last activity; escalation draft composed.
- **Retrade request:** seller or buyer requests price adjustment after PSA — surfaced on retrade list with evidence pointer; cross-link to pipeline_review retrade screen.
- **Declined-then-resurrected deal:** deal previously dropped that returns to active — key-date countdown restarts from new LOI; prior-decision pointer retained.
- **Deal renamed after IC:** name change logged via `dp_renamed_after_approval`; closing checklist reads canonical `deal_id` regardless of display name.
- **Multi-asset deal (portfolio acquisition):** one deal, multiple target properties — closing checklist enumerates per-asset contingencies (title, survey, PCR, Phase I) while keeping single financing key dates.
- **Cross-fund allocation:** deal split across funds — capital sequence noted per fund; per-fund funding state tracked.
- **Debt market shift mid-close:** lender indicates term adjustment inside closing window — surface immediately; cross-link to pipeline_review debt variance and escalate.
- **Partial closing:** equity closes before debt (or vice versa) — two positions recorded; closing_certainty_score reflects the partial state; no "closed" claim until both record.
- **Condition unresolved at close (ic_approved pending conditions):** open condition within `resolution_deadline` — if deadline lapses before close, escalate per approval_matrix; block `closed` transition until resolved.
- **Late legal entity setup:** legal_entity_id not populated post-close beyond overlay lag — flagged as `dp_handoff_lag` warning; cross-link to acquisition_handoff when that workflow exists.
- **Escrow holdback:** reserved funds post-close (repairs, compliance, litigation) — tracked as a separate line item with release trigger.

## Example invocations

1. "Build the closing checklist snapshot for DP_DEAL_019. What's open this week?"
2. "Daily close tracking for all deals closing next week. Flag at-risk deals."
3. "Key-date countdown for DP_DEAL_022. Where are we on lender deliverables?"
4. "What contingencies are still open on DP_DEAL_004 and who owns each?"
5. "Draft an escalation to the investments lead — DD period ends tomorrow on DP_DEAL_027 and the roof scope is unresolved."

## Example outputs

See `examples/example_pre_close_deal_tracking_output.md` for the full artifact shape.

### Output — Closing dashboard (abridged, DP_DEAL_019)

**Deal.** DP_DEAL_019 — 248-unit garden acquisition, Charlotte, expected close 2026-04-22.

**Key-date countdown.**
- LOI expiry: achieved 2026-02-10.
- PSA expiry: achieved 2026-03-05.
- DD period end: 2026-04-18 (3 business days remaining). Within alert band. Flag.
- Financing contingency: 2026-04-19 (4 business days remaining). Within alert band.
- Close target: 2026-04-22.
- Tax lookback: 2026-04-15 (today — compliant).

**Open contingencies.** 3.
- Title commitment review: evidence pending; responsible L. Garcia; deadline 2026-04-17.
- Survey acceptance: evidence received; pending legal sign-off.
- Phase I ESA: cleared; evidence on file.

**Lender deliverables.** 8 items; 6 complete, 2 pending (insurance binder, entity certificate of good standing). `lender_deliverable_status_score` = 0.75 (proposed). Within overlay band but trending tight.

**Escrow.** Earnest money posted; final deposit required by 2026-04-21.

**Closing certainty.** `closing_certainty_score` = 0.82 (proposed). On track conditional on title commitment review by 2026-04-17.

**Escalation.** Draft composed (`draft_for_review`) to deal_team_lead: title commitment review flag.

**Confidence banner.** `dealpath_deal_pipeline@2026-04-15 (sample)`, `close_calendar__portfolio@2026-03-31 (starter)`, `approval_threshold_defaults@2026-03-31 (starter)`.

Related Skills

Development Pipeline Tracking

6
from mariourquia/cre-skills-plugin

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`).

Construction Meeting Prep and Action Tracking

6
from mariourquia/cre-skills-plugin

Prepares weekly or biweekly construction-meeting packets (agenda, data summary, RFI and submittal log, COs, schedule status, safety) and tracks action items with owners and due dates. Closes the loop by updating status and surfacing stale items.

post-close-onboarding-transition

6
from mariourquia/cre-skills-plugin

Post-acquisition asset onboarding to property management, TI project coordination, and development-to-stabilization transition bridging Acquisitions, PM, and Development.

deal-intake

6
from mariourquia/cre-skills-plugin

Top-level workspace for deal evaluation. Routes through screening, underwriting, structuring, and IC presentation. Manages persistent deal context across sessions.

deal-attribution-tracker

6
from mariourquia/cre-skills-plugin

Tracks deal-level performance attribution and GP carry across a multi-deal fund: realized vs unrealized returns, carry waterfall across full fund, clawback exposure, deal team attribution, and GP co-invest return comparison.

workout-playbook

6
from mariourquia/cre-skills-plugin

Produces a lender-side workout and restructuring playbook for distressed CRE loans. Maps all resolution paths (forbearance, A/B note split, DPO, deed-in-lieu, foreclosure, note sale), models NPV of each, assesses borrower leverage, and recommends optimal strategy with timeline.

Work Order Triage

6
from mariourquia/cre-skills-plugin

Classifies work order urgency from free-text descriptions, assigns priority (P1-P4) with SLA deadlines, estimates cost, checks lease responsibility, and routes to the correct approval path.

warehouse-to-exhibit-mapper

6
from mariourquia/cre-skills-plugin

Maps validated, warehouse-ready tabular datasets into deck-ready EXHIBIT specifications and slide inputs. Selects table vs. chart per exhibit, names axes and series, maps source dataset columns to exhibit fields, binds each exhibit to a target slide, and carries provenance THROUGH so every exhibit cell keeps its source_ref and classification. Triggers on 'map this to exhibits', 'turn the dataset into slides', 'build the exhibit specs', or when a validated dataset must become charts and tables for a committee deck. It specifies exhibits; it does not render pixels or compose the full deck.

vendor-invoice-validator

6
from mariourquia/cre-skills-plugin

Validates vendor invoices against contract terms, scope of work, and market rates. Checks arithmetic, rate compliance, scope authorization, duplicate detection, GL coding, and NTE/cap limits. Assigns APPROVED, APPROVED WITH FLAGS, or HOLD FOR REVIEW verdict.

variance-narrative-generator

6
from mariourquia/cre-skills-plugin

Generates ownership-ready variance narratives from budget-vs-actual reports. Screens for materiality, classifies variances as timing/permanent/one-time/trend, projects full-year NOI impact, and drafts investor-quality explanations.

transfer-document-preparer

6
from mariourquia/cre-skills-plugin

Prepare entity transfer documents, closing document packages, and assignment agreements for CRE acquisitions. Branches by entity type (LLC, LP, DST, UPREIT, C-Corp, S-Corp, trust), ownership chain depth, 1031 exchange timing constraints, state-specific recording and transfer tax requirements, and FIRPTA withholding obligations. Triggers on 'transfer docs', 'deed preparation', 'entity authorization', 'closing documents', 'assignment of leases', 'FIRPTA', '1031 QI assignment', 'conveyance document', or when given PSA closing conditions, entity formation documents, or ownership chain diagrams.

title-commitment-reviewer

6
from mariourquia/cre-skills-plugin

Analyze ALTA title commitments, surveys, and Schedule B exceptions for CRE acquisitions. Identifies title defects, chain breaks, lien conflicts, and cure requirements. Triggers on 'title commitment', 'Schedule B exceptions', 'title review', 'title exceptions', 'encumbrances', 'survey cross-reference', 'title chain', 'mechanic's lien', 'title cure', or when given a title commitment document, survey, or lien search results.