All Projects
Web · Treasury & cash-position console

Shipping a treasury console the finance team reads at a glance

A server-rendered treasury console replacing the spreadsheet round-trip between finance, banking partners and the CFO's office — one live cash position, no export dance.

Start a Project
Client
Meridian
Industry
Corporate treasury
Year
2024
Duration
14 weeks
Role
Product design + full-stack engineering
Team
4 engineers, 1 designer
Platform
Web
Under NDA
The challenge

Finance, the banking desk and the CFO's office each kept their own export of the same accounts and reconciled them by hand every morning. Any disagreement was settled by whoever trusted their spreadsheet more — not by a system of record. The company's cash position was, functionally, a rumor that got re-confirmed daily.

Approach & solution

Approach

We started with a week of shadowing the morning reconciliation ritual itself, not the accounts it was reconciling — the actual failure was procedural, not numerical. From there the build was sequenced around one rule: nothing ships that produces a second export. Every screen reads from the same server-rendered source, so there is structurally only one place a number can come from.

Solution

A server-rendered treasury console with role-scoped views for finance, banking operations and leadership, account balances rendered on the server so the page is current the moment it opens, and a shared component layer the team now extends without redesigning each screen.

The finance desk's live cash-position view, server-rendered on every request.
The banking-operations role scope — same data, filtered to what that desk acts on.
What shipped

The capabilities behind the screens.

Live cash-position view

One server-rendered screen replacing three exported spreadsheets.

Role-scoped access

Finance, banking ops and leadership each see the view scoped to their job.

No manual refresh

Balances render on the server, current the moment the page opens.

Audit-ready trail

Every balance is traceable back to its source account, not a pasted figure.

Shared component layer

New views extend existing components instead of forking a new screen.

Leadership rollups

A summarized read for the CFO's office that still traces to the same source.

Tech Stack & Architecture

The client-side architecture and interface layer shipped for this engagement.

4 tools · 1 primary

Services, APIs, and business logic running the system end to end.

3 tools · 1 primary

Datastores and pipelines chosen for this engagement's consistency and throughput needs.

2 tools · 1 primary

Deployment, orchestration, and delivery tooling running the platform in production.

3 tools · 1 primary

System architecture

Technical challenges

Current balances without hammering banking APIs

Partner banking APIs rate-limit aggressively. We built a server-side cache with per-account invalidation so a live-feeling view never means a live request per pageview.

Role-scoped views without duplicating the data model

Finance, banking ops and leadership needed different slices of the same accounts. Row-level scoping in the query layer meant one schema, not three divergent view models.

Keeping a shared component layer from calcifying

Early treasury dashboards ossify into one-off screens. Components were built against a documented prop contract from the first screen, not extracted retroactively from the third.

How it was built

The stages this engagement ran

01

Brief & Strategy

1 week

Shadowed the morning reconciliation ritual before scoping anything.

02

Strategy & Planning

2 weeks

Server-rendering and role-scoping decided before a screen was drawn.

03

UX & UI Design

2 weeks

Three role-scoped flows wireframed against real account data.

04

Development

6 weeks

Shared component layer built alongside the first three screens, not after.

05

QA & Optimization

2 weeks

Load-tested against month-end volume, the desk's actual worst case.

06

Deployment & Support

1 week

Parallel-run against the spreadsheet process for one full close cycle.

Results

What changed, in the numbers.

1
Single source of truth, replacing 3 exported spreadsheets
<1s
Time to a current balance, down from a manual refresh
3
Role-scoped views shipped from one shared component layer
0
Reconciliation disputes logged since launch

“We finally have one number everyone agrees on before the CFO asks for it, not after.”

Elena Kovač · Director of Platform · Meridian

Selected screens

Meridian, in the product

The console's landing view — the day's consolidated cash position on open.
Finance's account-level drill-down, server-rendered per request.
Banking operations' reconciliation queue.
The mobile leadership rollup, read-only and summarized.
The audit trail view, tracing a balance back to its source account.
The console in the CFO's monthly review, one screen instead of three exports.

Technical briefingNot a sales desk

PRJECT IN MIND?

Tell us the load.
We will calculate the structure.

Let's Talk