Português

A Day in the Life of a Controller (B2B SaaS, $20M-$200M ARR)

7:42am. You haven't poured coffee yet and Slack is already lit. The FP&A lead pinged you at 7:31 about a $14K bank rec variance from yesterday's close prep. The kind of thing your job description politely calls "ensure accuracy of financial records" and you call the heartburn that woke you up at 5am.

You stare at the message. You know exactly which Stripe payout caused it before you even open NetSuite. That's the job. Not knowing the answer, but knowing where the answer probably hides. The JD said "manage the close." Nobody told you the close is actually 47 systems pretending to talk to each other while three department heads forget to forward their vendor invoices.

This is what a controller's day actually looks like at a B2B SaaS company between $20M and $200M ARR. Not the version on the careers page. The 4pm-on-a-Tuesday version.

8:00am — Close calendar review in FloQast

First real action of the day: open FloQast (or Blackline, if your CFO won that procurement debate two years ago) and look at the close calendar. Not to do anything yet. Just to see who's behind.

The controller is an air traffic controller. You're not landing every plane yourself. You're watching which planes are stacked up, which one is bleeding fuel, which one's pilot just radioed that they need another hour. Today's stack:

  • Bank reconciliations: 80% done, two accounts blocked on yesterday's Stripe issue
  • Prepaid amortization schedule: assigned to your senior accountant, not started, due tomorrow
  • Accrued expenses: in progress, but waiting on the vendor invoices that still aren't in Bill.com
  • Deferred revenue rollforward: blocked on the new contract structure Sales closed last week (more on that at 12:30)
  • Fixed asset additions: done, signed off
  • Intercompany eliminations: in review by your assistant controller

You ping the senior accountant about the prepaids. Not to chew them out. To unblock them. Half of being a controller is asking "what do you need from me to finish this today?" and meaning it. The other half is knowing when "I'm waiting on Sales" actually means "I haven't started yet."

Eight minutes. That's your FloQast review. Anything longer and you're micromanaging.

9:00am — GL reconciliation in NetSuite

Now the real work. You open NetSuite and go straight to the suspense account. Always start with suspense. If something is sitting there at 9am on the third business day of close, it's usually a bigger problem than whatever else is on your list.

Today's suspense is $4,200 from a Brex transaction that the integration miscategorized. Five minutes to reclass. Easy.

Then deferred revenue. You pull up the schedule and tie it to the billing system. Off by $2,847. You know, before you even check, that it's a contract amendment that customer success processed last week without looping in finance. You ping the CS ops lead. You don't accuse. You just ask: "Did anything change on the Acme contract between March 28 and April 4?" The answer comes back in 90 seconds: yes, they reduced seats from 50 to 35, effective March 1, and nobody told billing until last Tuesday. Now you've got a credit memo, a deferred revenue adjustment, and a quiet note to put on next month's process review.

This is the part of the job that doesn't show up anywhere. The "47 systems" problem isn't really about the systems. It's about the fact that every system has a human upstream of it making a decision that affects your books. Stripe, Bill.com, Expensify, Brex, the CRM, the billing system, payroll, the lease accounting tool, the expense management add-on the head of revenue spun up without telling anyone. They all feed the GL with their own quirks, their own timing, their own definition of "posted."

FX revaluation next. Your company has a UK subsidiary, so every month-end you're rerunning the rev at spot rates and posting the unrealized gain or loss. NetSuite handles the math. You handle the explanation when the CFO asks why FX hit P&L by $63K this month.

By 9:55, three reconciliations are clean. Two are flagged for follow-up. One is fully tied out and signed off in FloQast. You move on.

10:00am — Vendor accrual chase

Here's a thing nobody tells you in your first controller role: you'll spend more time chasing accruals than recording them. The recording is mechanical. The chase is the job.

You open Bill.com and pull the AP aging. Then you cross-reference against the contracts list from procurement. Three vendors have signed contracts and active services this month, but no invoice yet. You start drafting Slack messages.

To the head of marketing: "Hey, quick one. The agency contract with Studio Forty says monthly retainer of $42K. I don't see anything from them in Bill.com for April yet. Can you ping your account exec and ask if they invoiced? If yes, can you forward me the email so I can chase it down? If no, I'm going to accrue $42K to be safe."

To the head of legal: "Did we actually engage Morrison & Wells on the M&A diligence work? I see a SOW dated April 3 but no invoice and no PO in the system. Don't want to over-accrue or under-accrue."

To the head of engineering: "AWS bill, usually lands by the 5th. I see we're tracking but want to confirm: is the dev environment migration still on track to land in this period, or pushed to next?"

Three messages. Three accruals waiting on three answers. You'll get one back in 20 minutes, one by end of day, and one of them — usually legal — won't respond until you ping again tomorrow. So you set a follow-up in your task manager and move on.

The diagnosis I'd give every new controller: most of your accrual work isn't accounting. It's organizational archaeology. You're piecing together what the business actually committed to, in what period, with what counterparty, before the invoice catches up to the commitment.

11:00am — Async with FP&A on variance

Your FP&A counterpart has been asking about marketing OpEx. They're seeing $87K over budget for April and the CFO wants an explanation by EOD.

You already know the answer because you saw it in this morning's GL rec. The agency invoice that was supposed to land in March got entered with an April invoice date. It's a timing issue, not an overspend. Marketing didn't actually break their budget; the books just made it look like they did.

You write the explanation in a Slack thread:

Looking at the $87K marketing variance: it's a timing issue. Studio Forty's March retainer ($42K) was invoiced 4/2 with an April date, so it landed in this period instead of March. The other $45K is the conference sponsorship that was prepaid in February and is now amortizing. Schedule is in the prepaid workpaper. True April marketing run rate is on plan. I'll add a note to the close summary so the CFO sees the reconciliation. Want me to push the agency to date their invoice properly going forward?

This is where the friction with FP&A is real and worth naming. They want forecast accuracy. You want clean books. Both of you are right. The FP&A team is going to look at any month where actuals diverge from forecast and try to fix the forecast. You're going to look at the same divergence and try to fix the timing. Sometimes those goals point the same direction. Sometimes they don't.

The trick is that you both lose if you treat each other like the problem. The actual problem is the agency that doesn't date its invoices consistently. Fix the upstream issue once and you save 12 months of variance explanations.

12:30pm — Audit prep (year-round)

Lunch at your desk because the SOC 2 auditors sent another sample request. They want support for 25 journal entries from Q1: backup documentation, approval workflow, segregation of duties evidence.

The myth is that audit is a season. Q1, maybe a little of Q2, then you go back to normal. The reality, especially at a SaaS company with SOC 2, is that audit is a lifestyle. You've got the financial audit (annual), SOC 2 (annual, but with continuous monitoring), tax provision workpapers (quarterly), state nexus reviews (rolling), and whichever new compliance regime your company picked up because a Fortune 500 customer demanded it.

Today's audit task list:

  • Pull JE support from NetSuite for 25 sample entries (about 90 minutes)
  • Update the rev rec memo for the new multi-element contract structure Sales closed last week. Needs to clarify standalone selling price allocation under ASC 606
  • Respond to the tax team's question about the R&D credit calculation
  • Review the ITGC walkthroughs your assistant controller drafted

You knock out the JE samples first because they have a deadline. The rev rec memo gets a 30-minute working session. The R&D question goes back to tax with a redirect: "This is a question for the FP&A team's deferred tax calc, not the close. Loop me in when they have the numbers."

The audit-as-lifestyle reality means your job has a constant background hum of documentation. Every memo you write today is a memo you didn't have to scramble to recreate next March when an auditor asks. That's the controller's quiet superpower: the people who hate writing things down become the controllers who get called on Saturdays during audit season.

2:00pm — Mid-day checkpoint with AP/AR

The AP/AR team lead drops by your office. You walk through:

  • Aging review. DSO ticked up three days, mostly driven by one customer who's slow-paying because their procurement team rotated
  • Customer collections that turned into a sales conversation. A mid-market account is disputing an invoice based on a usage-based pricing question; you've kicked it back to the account exec to clarify the contract terms
  • The vendor situation. A small SaaS vendor we use for marketing analytics is threatening to suspend service because their invoice from January apparently never got paid; turns out their email bounced from our AP inbox because they changed billing addresses; you authorize a wire to clear it today and document the process gap

Workday Adaptive is open in another tab. Your assistant controller is updating the rolling forecast inputs based on the actuals you closed yesterday. You check that the headcount accrual flows match what the people team has in Workday, because the two sources have a habit of drifting by a couple of FTEs and that becomes a personnel cost variance you'll explain to FP&A later.

By 2:45 you're back at your desk. You realize you haven't eaten. You eat a granola bar.

4:00pm — End-of-day journal entries

This is the controller's quiet ritual. Manual journal entries that can't be automated yet, and probably won't be for another two product cycles.

Today's manual JEs:

  • Accrued bonus pool. $340K based on YTD performance against the comp plan. Calculated in a spreadsheet because the comp tool exports a CSV that doesn't quite match the GL chart of accounts.
  • Lease modification. Your company expanded the SF office last quarter and the lease accounting tool finally caught up with the right-of-use asset and lease liability adjustments. You post the entry and tie it back to the supporting schedule.
  • Deferred commission catch-up under ASC 606. Three new sales reps started in March, two contracts closed in early April need their commission expense amortized over the customer life. Your sales comp tool gives you the dollar amount; you decide the period.
  • Stock-based comp true-up. The equity admin sent over the updated grants file. You reconcile to last month's expense, post the variance.

These can't be automated yet because each one requires a judgment call. The bonus accrual depends on your read of the year-to-date attainment. The lease mod depends on whether you classify the expansion as a separate contract or a modification of the existing one. The deferred commissions depend on what you decide is the right amortization period for that customer cohort.

The tooling gap is real. NetSuite is great at the stuff that's mechanical. The judgment-call stuff still lives in spreadsheets, memos, and your head. That's not changing this year. Maybe not next year either.

5:30pm — The bank rec panic

You're packing up. Your phone buzzes. It's the FP&A lead from this morning, still on the $14K variance.

You open NetSuite. You open the bank feed. You start tracing.

It's a Stripe payout. Of course it is. Stripe's batch posted on a Sunday holiday, which means the payout date in Stripe is March 31, but the bank actually received the funds on April 2 because banks don't process on holidays. Half the payout cleared on April 1, the other half on April 2 because the bank split the deposit across two days for reasons nobody at Stripe or the bank can explain.

Forty-five minutes you'll never get back. You post the reclass, document the timing issue, file it under "things to flag in the next process review," and walk out the door at 6:17pm.

You'll have the same conversation, with a different dollar amount, in eight weeks. Holiday weekends and Stripe payouts are a recurring source of bank rec variances. Your job is not to eliminate them. Your job is to know, within five minutes of seeing the variance, where it probably came from.

What the JD doesn't say

The job description for a controller is a tidy list of bullets. Manage the monthly close. Ensure accuracy of financial records. Lead the accounting team. Coordinate with auditors.

The reality is that the controller is the human integration layer between every system finance touches. NetSuite, FloQast, Bill.com, Expensify, Brex, Workday Adaptive, the billing system, the CRM, payroll, the lease accounting tool, the equity admin platform, the tax provision software, the SOC 2 monitoring tool. Tools help. Tools reduce the toil. Tools don't replace the judgment call about when an accrual is "close enough" or whether a contract amendment should be treated as a modification or a new contract.

The other thing the JD doesn't say: the controller is the person who notices when the books don't reflect what the business actually did. That's not a checklist task. That's a posture. You spend all day asking "does this entry make sense, given what I know about the business?" and the answer is no often enough that catching it becomes a habit.

If you're a controller IC at a SaaS company between $20M and $200M ARR, you're nodding right now. If you're a hiring manager reading this trying to understand why your last controller burnt out, the answer is somewhere in the 9am GL rec, the 11am variance ask, and the 5:30pm bank rec panic. The job is doable. It's just not the job on the careers page.

Learn More