Why we suggest transfers but never move your money
The gap between knowing what to set aside and actually doing it is where most tax reserves fail. Here is how approved reserve transfers close that gap without a payment rail, why we drew the line there, and what it would take to move it.
Update. Since this was written we have added an optional ExactSplit Wallet, provided by Whop. What this post says about your bank still holds: our code proposes and confirms, and you move the money. Inside the wallet, deposits and withdrawals are carried out by Whop and its partner banks when you start them, and if you switch on auto-split, ExactSplit moves the tax share of each payment between your own wallets for you. Nothing about the reserve requires it; any savings account works.
The gap
For a year, the reserve tracking in ExactSplit did two things. It told you the amount of each deposit to set aside, and it watched your reserve account to tell you whether you had. What it did not do was anything about the gap between the two. If you were four hundred dollars behind, it said so, and then it said so again the next day, and the day after.
That is not useless. Knowing you are behind is most of the battle. But it turned out to be a smaller share of the battle than we thought, because the people who fell behind were not the ones who did not know. They were the ones who knew, meant to fix it, and did not get to it. A number on a dashboard is not a task. It does not ask for a decision and it does not notice when the decision has been acted on.
So we made it a task. The reserve section now proposes a transfer when you are behind, asks you to approve it, and confirms it when the money lands. The rest of this post is about what each of those words means, and about the one thing the feature does not do.
What a suggestion is
A suggestion appears when set-aside is on, the reserve account has reported a balance, and the gap between what should be there and what is exceeds twenty-five dollars. Below that it is not worth interrupting you. The amount is the gap, to the cent, and the reason says how it arose: how many deposits have landed since the last confirmed transfer, or simply that the reserve is short of what should have accrued by now.
There is only ever one open suggestion. If the gap moves by more than five percent, because another deposit lands or you record a payment, the old suggestion is retired and a new one takes its place with the new amount. If the gap moves by less than that, the suggestion stays as it was, because a figure that changes by a few dollars every morning is noise, and noise gets ignored.
If the gap closes on its own, because you moved money without being asked, the suggestion simply goes away.
You can also dismiss it. Not now is a real answer, and the app does not nag. A fresh suggestion appears only when the gap has genuinely changed, not because a day has passed.
Approve, move, confirm
Approving a suggestion is a decision, not an instruction to anyone. What it records is that you looked at the amount and agreed it should move. The card changes to say approved and gives you the instruction in plain words: move this amount from this account to that one, named with the last four digits so there is no confusion about which. From here the app is waiting, and the transfer is yours to make at your bank, in whatever app or branch or phone call you normally use.
Confirmation comes from the feed. The app watches the reserve account for a deposit that matches: within a dollar or one percent of the approved amount, whichever is larger, dated from the day before you approved to fourteen days after. When one appears, the transfer is marked funded and linked to that deposit, and the gap it closed is no longer suggested. Nothing on your part.
If you moved a slightly different amount, or moved it in two pieces, the feed may not match. Then there is a button: I moved it. The transfer is marked funded on your word, and the reserve tracking, which reads the actual balance, will show the true state regardless. Marking a transfer done that you did not make does not fool the reserve figure. It only tidies the card.
An approved transfer that has waited more than two weeks with no deposit and no confirmation is flagged. It stays approved, because you might still be about to do it, but the card turns amber and says so, and suggests you either mark it done or dismiss it if plans changed.
While a transfer is approved and waiting, no new suggestion is made. Proposing a second transfer before the first has landed would double count the same gap.
Why not just do it for you
This is the question we get most, and the answer has two halves.
The first half is about trust and regulation. An app that can initiate a transfer out of your checking account is a different kind of thing from an app that can read it. It needs a different agreement with the bank data provider, a different set of obligations to you, in most cases a funding account and a ledger held by a third party through which the money actually passes, and a compliance posture we would have to build and maintain. Every one of those is a place where something can go wrong with your money rather than with a number on a screen. We have chosen, deliberately and from the first day, to be the kind of product where the worst possible bug produces a wrong figure, not a wrong balance.
The second half is about whether it would even help. The transfer from checking to savings at the same bank takes about four seconds. The thing that stops people is not the four seconds. It is not being asked, not deciding, and not noticing. The approve step is the decision. The confirmation is the noticing. The four seconds we leave with you, because they were never the hard part.
There is a version of this feature that does move the money, and we have left room for it in the design. Inside the code, the step that carries out an approved transfer is an interface with one implementation, the manual one described above, and a second one named but not enabled. That second one is the shape a bank-initiated transfer would take: same-name account to account, through a provider that is licensed to do it, with the approval you gave as the authorisation.
We have not built it. To do so honestly would need onboarding as an originator with the data provider, a funding model in which your money sits with a third party for some hours in transit, and the terms and disclosures that go with that. It might be the right thing to add. It is not something to add quietly behind a toggle, and we would rather say so than imply it is coming next week.
What it would take
So today, and until we say otherwise in words as plain as these: nothing in ExactSplit moves money. It proposes, you approve, you move, it confirms.
Under the reserve section is a history of every transfer that reached an end state. Funded, with a note of whether it was matched to a deposit in the feed or marked by you. Dismissed, with the date. The retired suggestions, the ones replaced when the gap moved, are kept but not shown, because they were never acted on.
Read together with the per-deposit list above it, the history is the answer to a question accountants ask and clients can rarely answer: did you actually set the money aside, and when. Now it is on the page.
Not tax advice. Estimates only. Confirm anything material with a CPA.
Run your number →