Onboarding tab, part 4b: Renewals

Offer terms and eligibility saved through the company renewal-policy route; offer timing points to each building; follow-ups Coming soon

30 Sept 2026 · branch feat/onboarding-renewals-p4b-ui · captured against propflow-stage · at 834b9f0e26d

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 · Renewals › Offers, light

The Renewals tab joins Leasing and Maintenance. Offers asks how the new rent is set and which leases get an offer, saved to the company's own renewal policy.

What to look at

Days before lease end is a pointer: it is set per building, so the tab does not invent a company copy. How the new rent is set and Which leases get an offer save one half each through PUT /api/settings/renewal-policy. With nothing stored, each carries the pending dot and Not answered yet; the eligibility help states the engine's own defaults.

Asserted in the captured DOM — Onboarding · Leasing · Maintenance · Renewals · Offers · Follow-up · Days before lease end to send the first offer · How the new rent is set · Which leases get an offer · Set for each building. All three tabs, both Renewals sections and all three questions rendered.

Renewals Offers section

2 · Renewals › Follow-up

Notes

None of the three has anywhere to save an answer yet, so all are Coming soon: no input, never pending.

Asserted in the captured DOM — Follow-up timing · still no reply · When to hold for a person · Coming soon. Three Coming soon questions.

Renewals Follow-up with three Coming soon questions

3 · Offers, dark (last, because the theme persists)

Notes

Switched to dark with the product's own theme control. Every colour is a shared token.

Asserted in the captured DOM — Renewals · How the new rent is set · Which leases get an offer. Same strings as light.

Renewals Offers in dark theme

Two critique rounds

Round 1 and round 2

Round 1 (against the mock and brand-and-design.md). Same frame as parts 1 and 4a, with Renewals as the third tab. The first capture showed two defects, fixed before this one. (1) Both Save buttons were live on an untouched, empty card, so a click would send a half-empty answer just to get a refusal. Save now waits for a change, like office hours. (2) The grace-days hint and the eligibility help restated numbers (10 days, 2 months, 2 late payments). They now read the engine's own constants. The offer-timing pointer no longer restates the 90-day default either, because that default lives server-side.

Round 2 (dark, Coming soon). Every colour is a shared token. The three follow-up questions are dimmed with no input and no dot. The live state is pinned by the DOM test rather than captured. No save ran in any capture.

PropFlow Docs