A financial dashboard that earns everyday trust
A financial dashboard that turns account activity, spending, and reporting into a clear, trustworthy view for everyday financial decisions.
The brief, in specifics
- Industry
- Professional Services
- Duration
- 18 weeks
- Cooperation model
- Fixed price, phased
Client name withheld under NDA. Engagement details are shown to the extent our agreement permits.
The question we were asked
Users pieced together their finances across separate screens. We unified accounts, transactions, and reporting into one dependable view.
A business banking product whose customers held four or five accounts across two institutions and were exporting all of them into a spreadsheet to answer one question: what do I actually have? Support was carrying the cost, with a third of contacts coming from people asking what a balance meant. The engagement started from that ticket taxonomy, not from a design brief.
Fintech & Engineering
The decision, first
- 01
Single-source financial overview increased daily active platform engagement by +46%.
Engagement rose because the dashboard became worth opening. The previous one answered a question users then had to verify, which is worse than not answering it.
- 02
Reconciliation against one ledger built trust across high-volume accounts: two user-reported discrepancies in two quarters, both upstream.
Trust came from the drill-down, not the summary. The number people believed was the one they could get behind in a click, and they only checked a few times.
- 03
Automated expense categorization eliminated 90% of manual transaction tag adjustments.
Categorization stuck because a user's own rule beats the model permanently. The previous system re-applied its own guess on every sync and undid their corrections.
What the numbers couldn't answer
- 01
Account data, transaction history, and statements lived apart, forcing users to assemble their own financial picture by hand.
The dashboard summed whatever each institution had last reported, flattening pending against posted, so the headline figure disagreed with every underlying account at least once a day. Users had learned not to trust it and were reconciling by hand, which is how a product intended to save time was costing it.
We unified accounts, transactions, and reporting into one dashboard, with clear visual summaries and drill-down detail built for accuracy and everyday trust.
How we worked it through
- 01
Integrated account and transaction feeds into one reconciled model
The integration work was straightforward; agreeing what a balance means when pending and posted disagree took three sessions with the finance team.
- 02
Designed summaries that stay honest under drill-down
Pending and posted stay distinct at every level, because the merged figure was the thing users trusted least and the reason they were exporting.
- 03
Hardened reconciliation so numbers always tie out
Hardening meant reconciling six months of historical statements against the new ledger and explaining every difference before the old figures were retired.
- 04
Rolled out with clear audit trails for every figure
No figure shipped until review could trace it back to its entries.
Phase by phase
Phase 1: Financial Data & Feed Audit
Multi-Bank Integration Analysis
Audited multi-bank data feeds, reconciliation sync delays, and account balance calculation models across Plaid APIs.
- Financial Data Schema
- Plaid API Sync Spec
- Data Reconciliation Audit
Phase 2: High-Density UI Design
Financial Dashboard & Component Library
Designed an intuitive financial overview dashboard with real-time balance reconciliation and drill-down transaction categories.
- Figma Design Specs
- Dashboard Component System
- Data Visualization Library
Phase 3: Reconciliation Engine Engineering
Audit Trail & Automated Categorizer
Engineered backend reconciliation algorithms that tie out balances across linked banking accounts against a single ledger.
- Audit Trail Engine
- Transaction Categorizer API
- Reconciliation Validator
Phase 4: Launch & User Analytics
Production Deployment & Retention Tracking
Deployed to production, boosting 30-day active user engagement by +46%, with two user-reported balance discrepancies in the first two quarters, both traced upstream.
- Production Release Sign-off
- User Engagement Dashboard
- Ops Audit Clearances
The quarter against the one before it: income, spending and what was kept, with the category table that adds up to the spending total.
What it changed
1
Screens to full picture
−36%
Support queries on data
≈0
Reconciliation errors
Screens to full picture is a count, not a measurement. Support queries about data specifically are the support team's own tagged volume, before and after. Reconciliation errors is the count of user-reported discrepancies over the first two quarters: approximately zero, not zero, because two were reported and both were upstream.
Client name withheld under NDA. Figures are approximate, drawn from the engagement’s own reporting.
Multi-Bank Account Reconciler
Consolidates checking, savings, and credit accounts into one unified live balance sheet.
Accounts connect through Plaid and reconcile against a single ledger, so the headline balance is derived, never summed from whatever each institution last reported. Pending and posted are kept as distinct states, because a merged figure was the thing users trusted least. A connection failure shows up as a stale-since timestamp on the specific account, so the total is never silently wrong.
- One derived ledger, never a sum of last-seen balances
- Pending and posted kept distinct, never flattened
- Stale connections named on the account, never hidden in the total
Every account checked against its bank feed, six differences of zero, and the chain of evidence behind the operating account's matched balance.
The categorizer proposing a rule from one vendor match across the 41 waiting lines, with confidence per line, a low-confidence line held for review, and the count each existing rule has sorted.
AI Expense Categorizer
Automatically tags and categorizes transactions based on vendor metadata and historical rules.
Categorization is rules first and model second: a user's own rule always wins, then historical vendor matches, then the classifier. Correct a transaction once and it stays corrected; the next sync won't override it. Low-confidence rows are surfaced for review instead of being assigned quietly, and every automatic decision shows what drove it.
- User rules beat history beats model, in that order
- One correction sticks; the next sync won't undo it
- Low-confidence rows surfaced for review, never quietly assigned
Audit Trail & Statements
Statements whose closing balances carry forward month to month, an append-only audit trail with an adjusting entry, and the export package stamped with its period, generation time and account set.
Generates exportable audit reports and financial statements compliant with standard accounting practices.
Every figure on the dashboard is reproducible: statements are generated from the immutable transaction ledger at a stated point in time, so re-running last quarter's report next year returns the same numbers. Exports carry the period, the generation timestamp and the account set they were built from. Amendments are recorded as adjusting entries, and history is never edited.
- Statements generated from an immutable ledger at a fixed point
- Exports stamped with period, timestamp and account set
- Amendments as adjusting entries, never edits to history
How the engagement ran
A cross-functional team of 6 worked on a fixed price, phased basis over 18 weeks, covering Data integration, Dashboard UX, Reporting. We ran a standing mid-week checkpoint and written decisions in place of status meetings. Nothing shipped without a live demo first.
Every figure on the redesigned dashboard had to be traceable to the entries behind it before it shipped, enforced as a review rule, not left as a design goal. The phases were drawn around that: reconciliation first, then summaries, then the audit trail, so no summary ever shipped ahead of the mechanism that made it defensible.
One pipeline behind every figure
Every figure Tallyfold shows is derived through the same five stages, so a balance can always be traced back to the bank feed event that produced it.
- Bank feed webhookEvery posted or pending change arrives the moment Plaid observes it
- Ingestion queueIdempotent and ordered: a replayed event lands exactly once, in sequence
- Reconciliation validatorChecked against rules, then vendor history, then the model, in that order
- Append-only ledgerNo update or delete: a correction posts as a new, linked entry
- Materialized viewsPre-computed, sub-second reads power the dashboard
Enterprise security & audit controls
Engineering a financial dashboard, Plaid sync, or custom ledger? Scope your build in 3 minutes.
Scope your buildNearby engagements
AI & AutomationA private legal assistant grounded in verified precedents
A private knowledge assistant that searches internal case files and precedents, providing cited answers legal teams can verify in seconds.
Legal & Law Firms · 14 weeks
Product DesignAn onboarding flow that guides trial users to value
A redesigned SaaS trial onboarding experience with progressive checklists, sample data, and inline guidance that turns signups into active subscribers.
Professional Services · 10 weeks
Product DesignA design system that brought speed and consistency to 4 product teams
A token-based design system in Figma and React that eliminated component duplication across 4 product squads and cut the time from design handoff to merged frontend.
Professional Services · 14 weeks
Let's talk
Running a large platform, shaping a first MVP, or getting a product ready for a funding round? Tell us where you are. We'll shape the process around it, and stay with you after launch.














