marco.
All work
FormOakline Business Banking8 min read

Getting four surfaces to mean the same thing by “available.”

A cash-planning project at Oakline Business Banking grew into eighteen months of definitions, components, migration work, and decisions about missing money.

A system maintained over timeA cash-planning redesign became a shared financial interface library across four product surfaces.
Client / employer
Oakline Business Banking
Engagement
Senior designer · Core product team
My role
Senior product designer
Timeline
June 2020–November 2021
Form business finance dashboard showing cash remaining after commitments and upcoming expenses

Form at Oakline Business Banking.

Form was the cash-planning workspace inside Oakline Business Banking. I began with the overview and stayed through a shared-interface programme covering banking, invoices, commitments, and forecasts. The most consequential design decisions were often about a label, a decimal, or what happened when a value was missing.

What I owned

I owned cash-planning research and design, then partnered with Ben on the library contract and migration review. Eva adapted the patterns for invoices and challenged several assumptions in the first release.

What I worked with

Separate banking, invoicing, and planning interfaces with slightly different definitions of the same amounts. Each squad had its own inputs, status badges, and table spacing.

The people I worked with

Mara Lewis
Product director · planning scope
Ben Okafor
Frontend lead · shared components and migration
Claire Ito
Finance specialist · amount definitions
Eva Marin
Product designer · invoices and library adoption

No platform rewrite. Existing customers could not lose saved workflows while components migrated. We used each product release to retire a small slice of the old UI.

Form · Library contractv1.0 → v1.8 / 2020–21

A component is also a promise about behavior.

01 / Amount

$24,680.00

Tabular numerals. Aligned decimals. A reserved sign position. A visible source and period.

02 / Missing value

Incomplete

Missing payroll is unknown. It is never silently converted to a zero commitment.

03 / Focus & error

Enter an amount of zero or more.

Planning
September 2020
Commitments
January 2021
Invoices
June 2021
Banking summary
November 2021
Adoption happened through product releases. We retired an old component only after its last production use was migrated.
Library v1.8 · amount hierarchy, input validation, source labels, and empty commitments. Dates and values stay aligned as density changes.
Form financial component library with tabular numerals, payroll input states, data tables, and spacing rules

Three products disagreed about the same money.

The banking view showed the account balance. The planning view called its estimate “Available.” The invoice view included expected payments in a similar-looking total. Business owners reasonably assumed the same visual treatment meant the same kind of money.

Sixteen interviews and nine observed planning workflows showed people subtracting rent, payroll, and tax in a spreadsheet before trusting any headline number. Forty-two support conversations made the language mismatch visible across products.

The implementation mirrored the product split. Squads maintained their own amount inputs, badges, and table rows. A fix to keyboard focus in planning did not reach invoices. A new library had to reduce that drift without becoming a year-long rewrite.

Start with the amounts, then draw the components.

Claire and I wrote a definition sheet before a component inventory: account balance, confirmed commitment, expected income, manual amount, and available after commitments. We named the data source, date, precision, and missing-value behavior for each one. That sheet resolved more disagreements than the initial dashboard concepts.

I designed the planning surface and worked with Ben on the corresponding components. We used tabular numerals, aligned amounts by decimal position, reserved fixed space for negative signs, and kept source labels in text. Red was never the only way to identify an overdue item.

Eva brought the invoice workflow into review and exposed a weakness in our compact table. The target for opening a row was too small when every field became a link. We kept rows dense for scanning but gave the primary action its own focusable control.

We migrated incrementally: planning first, commitment forms next, then invoice lists and the banking summary. Each adoption included keyboard and zoom review. Old components stayed until their last production use was removed, with an owner and a retirement date.

A financial interface with its assumptions exposed.

01

Unknown never becomes zero

An incomplete payroll amount prevents a complete available-after-commitments estimate. A real zero can be entered explicitly and is handled differently from a missing value.

02

A small contract for every component

Amount inputs specify formatting, focus, validation, error placement, and read-only behavior. Tables specify comfortable and compact spacing without dropping source information.

03

Scenarios do not edit the bank record

Changing an expected invoice date adjusts a scenario low point. The saved balance and commitments remain visible, and Reset returns to the baseline.

Interactive state studyform
form / cash planning

Available after commitments

$24,680.00

Account balance $31,680.00

Rent
$2,400.00
Payroll
$4,360.00
Insurance
$240.00

Review the keyboard path, not only the screenshot.

Twelve business owners completed planning tasks in the first product study. Later library reviews used representative flows from all four surfaces with keyboard navigation, 200% zoom, missing data, long labels, and validation errors. Component adoption and product usefulness were tracked separately.

01

A positive headline amount was interpreted as permission to spend.

Revision. Used “Available after commitments” and showed the calculation directly below it.

Readout. 10 of 12 participants explained the amount correctly in the retest.

02

The compact invoice row had several competing focus targets.

Revision. Kept the amount and source readable; gave the primary row action an explicit focus target.

Readout. Keyboard review no longer required moving through every cell to open an invoice.

03

An empty payroll field was being parsed as zero.

Revision. Introduced an explicit incomplete state and validated on Apply.

Readout. The estimate remained incomplete until the owner supplied an amount, including a deliberate zero.

The useful outcome was a smaller maintenance burden.

Adoption and maintenance, not financial performance.

4

product surfaces migrated

Banking, invoices, commitments, forecasts

17 → 6

distinct amount-input implementations

Inventory at programme start and November 2021

By November 2021, four product surfaces used the shared amount and status patterns. The implementation inventory moved from seventeen distinct amount inputs to six. The six remaining variants served older account flows with separate engineering owners; the migration was not complete.

The original planning study gave us evidence of better comprehension, but it did not establish improved business cash flow. For the library, our useful evidence was adoption, fewer parallel fixes, and a review contract the squads could apply without me in every meeting.

Maintenance was still work. A localization review later exposed a spacing assumption around longer currency labels. We revised the amount component in v1.8 rather than letting each team patch it. That small shared correction was closer to the purpose of the system than a wall of pristine components.

What I would change

I would budget for migration as product work from the beginning. Our early plan counted component creation and underestimated the decisions, regressions, and coordination involved in retiring the old versions.