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.
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.
A component is also a promise about behavior.
$24,680.00
Tabular numerals. Aligned decimals. A reserved sign position. A visible source and period.
Incomplete
Missing payroll is unknown. It is never silently converted to a zero commitment.
Enter an amount of zero or more.
September 2020Commitments
January 2021Invoices
June 2021Banking summary
November 2021
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.
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.
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.
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.
Available after commitments
$24,680.00Account 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.
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.
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.
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.
product surfaces migrated
Banking, invoices, commitments, forecasts
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.
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.