Nowhere-near-instant ACH payments
Why the most common payments method in the U.S. can leave you waiting days to access funds
A few weeks ago, a friend who recently opened a Robinhood account asked me a simple question: why does a transfer to Robinhood take five days (give or take a couple) to process? Anyone who works in fintech, payments, or a related area probably has at least an intuitive sense of the answer to this question. Access to Robinhood deposits is not instantaneous in part for mechanical reasons (ACH payments are not processed in real time), but largely because of risks—of insufficient funds, money laundering, fraudulent identity, and other forms of illicit activity—in the underlying transaction. Distinguishing safe transactions from fraudulent or high-risk ones takes time, so access to funds is not instantaneous.
Yet for those of us who aspire to have a more precise understanding of the payments system, this incomplete list of intuitive explanations does not cut it. The remainder of this post intends to fill that gap.
The ACH system: a primer
When you transfer funds from your bank account to a Robinhood account, the transfer is generally made as an ACH payment. The ACH (Automated Clearing House) Network was developed in the 1970s by bankers looking to reduce the volume of paper checks, which at the time were the dominant form of non-cash payments. As government agencies including the U.S. Air Force and the Social Security Administration began replacing paper checks with Direct Deposit payments via ACH, the ACH network gradually took off.
While a full account of the ACH network is beyond the scope of this post, a few points are worth mentioning:
At a high level, the ACH network is a system that enables electronic payments between accounts at U.S. depository financial institutions. The ACH system consists of a set of rules (governed by NACHA) that specify how depository institutions should code transactions, who bears risk for fraudulent transactions, when transactions can be settled, etc. The two ACH operators–the Federal Reserve system and the Electronic Payments Network–ensure settlement of ACH transactions between institutions.
There are two types of ACH transactions, credits and debits. An ACH credit (or “push”) transaction occurs when one party “pushes” money to another party; for example, a payroll direct deposit in which an employer “pushes” money to an employee’s bank account is a credit. An ACH debit (or “pull” transaction) occurs when one party initiates a request to “pull” money from the other party’s account. For example, if you signed up for automatic bill pay with Verizon, Verizon pulls money from (“debits”) your account each month to pay your bill. Transfers from your bank account to Robinhood are (generally) ACH debits, with Robinhood initiating a pull from your bank account.
ACH is the biggest component of the U.S. payments system. In fact, the majority of non-cash payments in the U.S. are made via ACH ($64trn, or 66% of all non-cash payments in 2018, according to the Fed). The ACH network handles much more than transfers to brokerage accounts like Robinhood; electronic bill payments, payroll direct deposits, tax refunds, social security deposits, and many B2B payments also are transmitted over the ACH network.
Under the hood of an ACH debit (with some additional risk screening)
So, let’s return to the original question: why does a transfer to Robinhood (or to Coinbase, to another bank account, or to any other counterparty) take several days to process? Let’s walk through the steps. And to avoid implicating any one company (this post is not meant to be about Robinhood!), let’s imagine that you are transferring funds from your bank account to some generic trading app, “TradeCo.”
The steps to transfer money from your bank account to your TradeCo account
Know Your Customer (KYC)/Anti-Money Laundering (AML) verification: TradeCo, like any responsible brokerage, presumably verifies your identity and confirms your eligibility for trading the first time that you transfer money into a TradeCo account. This “Know Your Customer” process ensures (1) that you are who you say you are and (2) that TradeCo is legally allowed to grant you an account (e.g., if you are a “politically exposed person” or otherwise subject to sanctions, TradeCo might reject your account application). Even after a customer’s first deposit, both TradeCo and the customer’s bank likely monitor transactions to ensure that they are compliant, non-fraudulent transactions. Many fintech startups, such as Sentilink, Trulioo, Sardineand ComplyAdvantage provide technology to facilitate different parts of the AML/KYC process.
Time for this step: likely anywhere from a few minutes to multiple days, depending on whether your account is flagged and how manual TradeCo’s KYC process is. It might take more time for the first deposit to process than subsequent deposits, given the need for KYC.
TradeCo initiates the transaction: Let’s assume that TradeCo has a separate legal entity—call it “TradeBank”—that custodies funds once they are transferred.The first step in the ACH process is for TradeCo (the “originator” of the transaction) to inform TradeBank that it wishes to initiate the transaction. Historically, this step would have occurred once per day, with TradeCo submitting an ACH file (essentially a spreadsheet) to TradeBank with all of its ACH transactions for the day. Today, TradeBank might submit multiple batches of ACH transactions over the course of the day, and it probably uses a more automated solution than a spreadsheet (e.g., it might use a money movement API like Modern Treasury or Moov).
Time for this step: anywhere from a few hours to one business day, depending on TradeCo’s ACH submission schedule.
Passing transaction through the ACH operator: There are two ACH operators (The Electronic Payments Network and the Fed), which coordinate and settle ACH transactions between banks. TradeBank (called the originating depository financial institution, or ODFI because it is originating the transaction) submits a batch of ACH transactions to one of the operators. The operator then separates out all the debit transactions and sends them to the banks that TradeBank is requesting funds from, called “receiving depository financial institutions” (RDFIs) because they are receiving the ACH requests.In the TradeCo example, the RDFI is the bank from which you are funding your TradeCo account.
Time for this step: typically between 1.5 and 4 hours on a business day. The Fed accepts ACH submissions from ODFIs five times per day (only on business days), and submits the transactions to RDFIs a few hours later.
RDFI transaction verification and transaction settlement: Once the operator has submitted transactions to the RDFI, the RDFI generally has two business days to respond with any errors in the transaction. There are many possible errors, but perhaps the most important is insufficient funds; the RDFI typically rejects a debit transaction if the customer’s account balance is lower than the requested debit amount.If your account balance is insufficient, the RDFI might wait a day to let you top-up your account, which contributes to a delay in settlement. Assuming that there are no errors, the RDFI tells the operator to settle the transaction, and settlement occurs between the ODFI and RDFI’s Fed Master Accounts through the National Settlement Service.
Time for this step: typically 2 business days.
Release of funds into your TradeCo trading account: This final step is not strictly part of the ACH process, but is relevant in this example. As a final step, TradeBank must release the funds to your TradeCo trading account. This may not occur immediately upon settlement, as TradeBank might wait an extra day or two to watch for a fraudulent transaction report.Ensuring that the transaction is not fraudulent is essential for Tradebank, as Tradebank is potentially liable to reimburse any funds that were fraudulently transferred for up to 60 days.
Time for this step: typically 0-2 business days, depending on TradeBank’s tolerance for transaction risk.
So, how many days ultimately pass between your request to deposit funds into TradeCo and the funds becoming available for trading? The exact duration varies, but the total process can easily add up to five or more days.
ACH innovations, fintech opportunities, and a few concluding thoughts
By this point, it should be clear that a seemingly simple payment from your bank to your brokerage account is in fact quite complex. This complexity results in part from institutional norms of the ACH system, but primarily from the risks inherent in every payment. As my friend learned when her initial transfer to Robinhood took five days, the cost of reducing this risk is partly borne by honest consumers in the form of a slower ACH transfer process.
Source: AITE Group
In fact, Robinhood and Coinbase (to name just two examples) do offer instant deposits, but in doing so they assume some risk. If a brokerage is confident that a particular customer transfer is non-fraudulent, it can easily advance funds to the customer immediately; given the mechanics of the ACH system, this amounts to extending the customer an (approximately) two-day loan. However, all else equal, advancing funds to a customer more quickly will tend to increase ACH fraud losses—and as the graph above shows, surveys reveal increasing losses from ACH fraud.
All of this points to opportunities for payments innovations. On the risk side, companies like Sardine, Astra and Orum are offering versions of “instant ACH,” meaning that (for a fee) they enable payees to access funds instantaneously (or at least more quickly). These companies' exact products vary, but their secret sauce is better models for fraud detection. For brokerages specifically, Apex (which provides clearing and custody for many online brokers) recently announced plans to offer real-time payments between customers’ brokerage and bank accounts.
Beyond risk tools, payments systems are also modernizing; NACHA established Same Day ACH in 2015, and the Electronic Payments Network launched the Real Time Payments network in 2017 (though such real-time payments are only available for credit, or “push” transactions). And of course, it is common to hear talk about crypto serving as a means for instant payments (though crypto is not a panacea and will also require fraud controls to scale!).
Where these innovations ultimately lead us—and, indeed, how they work under the hood—is a topic for another blog post. One simple indicator of success will be if honest customers like my friend no longer have to wait multiple days to begin trading.
I am grateful to Tom Brown, Brad Goldberg, and Duncan King for feedback on this piece.
These two posts offer more complete explanations of the ACH system. And for an even more comprehensive background, I recommend chapter 4 of Payment Systems in the US.
Sentilink and Sardine are both portfolio companies of Nyca Partners, the VC firm where I work.
We can think of TradeBank as being a depository institution (e.g., a bank).
Because there are two operators, the ODFI and RDFI might not work with the same operator. If this is the case, the ODFI’s operator passes the transaction to the RDFI’s operator, which in turn passes it to the RDFI.
Banks sometimes allow a small overdraft, for example, allowing your bank account balance to hit -$5.
Unless the transaction is made with same-day ACH (more on that later).
What is an example of a fraudulent transaction report? If someone other than you created a TradeCo account and tried to fund it with your bank account, then you can dispute the transaction as fraudulent.
What does it mean that Tradebank is “potentially liable” to reimburse funds for a fraudulent transaction? If someone authorizes a fraudulent transaction and you file a report with your bank (the RDFI), your bank in turn has 60 days from the initial ACH settlement to request that Tradebank (the ODFI) return the funds that had been fraudulently authorized.
Perhaps RTP is set to improve these times (long before crypto), as fraud is PERHAPS disproportionately (2-10x) more likely with relatively new accounts vs established ones?
When I was working for a startup in 2007, I came across the term ACH for the 1st time. The use case at that time for ACH pull from customer's bank account into their trading account for those who have agreed to monthly transfers. I understood high-level what happens. Few years ago, I understood NACHA rules and batched ACH payments.
This post from you helps me see under the hood and get the full picture. Many thanks! Looking forward to your next post.