---
name: chain-progression-tracker
description: "Build the state-of-the-chain view for a sale-agreed deal. Identifies stalled deals across the pipeline for the morning round, and produces a single-deal deep dive when the chase-progression workflow expands one. Read-only; never sends anything."
---

# Chain progression tracker

A building-block skill used by two workflows. The morning round calls it for the across-pipeline stalled view. The chase-progression workflow calls it for the single-deal deep dive.

## Two modes

### Across-pipeline mode

Used by `morning-round`. Returns every sale-agreed deal where nothing has moved past the stalled threshold for the relevant stakeholder type. For each, returns:

- Property address
- Days since the last positive movement
- The most likely cause from chain state, expressed as one short sentence

The stalled threshold is read from the profile, per stakeholder type. Default 7 days for everyone; learns per type.

### Single-deal deep-dive mode

Used by `chase-progression`. Given a property the operator named, returns:

- Every party in the chain with their role
- Last known status for each party
- Every outstanding action with the responsible party
- Every risk flag (offer expiry approaching, searches outstanding, survey booked but not done, vendor or buyer disengagement signals, chain complexity, onward-purchase status)
- A timeline view of the last 30 days of contact

## What "most likely cause" means

The skill compares the deal state against the typical stalled patterns: solicitor not responding, mortgage offer expiring, survey scheduled but not completed, search results outstanding, vendor unresponsive, buyer unresponsive, chain party upstream unresponsive. The cause sentence is the pattern that best fits the observable signals, written by `variance-narrator`.

The skill never invents a cause it cannot trace to data. If no pattern fits, the cause line says "no clear cause from connectors, manual check recommended".

## What it does not do

- It does not compute the fall-through risk score. That is `risk-scorer`, called separately by `chase-progression`.
- It does not draft messages. Draft messages come from `tone-matched-drafter`.
- It does not write to the CRM.

## Connectors

Read: CRM, email, WhatsApp, calendar, mortgage offer expiry data if held in CRM. No writes.

## Profile keys

- `realagent.stalled_threshold_days.*` (per stakeholder type)
- `realagent.cause_phrases` (preferred cause phrasings, learned from edits)
