Reporting
The board pack, read straight from the ledger.
Nobody retypes figures into a spreadsheet before a meeting. Four reports come built in, your team writes its own over curated views that stay inside your institution and each reader's branch scope, and any report can run on a schedule.
select office, product, count(*) as loans,
sum(principal) as disbursed
from report.loans_disbursed
where disbursed_on between :from and :to
group by office, productParameters: from (date), to (date). Output: screen, CSV, XLSX or PDF, daily, weekly or monthly.
What it does
Four reports on day one
Portfolio at risk, repayments due, officer performance and a client statement, seeded read-only for every institution.
Write your own
A report is one query over curated report views, never over a table, with declared parameters that are bound and never spliced into the query.
Sandboxed by the database
Reports run under a database role that can read those views and nothing else, with a statement timeout and a row cap. The read-only promise is enforced by the database, not by a parser.
Branch scope applies
Every view is filtered by the runner's office scope, so a report is never a way round what a person may see.
CSV, XLSX or PDF
Columns, a grouping with its footer, and a summary. A large run renders in the background, and the person who ran it is told in their inbox.
Scheduled and emailed
Daily, weekly or monthly at a time in your own time zone, with relative dates such as the first day of last month. Recipients are told in their inbox when it is ready.
What it refuses
A control is only a control if the system enforces it.
- Fused refuses a query that names a table instead of a report view.
- Fused refuses more than one statement in a query.
- Fused refuses a report run by someone without that report's own permission.
- Fused refuses an office parameter outside the runner's office scope.
The rules underneath
The detail your finance and IT teams will ask about.
- Query
- A single SELECT over the report views; a table name is refused when the report is saved.
- Database role
- SELECT on the report views and no privilege on any table, with every row-level security policy in force.
- Limits
- A 20-second statement timeout and 50,000 rows by default.
- Permissions
- One permission to run reports, plus each report's own permission, created when it is published.
- Schedules
- Daily, weekly or monthly in the institution's time zone. Three failures in a row pause a schedule and tell its owner.
- Document templates
- Receipts and statements render from templates with placeholders, restyled by the institution without a release.
Works with
- Arrears and provisioningA nightly run that penalises, accrues and places every loan on your own delinquency ladder.
- AccountingA general ledger in which every entry balances or is refused, and no posted entry can be edited.
- Approvals and controlsApproval flows you draw, quorum rules, one inbox per person, office-scoped roles and a hash-chained audit trail.
Reporting: questions
Can we write our own reports?
Yes. Your team writes a query over curated report views, declares its parameters and lays out the columns, and it runs under a role that can read nothing else.
Can a branch manager's report show other branches?
Only if their role's office scope covers them. Every report view is filtered by the scope of the person running it.
Which formats can reports produce?
CSV, XLSX and PDF, on demand or on a daily, weekly or monthly schedule.
See it on your own products and numbers.
A walkthrough with the team that builds Fused: your loan products, your branches, your month-end.