Tenancy Overview
Tenancy Overview
The tenancy overview page (/dashboard/tenancies/[id]) is the central hub for managing a single tenancy. It surfaces all key data — documents, comments, payments, compliance, tasks, renewals, and activity — in one place.
Navigation & Breadcrumb
The breadcrumb at the top of the page shows:
Dashboard / Tenancies / Overview
"Tenancies" is a clickable link back to the full tenancies list at /dashboard/tenancies.
Term Navigation
For multi-term tenancies, a horizontal navigation bar lists each term with its start and end dates and a status badge. Clicking a term sets it as the active term and updates the Overview tab content accordingly.
Tabs
The page is organised into the following tabs. Tabs with live data show a numeric badge indicating the current count.
| Tab | Badge | Description |
|---|---|---|
| Overview | — | Summary cards, term detail, recent tasks, compliance, and signed docs |
| Tenants | — | Tenant contact details |
| Rent & Payments | — | Payment history and status |
| Tasks | — | Open and completed tasks |
| Compliance | — | Compliance certificates (gas safety, EPC, etc.) |
| Documents | ✅ | eSigning tasks with status, recipient, and document type |
| Renewals | — | Renewal history and actions |
| Comments | ✅ | Per-tenancy comment thread |
| Activity | — | Full audit log |
Overview Tab
The Overview tab provides a high-level summary of the tenancy:
- Summary cards — monthly rent, start/end dates, open task count
- Current Term Detail — shown when a term is selected; displays tenant name & email, landlord name & email, monthly rent (£GBP), and term start/end dates
- Recent Tasks — up to 5 open tasks
- Compliance — up to 5 compliance documents with expiry status
- Signed Documents — up to 5 most recent eSigning tasks with recipient email, date, and status badge
- Term History — summary of all terms for this tenancy
Documents Tab
Displays all eSigning tasks associated with the tenancy in a table.
Columns:
- Document — document type (e.g. Tenancy Agreement), formatted from the internal type slug
- Recipient — recipient email address
- Created — creation date
- Status — colour-coded badge
eSigning Status Colours:
| Status | Colour |
|---|---|
pending | Yellow |
sent | Blue |
signed | Green |
completed | Green |
invalidated | Red |
expired | Grey |
Comments Tab
A full comment thread scoped to the tenancy.
- Comment list — paginated, showing comments with the posting user's name
- Post form — text area with a character counter; submits via the
addCommentmutation - Cache invalidation — the comment list refreshes automatically after a new comment is posted
- All comments are audit-logged for compliance and scoped to the organisation (
orgId)
Header Actions
The page header shows contextual action buttons depending on tenancy status:
- Action Renewal — available for active tenancies approaching end date
- Confirm Move-In — available for tenancies in a pre-move-in state
- End Tenancy — available for active tenancies
Data & Security
- All data is loaded from real database queries (no mock data)
- Every query is scoped by
orgId(row-level security safe) - Comments use audit logging to satisfy compliance requirements
- Follows the
orgProcedure+paginationInputpatterns used across the platform
API Endpoints
The tenancy overview is backed by the following tRPC procedures:
tenancy.getSignedDocs
Fetches all eSigning tasks linked to a tenancy.
Input:
{ tenancyId: string }
Returns: Array of eSigning task objects including id, documentType, recipientEmail, status, createdAt.
tenancy.listComments
Returns a paginated list of comments for a tenancy, enriched with the posting user's name.
Input:
{ tenancyId: string, limit?: number, cursor?: string }
Returns: Paginated list of comment objects.
tenancy.addComment
Creates a new comment on a tenancy. Audit-logged.
Input:
{ tenancyId: string, content: string }
tenancy.overviewCounts
Returns aggregated counts for badge display on tabs.
Returns:
{
tasks: number,
compliance: number,
documents: number, // eSigning tasks count
comments: number
}