cat posts/2023-03-28-the-friday-our-bank-failed.md
The Friday our bank failed
Our CFO’s first message about it came at 4:12pm on Thursday the 9th, in a direct message, not a channel: “Are you seeing the SVB stuff? Don’t post about it anywhere.” I hadn’t been. I went and read what there was, which at that point was SVB’s announcement the night before that it had sold a big chunk of its bond portfolio at a loss and was trying to raise more than $2 billion, the stock falling off a cliff that day, and a lot of screenshots of venture capitalists telling their companies to move their money out.
We banked with SVB. Most startups of our vintage did. They’d given us our first account when no big bank would return our calls, the people there understood what a SaaS company’s revenue looked like, and it was where nearly all of our cash sat: the operating account, the account our customers’ card payments paid out into, the account the payroll provider debited, and the company credit cards. We had one account somewhere else, at a big bank, that had been opened years ago for reasons nobody remembered and held almost nothing.
Thursday evening the CFO and the CEO decided to move money out, and the wire they sent at about 5pm Pacific didn’t go anywhere. I think a lot of people’s didn’t. The state’s order closing the bank said customers had tried to withdraw about $42 billion that one day, which is a number I still can’t picture. By the time I woke up on Friday the bank had been closed and the FDIC was the receiver. Insured deposits, up to $250,000, would be available Monday. Everything above that would be, in the FDIC’s words, the subject of an “advance dividend” sometime in the next week, and a receivership certificate for the rest, which is a piece of paper promising you’ll get some of your money back eventually.
Payroll was due Wednesday the 15th. The provider would debit the account on Monday. $250,000 wasn’t going to cover it.
The weekend
I’ll skip most of the finance part, because I wasn’t the one doing it and I’d get it wrong. What the CFO and CEO did, roughly, was spend Friday and Saturday on the phone with our investors, our board and two other banks, working out how to make payroll from somewhere if the money stayed frozen. By Saturday afternoon they had a plan involving a bridge loan from an existing investor that I didn’t fully understand and that everyone agreed was terrible and better than the alternative. Other companies were doing worse. One of the big payroll providers had told its customers that payments had stalled because SVB handled some of its money movement, and there were founders on Twitter talking about paying people out of their personal accounts.
My part started Friday at about 10am, when the CFO asked me a question I couldn’t answer: which systems move money in or out of that account?
That’s an engineering question, it turns out, or at least an inventory question, and I’ve written about enough of those on this blog that I should have had an answer. We had a credential inventory from 2013, a machine list from 2014, and since Log4Shell a spreadsheet of every vendor whose software touches our systems, with an owner for each. Since last summer the access-review sheet has also had a column for which card or invoice pays each vendor. None of them had a column for which bank was behind that card or invoice, or for where money gets paid into. We’d never needed it.
So I built one, on a Friday, from four sources: a transaction export the CFO had downloaded on Thursday night, just in case, the company card statements, our payment processor’s dashboard, and the vendor spreadsheet. By Friday night it had 61 rows. Most were vendors charging the company cards. The ones that mattered were a much shorter list:
- the payment processor’s payouts, which deposited customer revenue into SVB every business day
- the payroll provider’s debit
- two vendors who pulled from the account by ACH, our office lease and our health insurance
- the cloud invoice, which we paid by ACH from the SVB account
- the domain registrar and the DNS provider, on the shared finance card, which SVB issued, and which I flagged mostly because I’ve had a bad day with DNS before and didn’t want to find out what happens when a renewal fails
The payouts were the urgent one, because every day they kept going to SVB was another day’s revenue going into a bank that didn’t exist anymore. Changing the payout account on the processor’s side is easy in the UI and then takes a couple of business days to verify, with small test deposits that you have to confirm. We started that on Saturday, using the account at the other bank, and confirmed it the following Tuesday. Two days of revenue went to the bridge bank in the meantime and came back the next week.
The cloud invoice was the one that kept me up. The next one was due in about ten days, and I had no idea what happens when a large customer’s ACH payment bounces off a bank that no longer exists. Since last year we’ve paid AWS by invoice, with an account team we can phone, and Saturday was the first time I actually phoned them. I spent it changing the account the invoice gets paid from, which took one call, two emails and a form, and the person I spoke to said we were not the first SVB customer to call that day.
Sunday night
At about 3:15pm Pacific on Sunday, Treasury, the Fed and the FDIC put out a joint statement saying all depositors would be made whole and would have access to all of their money on Monday. A few minutes after that, the CFO posted a single emoji in the channel we’d been using all weekend, and the CEO wrote “I’m going to bed”, and I don’t think he did.
On Monday the money was there, at a bridge bank with the same name and a new owner, which was the FDIC. Payroll ran on Wednesday on time, from the bridge bank, because changing the payroll provider’s bank account would have taken longer than just leaving it. We wired most of our cash to the other bank on Monday and Tuesday. On Sunday, a little over two weeks after the run, First Citizens agreed to buy what’s left of SVB’s deposits and loans, so the account we left behind now belongs to a bank in North Carolina.
The obvious lesson everyone is drawing is to have more than one bank, and we do now. But I’m not convinced it’s that simple. The whole reason the run happened was that everyone had the same lesson at the same moment, and moved their money at once, and our wire was one of them. If we’d had two banks before, we’d have moved money from one to the other on Thursday along with everyone else, and that’s not obviously a thing I want to be proud of.
What I keep failing to decide is how much of this is my problem. The money question belongs to the CFO, and she’s dealing with it, with sweep accounts and a split between banks and other words I’m learning. The 61-row spreadsheet is mine. I’ve added a bank column to the vendor list, and next to the payment processor and the payroll provider I wrote the name of the bank and the account they use, and then stared at it for a while, because I’m not sure who’s supposed to look at that column, or how often, or what they’re supposed to do when it says something they don’t like.