Leasing and Turnovers tiles — loaded state unchanged

The tiles with real numbers, on the branch, against stage data

23 Sept 2026 · branch fix/dashboard-honesty-tiles-unavailable · captured against propflow-stage · at 72bba9f9ab

Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.

1 · Dashboard: both tiles with real numbers

The loaded path is untouched by this PR: when leasingStats is present the Leasing pipeline card renders its headline, the vacant / on-notice caption and the four stages, and Turnovers renders its count. This capture proves the null branch did not leak into the loaded render.

Asserted in the captured DOM — LEASING PIPELINE · available · vacant · on notice · TURNOVERS · move-out notice

Dashboard: both tiles with real numbers

2 · /leasing: the two-column pipeline row

The /leasing hub renders the Leasing card beside Renewals in a two-column grid. Loaded, it is the same card as before.

Asserted in the captured DOM — LEASING PIPELINE · available · Prospects · Tours

/leasing: the two-column pipeline row

3 · /maintenance: the Turnovers card

Asserted in the captured DOM — TURNOVERS · move-out notice

/maintenance: the Turnovers card

The failed, refused and loading states

This tool deliberately never rewrites a response, so the three states a healthy stage server never produces were captured separately, with /api/leasing/stats forced to 500 / a needs_one_org refusal / held open in the browser only. Those captures and their written critique are linked from the PR body.

PropFlow Docs