Renewals pipeline tile when its numbers did not load

Second tile of the #10974 fix, same pattern. The Leasing card beside it is the already-merged #10974 behaviour.

2026-09-23 · branch commit 2d21b6b97a · local dev server on the anonymized stage table · smoke user

How these were produced. /api/leasing/stats forced in the browser only (Playwright interception): a 500, a needs_one_org refusal, and a request held open. Nothing server-side changed.

Read failed

Leasing hub: Renewals card shows dash, renewal rate, Couldn't load, and stage labels with dashes
/leasing. Before: “Due in 90d 0 · Contacted 0 · Of 0 contacted · Renewed 0 0%”. Now every value is “—”, no share column, “Contacted, by outcome:” replaces the count caption.
Dashboard with the Renewals card in the failed state
Dashboard.

Selection refused

Dashboard with the Renewals card reading Not available for this selection
“— renewal rate · Not available for this selection”.

Still loading

Dashboard with a ghost headline in the Renewals card
Ghost headline beside “renewal rate”, labels kept, values blank.

Critique

PropFlow Docs