All Docs
FeaturesagentOS Direct DebitUpdated March 20, 2026

Mandate Activity & Reconciliation Reports

Mandate Activity & Reconciliation Reports

Available from v1.0.78, the collections report dashboard at /dashboard/reports/collections includes two new tabs: Mandate Activity and Reconciliation. These join the four existing tabs (Summary, Clawbacks, Fund Flow, Reserve), bringing the total to six.


Mandate Activity Report

The Mandate Activity tab provides a complete picture of mandate lifecycle changes within a selected period.

Summary Stats

At the top of the tab, a row of stat cards shows counts for the selected date range:

StatDescription
NewMandates created in the period
ActivatedMandates that moved to active status
CancelledMandates cancelled in the period
SuspendedMandates suspended in the period
FailedMandates that failed in the period

Two additional snapshot cards show the current total of active and suspended mandates (not period-scoped — always reflects live state).

Daily Bar Chart

A stacked bar chart displays the last 30 days of mandate activity. Each bar is broken down by:

  • New mandates
  • Cancelled mandates
  • Suspended mandates

Mandate Table

A paginated table lists all mandates created within the selected period. Columns include:

  • Mandate ID
  • Tenant name and email
  • Property ref
  • Status
  • Collection amount (£)
  • Collection frequency
  • Created at
  • Activated at

CSV Export

The export includes all table fields plus cancellation, suspension, failure timestamps, and failure reason. File is named mandate-activity-YYYY-MM-DD.csv.

Exported columns:

Mandate ID, Tenant Name, Tenant Email, Property Ref, Status,
Amount (£), Frequency, Created At, Activated At,
Cancelled At, Suspended At, Failed At, Failure Reason

Forward Reconciliation Report

The Reconciliation tab tracks the flow of funds from collection through to forwarding, highlighting any gaps at each stage of the pipeline.

Summary Stats

StatDescription
Total CollectedFunds debited from tenants in the period
Swept to HoldingFunds moved from Modulr to the Griffin holding account
Forwarded to ClientFunds released from holding to the agent's client account

Gap Indicators

Two gap indicators sit between the summary stats:

  • Collected → Swept gap — the difference between collected and swept amounts. Green when zero; amber when a gap exists.
  • Swept → Forwarded gap — the difference between swept and forwarded amounts. Green when zero (all swept funds have been forwarded); amber when funds are still in holding.

These indicators make it easy to spot funds that are stuck at any stage of the pipeline.

Holding Account Balance Breakdown

A separate breakdown shows the all-time state of the Griffin holding account:

  • Total swept in — cumulative amount swept from Modulr
  • Clawback debits — total amount reversed due to clawbacks
  • Net forwarded — total amount successfully forwarded to client accounts

Daily Bar Chart

A side-by-side bar chart shows collected vs. forwarded amounts per day, making timing differences between collection and forwarding visually apparent.

Daily Reconciliation Table

A per-day breakdown table with columns:

ColumnDescription
DateCalendar date
Collections CountNumber of collections on that day
Collected (£)Total collected
Forwards CountNumber of forward transactions
Forwarded (£)Total forwarded
Gap (£)Collected minus forwarded for that day

CSV Export

Exports the daily reconciliation table. File is named reconciliation-YYYY-MM-DD.csv.

Exported columns:

Date, Collections Count, Collected (£), Forwards Count, Forwarded (£), Gap (£)

API Endpoints

Both reports are exposed as tRPC endpoints under the reports router.

reports.mandateActivity

Returns mandate lifecycle counts, daily breakdown, and a paginated mandate list for the requested period.

Input parameters:

ParameterTypeDescription
fromstring (ISO date)Start of the reporting period
tostring (ISO date)End of the reporting period
pagenumberPage number for the mandate table (1-indexed)
pageSizenumberRows per page

Response shape (summary):

{
  "summary": {
    "newCount": 12,
    "activatedCount": 10,
    "cancelledCount": 2,
    "suspendedCount": 1,
    "failedCount": 0,
    "currentActiveCount": 84,
    "currentSuspendedCount": 3
  },
  "daily": [
    { "date": "2025-06-01", "new": 3, "cancelled": 0, "suspended": 0 }
  ],
  "mandates": [ /* paginated rows */ ],
  "totalCount": 12
}

reports.reconciliation

Returns collected vs. swept vs. forwarded totals, gap indicators, holding account balance, and a daily breakdown.

Input parameters:

ParameterTypeDescription
fromstring (ISO date)Start of the reporting period
tostring (ISO date)End of the reporting period

Response shape (summary):

{
  "summary": {
    "collectedPence": 1500000,
    "sweptPence": 1500000,
    "forwardedPence": 1480000,
    "collectedSweptGapPence": 0,
    "sweptForwardedGapPence": 20000
  },
  "holdingBalance": {
    "totalSweptInPence": 5000000,
    "clawbackDebitsPence": 25000,
    "netForwardedPence": 4950000
  },
  "daily": [
    {
      "date": "2025-06-01",
      "collectedPence": 75000,
      "collectedCount": 3,
      "forwardedPence": 75000,
      "forwardedCount": 3
    }
  ]
}

Notes

  • All report tabs are scoped per customer — data is strictly isolated to the authenticated agent's account.
  • Date inputs follow ISO 8601 format (YYYY-MM-DD).
  • Amounts are returned in pence from the API and displayed in pounds (£) in the UI.
  • CSV exports are generated client-side and downloaded directly in the browser — no server-side file storage is involved.