Skip to main content
All Docs
FeaturesPurple PepperUpdated April 6, 2026

Fixed-Term Tenancy Renewal Wizard

Fixed-Term Tenancy Renewal Wizard

The Fixed-Term Renewal Wizard provides a guided, 3-stage flow for renewing an active or expiring fixed-term tenancy. It auto-populates all fields from the current term so that straightforward renewals require minimal input.

When It Appears

The wizard is available on any tenancy with a status of active or expiring. Click the Action Renewal button on the tenancy overview page to open it.

Wizard Stages

Stage 1 — Term Length

FieldDescription
Term LengthChoose a preset (6, 12, 24, or 36 months) or enter a custom number of months.
Service TypeOne of: Fully Managed, Let Only, Rent Collection, Tenant Find.
Term Start DateDefaults to the current term's end date. Edit if needed.

A computed end date is displayed in real time based on the start date and term length.

Skip & Create Term — If none of the pre-populated values need changing, click this button on Stage 1 to create the renewal immediately without proceeding to Stages 2 or 3.

Stage 2 — Rent

FieldDescription
Monthly RentCarried over from the current term. Update if the rent is changing.
Advance Rent BalanceAny advance rent balance to carry forward into the new term.

Stage 3 — Tenants

FieldDescription
Tenant Name / EmailPre-filled from the current term or tenancy record.
Landlord Name / EmailPre-filled if available; update as needed.
Linked Applicants / GuarantorsRead-only reference to existing linked records.
NotesFree-text notes to attach to the renewal.

Navigation

  • Use the stage indicator at the top of the wizard to jump back to any completed stage.
  • Use the Back button within a stage to return to the previous step.
  • Closing the wizard (✕ button) discards any unsaved changes.

What Happens on Completion

  1. A new tenancy_term record is created with the submitted values.
  2. The previous term is marked as expired.
  3. The parent tenancy record is updated to reflect the new term.
  4. A renewal audit record is written.
  5. The wizard closes and you are redirected to the tenancy overview.

Error Handling

If the submission fails, an inline error banner is displayed at the top of the wizard. The form remains editable so you can correct any issues and resubmit.

Service Type Reference

ValueLabel
fully_managedFully Managed
let_onlyLet Only
rent_collectionRent Collection
tenant_findTenant Find

Related API

The wizard communicates with the backend through two tRPC procedures on the renewals router:

renewals.getFixedTermRenewalData

Loads all data needed to pre-populate the wizard.

Input

{ tenancyId: string }

Returns

{
  currentTerm: TenancyTerm,
  tenancy: Tenancy,
  tenants: Tenant[],
  guarantors: Guarantor[]
}

renewals.createFixedTermRenewal

Creates the new term and expires the old one.

Input

{
  tenancyId: string;
  termLengthMonths: number;
  serviceType: "fully_managed" | "let_only" | "rent_collection" | "tenant_find";
  termStartDate: string;         // ISO date string, e.g. "2026-06-01"
  monthlyRent: number;
  advanceRentBalance: number;
  tenantName?: string;
  tenantEmail?: string;
  landlordName?: string;
  landlordEmail?: string;
  notes?: string;
}

Returns

{ tenancyId: string }

All mutations include full audit logging via logAudit().