Skip to main content
All Docs
FeaturesagentOS Block ManagerUpdated April 12, 2026

Block Detail Page — Operational Hub

Block Detail Page — Operational Hub

Every block in the platform has a dedicated detail page at /dashboard/blocks/[id]. This page is the single operational hub for a residential building — showing ownership, units, client money compliance, and management account status in one place.

Navigating to a block

From the blocks list (/dashboard/blocks), click any block row to open its detail page. The URL changes to /dashboard/blocks/<block-id>, which means you can bookmark or share a direct link to any building.

Page sections

Block identity card

Displayed at the top of every detail page:

  • Name — the block's display name.
  • Owner — owner name with a company or individual icon. Clicking the owner name navigates to the Owners section.
  • Address — full address assembled from stored address lines, city, and postcode.
  • Dates — created and last-updated timestamps.
  • Ownership transfer count — total number of ownership transfers recorded against this block.

Owner assignment warning

If a block has no owner assigned, an amber warning banner is shown at the top of the page. Every block must belong to exactly one owner — financial reporting and compliance features depend on this association. Assign an owner by editing the block or from the Owners section.

Management account banner

A banner is displayed when the block has no active management account source. Financial reports (P&L, service charge demands, budgets) are not available until at least one active source is connected. See Management Account Sources below.

Stats grid

Four summary cards give an at-a-glance view of the block:

CardWhat it shows
UnitsTotal registered units; occupied and vacant breakdown. Links to the Units page filtered to this block.
Account SourcesTotal management account sources; active count.
Client MoneyNumber of client money accounts opened (maximum 2: Main + Reserve). Links to Client Money.
Expected UnitsThe totalUnits value from the block record; shows how many units are still to be registered.

Units overview

A bar chart shows the proportion of units in each status:

  • Occupied — unit has a current leaseholder in residence.
  • Vacant — unit has no current occupier.
  • Sublet — unit is sublet by the leaseholder.
  • Sold (Pending) — unit sold, completion pending.

Click View all to open the Units page filtered to this block.

Client money

Shows the two FCA-required ring-fenced accounts for the block:

Account typePurpose
Main (Service Charge)Holds collected service charge payments.
Reserve (Sinking Fund)Holds long-term reserve contributions.

Each account displays a status badge (Active, Pending Application, Pending Verification, Suspended, or Closed) and a Ring-fenced badge where applicable. If an account has not been opened yet, a dashed placeholder is shown.

Management account sources

Lists every management account source connected to this block. Supported source types:

TypeDescription
TrueLayer Bank FeedDirect open-banking bank feed via TrueLayer.
Calmony AccountRing-fenced Calmony-managed account.
Manual Ledger / CSVManual data entry or CSV import.
Accounting ConnectorThird-party accounting system integration.

Each source shows a label, type, optional provider name, and an Active / Inactive badge. Financial reporting requires at least one Active source.

Quick actions

Three shortcut cards at the bottom of the page:

  • Manage Units — opens the Units page filtered to this block.
  • Client Money — opens the Client Money section.
  • Financial Reports — opens financial reports. This action is disabled (with a tooltip) until at least one active management account source exists.

Editing a block

Click Edit (top-right of the page) to open an inline edit form. Fields available:

  • Block name (required)
  • Total units
  • Address Line 1
  • Address Line 2
  • City
  • Postcode

Click Update Block to save or Cancel to discard changes. The page data refreshes automatically after a successful save.

Deleting a block

Click Delete to reveal an inline confirmation step. Deleting a block:

  • Removes the block record and all associated management account sources.
  • Units and leaseholder records linked to the block will be orphaned — reassign or remove them first.

Confirm by clicking Confirm Delete, or click Cancel to dismiss.

API: block.getDetail

The detail page is powered by the block.getDetail tRPC query.

Input

{ id: string } // Block ID

Returns

{
  block: Block;                    // Full block record
  owner: {
    id: string;
    name: string;
    ownerType: string;             // "company" | "individual"
  } | null;
  unitCounts: {
    total: number;
    occupied: number;
    vacant: number;
    sublet: number;
    soldPending: number;
  };
  managementAccounts: {
    total: number;                 // All sources
    active: number;                // Active sources only
    hasActiveSource: boolean;      // Gate flag for financial reporting
  };
  clientMoney: {
    total: number;
    mainAccount: {
      status: string;
      isRingFenced: boolean;
    } | null;
    reserveAccount: {
      status: string;
      isRingFenced: boolean;
    } | null;
  };
  ownershipTransfers: number;
}

Returns NOT_FOUND if the block does not exist or does not belong to the authenticated organisation.

Business rules

RuleEnforcement
Block belongs to exactly one ownerWarning banner shown when ownerId is null
Financial reporting requires a management accountQuick action disabled; management account banner shown
FCA-aligned client moneyRing-fence status displayed per account
Two-account structure (Main + Reserve)Each account type shown separately
Multi-tenant isolationAll queries scoped to ctx.orgId
Audit trailAll mutations logged via logAudit