All Docs
FeaturesagentOS Direct DebitUpdated March 20, 2026

Collection History & Fund Flow Reporting

Collection History & Fund Flow Reporting

The Reports section provides a unified analytics dashboard covering collection performance, clawback history, fund movement, and reserve utilisation. It is available at /dashboard/reports/collections.

Navigating to Reports

Click Reports in the sidebar. The link navigates to /dashboard/reports/collections.


Dashboard tabs

Summary

The Summary tab gives an at-a-glance view of collection performance for the selected period.

Stat cards

CardDescription
Total CollectedSum of all successfully collected amounts
Success RatePercentage of attempted collections that succeeded
Failed CollectionsCount of collections that failed
ClawbacksCount of collections reversed by the tenant's bank
Average CollectionMean amount per successful collection
Total AttemptedSum of all attempted collection amounts
Failed AmountTotal value of failed collections

Daily bar chart

A CSS-rendered bar chart shows up to 30 days of collection activity. Each bar is segmented by outcome:

  • 🟢 Green — Collected
  • 🔴 Red — Failed
  • 🟡 Amber — Clawback

Hover over a bar to see the exact counts and collected amount for that day.


Clawbacks

A paginated table listing all clawback events within the selected date range. Each row includes:

  • Collection ID and mandate reference
  • Tenant name and email
  • Property and tenancy reference
  • Collection date and clawback timestamp
  • Clawback reason
  • Amount
  • Modulr Collection ID and BACS reference

A totals banner above the table shows the aggregate clawback count and total value.

CSV export — Click the export button to download a clawback-report-<date>.csv file containing all rows in the current filter.


Fund Flow

The Fund Flow tab shows the movement of funds through the two-stage transfer pipeline:

  1. Sweeps (Modulr → Griffin) — Funds swept from the Modulr collection account into the Griffin DD holding account after a successful BACS collection.
  2. Forward Payments (Holding → Client) — Funds forwarded from the Griffin holding account into the agent's Griffin client account after the hold period.

Both tables are paginated and display status badges indicating the current state of each payment.


Reserve

The Reserve tab shows the current state of the clawback reserve and its history:

  • Current reserve banner — Displays the actual reserve held, the required reserve, and whether the reserve requirement is currently satisfied. A shortfall amount is shown if the reserve is below the minimum.
  • Historical trend chart — Plots actual vs. required reserve values over time, sourced from the audit log snapshots.
  • Snapshot table — Tabular view of all reserve snapshots within the selected period.

Filtering

All tabs respect a shared filter bar:

  • Date range — Restrict data to a specific start and end date.
  • Mandate — Filter by a specific mandate, selected from a dropdown populated by the mandateList query.

CSV Export (full collections list)

In addition to the clawback-specific export on the Clawbacks tab, a full collections export is available. The exported file (collections-report-<date>.csv) includes the following columns:

ID, Status, Amount (£), Collection Date, Receipt Date, Tenant Name, Tenant Email,
Property Ref, Tenancy Ref, Modulr Collection ID, BACS Ref, Representation Count,
Scheduled At, Submitted At, Collected At, Failed At, Failure Reason,
Clawback At, Clawback Reason, Swept to Holding At

Exports run client-side for small datasets. Larger exports (up to 1,000 rows) use the collectionsExport tRPC query.


API: reports tRPC router

All queries in the reports router are accessible via orgProcedure, meaning they are automatically scoped to the authenticated organisation (orgId). Each query accepts optional dateFrom, dateTo, and mandateId filter parameters.

reports.collectionSummary

Returns aggregated collection statistics and a daily breakdown.

Input

{
  dateFrom?: string;   // ISO date string
  dateTo?: string;     // ISO date string
  mandateId?: string;
}

Returns

  • totalCollectedPence — Sum of collected amounts in pence
  • totalAttempted — Count of all attempted collections
  • totalSucceeded — Count of successful collections
  • totalFailed — Count of failed collections
  • totalClawbacks — Count of clawback events
  • failedAmountPence — Sum of failed collection amounts in pence
  • clawbackAmountPence — Sum of clawback amounts in pence
  • avgCollectionPence — Average successful collection amount in pence
  • successRate — Percentage (0–100)
  • daily — Array of { date, collected, failed, clawback, totalCollectedPence } rows

reports.clawbackHistory

Returns a paginated list of clawback events with tenant and property context.

Input

{
  dateFrom?: string;
  dateTo?: string;
  mandateId?: string;
  page?: number;       // defaults to 1
  pageSize?: number;   // defaults to 20
}

Returns

  • items — Array of clawback records (see CSV columns above for field list)
  • total — Total matching record count
  • totalAmountPence — Sum of all matching clawback amounts

reports.fundFlowHistory

Returns sweep and forward payment records.

Input

{
  dateFrom?: string;
  dateTo?: string;
  page?: number;
  pageSize?: number;
}

Returns

  • sweeps — Modulr → Griffin transfer records
  • forwards — Holding → Client transfer records
  • Separate total counts for each

reports.reserveUtilisation

Returns reserve snapshots from the audit log for trend analysis.

Input

{
  dateFrom?: string;
  dateTo?: string;
}

Returns

  • current — Latest reserve snapshot { actualReservePence, requiredReservePence, reserveSatisfied, shortfallPence }
  • history — Array of snapshots ordered by calculatedAt

reports.mandateList

Lightweight mandate list for populating filter dropdowns.

Returns

  • Array of { id, tenantName, propertyRef, tenancyRef, status } objects

reports.collectionsExport

Flat, CSV-ready collection list for bulk export (up to 1,000 rows).

Input

{
  dateFrom?: string;
  dateTo?: string;
  mandateId?: string;
}

Returns

  • Array of flat collection records matching the CSV export schema described above