Building trust in uncertainty with accruals

In accounting, there’s a professional industry term for “I have no idea what this expense was for, boss, and the employee won’t respond to my emails asking for a memo”. It’s impossibly complex and critical to enterprise finance — "accruals".

I drove direction and earned product/engineering buy-in by co-designing alongside our highest-touch users and championing one of the most nuanced industry workflows to unlock power users.

Role

Design lead

Role

Design lead

Role

Design lead

Release

Summer 2024

Release

Summer 2024

Release

Summer 2024

The problem with the problem

The problem with the problem

The problem with the problem

When I was first moved into this project, we heard loud and clear from customers that they wanted a way to update their transactions after their booked closed for the period. The PRD made it sound easy — “unexporting”, or effectively undoing a closed transaction if further details were provided and therefore needed adjustments in a later period. On the surface, we were hitting the user asks:

We can’t have continuous close if we are blocked by compliance documentation

Kevin M

Controller @ Brex

We can’t have continuous close if we are blocked by compliance documentation

Kevin M

Controller @ Brex

We can’t have continuous close if we are blocked by compliance documentation

Kevin M

Controller @ Brex

Out of about 4,000 transactions, we have several hundred missing nformation by month-end

Tim D

Controller @ Roblox

Out of about 4,000 transactions, we have several hundred missing nformation by month-end

Tim D

Controller @ Roblox

Out of about 4,000 transactions, we have several hundred missing nformation by month-end

Tim D

Controller @ Roblox

But, this is where my accounting degree finally proved useful, as I immediately flagged this as not just incorrect — but unacceptable. In enterprise accounting, you don’t simply “undo” posted books

Co-design process

Co-design process

Co-design process

To gather buy-in from the existing team, I pioneered a recurring co-design ritual: lo-fi, weekly working sessions with accounting leaders at Roblox, DoorDash, and other enterprise admins. We also made sure to include a handful of smaller customers to test out any industry varations.

These weren’t just interviews. As users described their close process, I redrew their month-end flows live on the call. The sessions were messy, collaborative, and deeply tactical. This style of "live" sketching quickly became a celebrated and championed process internally as well.

This process was so mutually beneficial that Roblox mentioned in a call with our CSM, that they are not churning to Ramp despite internal connections because “designing with Annie is fun."

Learnings & Principles

Learnings & Principles

Learnings & Principles

We confirmed my hunch: any intent to change a booked transaction must be done in an equal and opposite additional entry. Admins call it auto-reversing accruals. Accountants needed to book an entry before the period ends to ensure your numbers are kosher, but have the safety net that it will automatically net out to zero later, when further compliance documentation is received.

This way, auditability is preserved month after month without compromising speed, keeping key principles in mind:

OPTIONALITY

Startups could opt out; enterprises could enforce accruals by policy.

FAMILIARITY

Modalities and jargon mirrored the user's ERP native objects

SAFETY

If critical fields were missing, we put guardrails to ensure non-final entries.

Design outcomes

Design outcomes

Design outcomes

01

Prepare transactions with incomplete documentation as accruals

02

Reviewers can confirm and export to auto-reverse on a date of their choosing

03

Update safely as actuals in a following period when you’re confident

Business impact

Business impact

Business impact

The ability for Brex to ingest and ship a niche industry product marked a shift in how Brex showed up for enterprise. DoorDash processed 95k+ auto-reversals in their first quarter alone, and Roblox, Airbnb, and Sequoia required this feature as p0s. On top of that, our own internal finance team adopted it for month-end close.

Most importantly, it became a prerequisite for automation, as we see in our next upcoming cycles.