Lead-to-Lease Funnel Review

Diagnostic review of the leasing funnel from lead through move-in. Identifies where the funnel is breaking (response time, tour conversion, application conversion, approval, move-in), quantifies exposure, surfaces fair-housing and screening-drift flags, and proposes a remediation plan with owner-specific target bands. Recurring weekly at the property level; invoked ad hoc when notice exposure or leased occupancy slips.

6 stars

Best use case

Lead-to-Lease Funnel Review is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Diagnostic review of the leasing funnel from lead through move-in. Identifies where the funnel is breaking (response time, tour conversion, application conversion, approval, move-in), quantifies exposure, surfaces fair-housing and screening-drift flags, and proposes a remediation plan with owner-specific target bands. Recurring weekly at the property level; invoked ad hoc when notice exposure or leased occupancy slips.

Teams using Lead-to-Lease Funnel Review 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/lead_to_lease_funnel_review/SKILL.md --create-dirs "https://raw.githubusercontent.com/mariourquia/cre-skills-plugin/main/src/skills/residential_multifamily/workflows/lead_to_lease_funnel_review/SKILL.md"

Manual Installation

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

How Lead-to-Lease Funnel Review Compares

Feature / AgentLead-to-Lease Funnel ReviewStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Diagnostic review of the leasing funnel from lead through move-in. Identifies where the funnel is breaking (response time, tour conversion, application conversion, approval, move-in), quantifies exposure, surfaces fair-housing and screening-drift flags, and proposes a remediation plan with owner-specific target bands. Recurring weekly at the property level; invoked ad hoc when notice exposure or leased occupancy slips.

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

# Lead-to-Lease Funnel Review

## Workflow purpose

Diagnose each stage of the property's demand-conversion funnel. Compare actuals against overlay-driven target bands. Isolate the binding constraint (lead volume, response, tour conversion, approval friction, or move-in conversion), surface fair-housing and screening-policy flags, and propose concrete actions scoped to the role that invoked the workflow.

## Trigger conditions

- **Explicit:** "run funnel review", "weekly leasing funnel", "tour conversion drop", "pipeline audit", "why aren't we leasing".
- **Implicit:** `leased_occupancy` below band for two consecutive weeks; `notice_exposure` above band; `lead_response_time` median breaches SLA; step-to-step fall-off in CRM changes materially week over week.
- **Recurring:** weekly for every property at `lifecycle in [lease_up, stabilized, renovation]`.

## Inputs (required / optional)

| Input | Type | Required | Notes |
|---|---|---|---|
| CRM lead log (T30) | table | required | `inquiry_ts`, `first_contact_ts`, `source`, `status` |
| Tour log (T30) | table | required | `tour_date`, `outcome`, `lead_id` |
| Application log (T30) | table | required | `submitted_date`, `approval_status`, `policy_ref` |
| Lease log (T30) | table | required | `executed_date`, `move_in_date`, `prior_lease_id` |
| Rent roll snapshot | table | required | to compute `leased_occupancy`, `notice_exposure` |
| Market rent reference | csv | required | for `market_to_lease_gap` context |
| Concession policy overlay | yaml | required | concession ceiling and lead_time windows |
| Org overlay target bands | yaml | optional | falls back to `role_kpi_targets.csv` |
| Source-mix cost export | table | optional | marketing spend by source for CPL |

## Outputs

| Output | Type | Shape |
|---|---|---|
| Funnel KPI table | `kpi_review` | row per stage with actual, band, gap, trend |
| Binding constraint finding | `memo` | narrative with cited metrics and proposed actions |
| Fair-housing flag log | appendix | `approval_rate` disparity scan, screening policy deviations |
| Action list | `checklist` | owner, due date, approval gate if any |
| Confidence banner | banner | reference as-of dates and sample-tag surfacing |

## Required context

Router must resolve: asset_class, segment, form_factor, lifecycle_stage, management_mode, role, and at minimum a market. If market is missing, workflow asks before running any market-relative metric.

## Process

1. **Snapshot the funnel (T7 and T30).** Compute, in order, `lead_response_time` (median and p95), `tour_conversion`, `application_conversion`, `approval_rate`, `move_in_conversion`. Add the resulting state metrics: `leased_occupancy`, `preleased_occupancy`, `notice_exposure`.
2. **Compare to target bands.** Pull `reference/derived/role_kpi_targets.csv`; apply any org overlay override. Color-code each stage within/below/above band. Note the reference `as_of_date`.
3. **Identify the binding constraint.** Walk stages in order; the first metric materially outside band (per overlay's materiality threshold) is the binding constraint. If multiple stages are outside band, rank by leverage on `leased_occupancy`.
4. **Fair-housing guardrail scan.**
   - Scan CRM notes, `Lead.preferences`, marketing copy for the protected-class term list. Any hit opens an advisory line; pattern hits open `approval_request` row 3.
   - Compute `approval_rate` trend vs. the trailing 90-day baseline. Statistically meaningful disparity flags for human review (never an autonomous adverse-action decision).
   - Confirm every `ApprovalOutcome` in the sample cites a `policy_ref`. Missing `policy_ref` is a screening-drift finding.
5. **Concession scan.** Compute `concession_rate` on new leases and compare to the concession policy overlay ceiling. Any lease at or above the ceiling is listed; any lease above policy opens an `approval_request` row 13 or verifies an existing one.
6. **Source-mix attribution (if cost data present).** Join leads and tours to marketing source; compute lead-volume share and tour-conversion by source. Route high-cost / low-conversion sources to the leasing manager for reallocation.
7. **Diagnose with branches.**
   - If `lead_response_time` median above SLA -> recommend staffing / coverage review, evaluate autoresponder posture, and flag the top response-time outliers.
   - If `tour_conversion` below band with response-time green -> recommend tour-quality review, shop-call / mystery-shop pull, amenity walk, comp audit.
   - If `application_conversion` below band -> recommend pricing review against `market_to_lease_gap`, concession-posture recheck, friction audit on the application step itself.
   - If `approval_rate` swing > overlay materiality vs. baseline -> route to fair-housing review and screening-policy confirmation; do not propose an ad-hoc change.
   - If `move_in_conversion` below band -> recommend post-approval friction review (unit readiness, keys, welcome package), review `make_ready_days` in coordination with `workflows/unit_turn_make_ready`.
8. **Propose action list.** Each action names an owner, a due date, and the approval gate it must pass (if any). Mark `draft_for_review` for any resident-facing or vendor-facing communication.
9. **Surface confidence banner.** List every reference cited with `as_of_date` and `status` (sample / starter / live). Outputs never cite sample data as operating fact without the tag.

## Metrics used

`lead_response_time`, `tour_conversion`, `application_conversion`, `approval_rate`, `move_in_conversion`, `leased_occupancy`, `preleased_occupancy`, `notice_exposure`, `concession_rate`. `market_to_lease_gap` as a supporting metric when market rent reference present.

## Reference files used

- `reference/normalized/market_rents__{market}_mf.csv`
- `reference/normalized/concession_benchmarks__{market}_mf.csv`
- `reference/normalized/occupancy_benchmarks__{market}_mf.csv`
- `reference/derived/role_kpi_targets.csv`
- `reference/derived/funnel_conversion_benchmarks__middle_market.csv`
- `overlays/segments/middle_market/service_standards.md` (concession policy pointer)

## Escalation points

- Fair-housing hit (term-list match, disparity signal, missing `policy_ref`) routes to regional_manager and opens an `approval_request` row 3 before any resident-facing response is drafted.
- Proposed concession above policy opens `approval_request` row 13.
- If the binding constraint is a screening-policy gap, the workflow hands off to the regional_manager and the `workflows/renewal_retention` / screening-policy review path rather than proposing changes.

## Required approvals

- Any concession action beyond policy (row 13).
- Fair-housing-flagged dispute (row 3) before public-facing response.

## Failure modes

1. Treating "occupancy" as a single number. Fix: always surface `physical_occupancy`, `leased_occupancy`, `economic_occupancy` together; this workflow uses leased as the state reference.
2. Diagnosing from last week only. Fix: T7 and T30 side by side; weight T30 for structural signal.
3. Recommending concession as a first-line remedy. Fix: concessions are a last resort, always route above policy.
4. Missing the fair-housing scan because the funnel "looks normal". Fix: the scan is mandatory every run, not conditional on funnel state.
5. Recommending a screening policy change to close the funnel. Fix: screening criteria live in the screening_policy overlay; workflow never authors ad-hoc screening criteria.
6. Source-mix narrative without cost data. Fix: if marketing spend absent, note the gap and propose to capture cost data rather than inferring CPL.

## Edge cases

- **Lease-up stage:** band targets pulled from lease_up overlay, not stabilized. `stabilization_pace_vs_plan` is the primary state metric; funnel is the mechanism.
- **Renovation stage, unit mix shifting:** exclude classic-to-renovated unit transitions from the `market_to_lease_gap` calc; note the exclusion in the output.
- **Very small property:** if weekly sample is below `minimum_lead_volume` (from overlay), widen to T30 and annotate low-sample confidence.
- **TPM-managed property:** the workflow produces owner-oversight view and TPM-facing data request if data is missing; never bypasses the TPM.
- **New property (no 90-day history):** disparity scan uses portfolio baseline; `confidence: low` banner applied.

## Example invocations

1. "Run the weekly funnel review for Ashford Park; flag anything below band."
2. "Tours are down at Willow Creek. Diagnose which funnel stage is breaking and propose actions."
3. "Build a May-1-2026 funnel scorecard for the South End portfolio (three assets) with source mix attribution."

## Example outputs

### Output — Funnel review (abridged, week ending 2026-04-12, Ashford Park)

**Funnel KPI table.**

| Stage | Metric | T7 | T30 | Band | Gap | Trend |
|---|---|---|---|---|---|---|
| Response | `lead_response_time` p50 | within | within | (overlay) | zero | flat |
| Tour | `tour_conversion` | within | below | (overlay) | below | declining |
| Application | `application_conversion` | within | within | (overlay) | zero | flat |
| Approval | `approval_rate` | within | within | (overlay) | zero | flat |
| Move-in | `move_in_conversion` | within | within | (overlay) | zero | flat |
| State | `leased_occupancy` | below | below | (overlay) | below | declining |

**Binding constraint.** `tour_conversion` on the T30 view, dragging `leased_occupancy` below band.

**Actions.**

- Tour-quality audit this week (owner: leasing_manager; due: Friday; no approval gate).
- Mystery-shop pull (owner: regional_manager; due: Friday; no approval gate).
- Comp audit invoked via `workflows/market_rent_refresh` (owner: property_manager; due: 10 days; no approval gate).
- No concession action proposed.

**Fair-housing scan.** No term-list hits. `approval_rate` within baseline tolerance. All `ApprovalOutcome` rows in sample cite `policy_ref`.

**Approval requests opened.** None.

**Confidence banner.** `funnel_conversion_benchmarks__middle_market.csv@as_of=2026-03-31, status=sample`. `market_rents__charlotte_mf.csv@as_of=2026-03-31, status=sample`. Funnel data live CRM through 2026-04-12 08:00 local.

Related Skills

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.

Vendor Dispatch and SLA Review

6
from mariourquia/cre-skills-plugin

Weekly and quarterly review of dispatch SLA adherence and vendor performance. Produces a vendor scorecard per market and trade, flags underperformers, verifies insurance and licensure freshness, and proposes rotation actions. Vendor contract changes are routed for approval.

Third-Party Manager Scorecard Review

6
from mariourquia/cre-skills-plugin

Owner-oversight review of third-party property manager performance. Scores against the PMA's service standards and the overlay's rubric, computes adherence metrics, flags audit findings, produces the scorecard memo and the TPM-facing communication draft. Runs monthly per property and quarterly per PMA. Material performance gaps and any PMA amendment or termination are gated.

Schedule Risk Review

6
from mariourquia/cre-skills-plugin

Reviews current schedule against baseline, identifies critical-path risks, recomputes completion and stabilization probability, and routes a rebaseline proposal when warranted. Integrates with `workflows/cost_to_complete_review` and `workflows/draw_package_review` for financial consequences.

Quarterly Portfolio Review

6
from mariourquia/cre-skills-plugin

Portfolio-level quarterly review covering same-store trend, market concentration, watchlist distribution, capex progress, lease-up status, forecast discipline, covenant posture, and fund-level context. Produces the board and investor narrative drafts.

Pipeline Review

6
from mariourquia/cre-skills-plugin

Weekly review of every deal in the pipeline by stage (sourcing, loi_signed, psa_signed, ic_approved, debt_term_sheet, close, funded). Produces a stage-by-stage scorecard, flags stalled deals beyond the overlay-defined aging threshold, surfaces IC-prep load and debt-term-sheet variance, and quantifies retrade risk. Dealpath is the primary source; the workflow surfaces any `dp_completeness_ic_record` or `dp_handoff_lag` blocker from adapter dq rules before any roll-up claim is made.

Monthly Property Operating Review

6
from mariourquia/cre-skills-plugin

Monthly property scorecard and narrative. Synthesizes operating, leasing, collections, maintenance, and financial variance into a single review pack for the PM, regional, and AM. Invokes child workflows for funnel, delinquency, turn, and WO views.

Monthly Asset Management Review

6
from mariourquia/cre-skills-plugin

Ownership-side monthly review. Synthesizes property-level operating output into asset plan reality check: variance to budget and reforecast, covenant view with cushion and breach risk, watchlist scoring, rent-growth and trade-out, capex progress and yield, stabilization pace for lease-up, same-store rollup. Produces the AM agenda for PM and regional conversations, the lender compliance scaffold, and the investor-facing draft.

Lease-Up First Period

6
from mariourquia/cre-skills-plugin

Operationalize the first 12-18 months post-delivery of a new-construction or gut-renovation asset: monthly tracker of lease-up velocity vs underwriting, concession depth vs market, approval-rate posture, traffic-source mix, broker-assist rate, model-unit performance, first-renewal retention readiness, stabilization pace, NOI ramp vs underwriting, lender-reporting compliance, and equity-call scheduling for any unfunded reserves. Distinguishes from the steady-state `workflows/monthly_property_operating_review` by adding ramp-tracking metrics and by wiring the cross-system posture between AppFolio (leasing funnel + lease execution) and Excel (rent comp + concession benchmark) into a single lease-up narrative. Hands off to `workflows/monthly_property_operating_review` once the property crosses the lifecycle stabilization threshold. Narrative-first with a KPI dashboard. Informational to recommendation severity: this pack does not authorize concession policy exceptions, pricing shifts, or equity-call initiations — those gate through their owning workflows (`workflows/market_rent_refresh`, overlay concession governance, fund-level capital overlay). Child workflows invoked: `workflows/lead_to_lease_funnel_review`, `workflows/market_rent_refresh`, `workflows/move_in_administration`, `workflows/renewal_retention` (read-only, for first-renewal window).

Implementation Intake And Leader Sign-Off Builder

6
from mariourquia/cre-skills-plugin

Evidence-driven implementation intake workflow for residential multifamily and related CRE operating environments. Guides sponsors, implementation leads, data teams, operations leaders, and reporting owners through source inventory, access readiness, export evidence, field-level semantics, crosswalk ownership, reporting calendar, approvals, blockers, assumptions, and final leader sign-off. Produces implementation packets that are usable by both executives and build teams, while refusing silent assumption upgrades and refusing secret storage.

Draw Package Review

6
from mariourquia/cre-skills-plugin

Reviews a draw package end to end before lender submission. Validates construction cost to date, reconciles to the lender requisition, confirms lien waivers by vendor and period, verifies insurance endorsements, checks compliance attestations, and evaluates cost-to-complete. Splits construction manager and asset manager responsibilities. Opens approval gates for construction manager (row 12) and, finally, for the lender submission (row 14). Final submission never goes out without approved records.

Cost-to-Complete Review

6
from mariourquia/cre-skills-plugin

Recomputes cost-to-complete from current actuals plus remaining scope plus overlay-derived escalation and contingency. Compares against prior CTC and the underwriting baseline. Identifies the driver (labor, material, scope, duration) and recommends remediation (re-estimate, scope trim, re-bid, contingency pull).