Skip to content

Reconciliation & drift

6 min read · updated 2026-10-16

SleeveFolio regularly reconciles its local books against your broker: orders, fills, and positions are synced, and any disagreement becomes a drift item on the Reconciliation page. The recurring check covers the account you’re currently in; if automatic trading runs on your other account, that account gets the same check as part of its daily run.

The check runs every 15 minutes while any of these is true: you have opened SleeveFolio recently (in the last day or so), a recent order is still open, or a live account is connected. Otherwise it runs about once an hour. Opening SleeveFolio puts a quiet account back on the 15-minute rhythm from the next check, and Re-check now (the button at the top of the Reconciliation page) runs a check immediately, whenever you want one; both paths run the identical sync.

One thing follows from the hourly rhythm: a trade you place directly at Alpaca, outside SleeveFolio, can take up to about an hour to reach SleeveFolio’s records when your account has been quiet. The Positions and Orders pages stay current the whole time — they read your holdings and order statuses straight from Alpaca each time you open them.

Paper and live are reconciled separately: the page and the going-live gate only ever count the drift for the account you’re currently in, and acknowledging a drift item in one environment never clears it in the other.

The three drift signals

DriftMeansInvestigate at
Untracked positionThe broker holds something SleeveFolio has no record ofPositions
Position mismatchQuantities disagree between broker and local booksPositions
Stale open orderA local order the broker no longer treats as openOrders

An order placed in the last couple of minutes — by you or by automatic trading — is still being confirmed with the broker, so it isn’t counted as a stale open order yet. If the broker still has no record of it after that, it shows up here as usual.

A stock split on its own is not drift. Each sync also picks up the splits Alpaca has processed on your symbols and applies them to SleeveFolio’s purchase lots before the quantities are compared, so a 10-for-1 split that turns 5 shares into 50 matches on both sides. A split can still leave a small difference behind: when it would give you a fraction of a share, the broker may pay that fraction out in cash instead of holding it. So when you’ve held a stock since before it split and your broker now shows less than SleeveFolio expects, by under one share, the drift card says corporate action and names the split. A bigger difference, a broker count higher than expected, or a difference on a holding you only bought after the split shows without that label, because a split can’t explain it — treat it as a records problem.

Paper clears itself; live asks you

On your paper account, drift clears itself automatically. A paper divergence is harmless — the usual cause is an Alpaca paper-account reset that wipes your positions — so SleeveFolio records it and resolves it on the same sync. Nothing for you to do: it won’t nag you or pause paper automatic trading. So a changed dashboard isn’t a mystery, it leaves a single note in your notification bell when it reconciles something. (One rare exception: an unusually large divergence — more than 50 differences found in a single check — still pauses paper automatic trading as a safety backstop. A check keeps only 50 of the differences it finds, so clearing the ones you can see can’t lift the pause; it lifts on the first later check that finds the account back within that limit.)

On your live account, drift is left for you to clear. Each drift card offers Investigate (jumps to the screen that explains it) and a Resolve button (the acknowledge action) for a divergence you’ve reviewed and accept. A broker-vs-records mismatch on real money is worth a look before you wave it through, which is why live never auto-clears. Resolve only records an acknowledgment for a difference that is still open in the latest check for the account you’re in — if the list has changed since the page loaded, or the latest check couldn’t be fully read, it tells you and nothing is recorded; refresh and look again. The same 50-difference limit applies here: when one check finds more than 50 differences, resolving the ones shown can’t clear it — trading stays paused until a later check finds the divergence genuinely back within the limit.

You don’t have to watch this page. When a live sync turns up drift that wasn’t there before, SleeveFolio alerts you on whichever channels you’ve opted into for reconciliation drift (email, push, and the in-app inbox) and the alert links straight back here. Paper is quieter: no email or push — just the single in-app note mentioned above, on the same reconciliation-drift preference you can mute.

Why live drift blocks the gate, and pauses auto-execute

Unacknowledged live drift means SleeveFolio’s view of your account is wrong somewhere, and live orders calculated from wrong records are how small discrepancies become real losses. That’s why zero unresolved drift is one of the two gate checks, and why a check whose results can’t be read blocks rather than passes.

Open live drift doesn’t only block the going-live gate. If you’ve turned on automatic trading, each live run also pauses until your drift list is clear, so the Reconciliation page is where you unblock live automatic trading too. When that’s the reason a run was skipped, the page shows an Automatic trading is paused until you resolve the drift below banner above the list. Paper drift auto-resolves, so in the ordinary case it never pauses paper automatic trading — only an unusually large divergence trips the same safety backstop there.

While you’re on your live account, the same check also applies to orders you place by hand: the order ticket and a holding’s Close button on the Positions page refuse a live order until the drift is resolved here (or, if the latest check couldn’t be read, until a clean check comes through). Drift never blocks the kill switch or cancelling an order: Pause, Cancel open orders, Liquidate, and cancelling a single order aren’t held up by it.

Live orders need a recent check

A clean check only vouches for your records while it’s recent. So on your live account, the order ticket, a holding’s Close button, and live automatic trading also need a check that finished within the last 90 minutes. A live account is checked every 15 minutes, so in normal running you won’t notice this; the 90 minutes leaves room for a few slow or missed checks.

A check that can’t finish (say Alpaca is down) is recorded as a failed check in your audit log once its automatic retries run out (a failed Re-check now is recorded right away), and live orders pause until a later check succeeds, even if an earlier one came back clean. Live orders also pause if no check has finished in 90 minutes, or if SleeveFolio can’t read its record of your checks. The order ticket or the Close window tells you which it is, and no order is sent to your broker; a live automatic run in that state is skipped and tells you why. While you’re on your live account, the status banner at the top of the Reconciliation page says Live orders paused and why, in place of “automatic trading unblocked”. Press Re-check now to run a fresh check: once one succeeds, live orders go through again.

Every check starts by asking Alpaca for your account. If Alpaca refuses your saved keys (they were regenerated or revoked), the check stops there: it is recorded as failed right away, with no retries — refused keys stay refused — and SleeveFolio marks the keys as refused, alerts you once, and shows a reconnect banner on every screen until you save working keys (see Keys that stopped working). Re-check now says so in its message too. Once Alpaca accepts the account again, the next check clears all of it.

This applies to orders, not to switching live trading on: the gate keeps its own 7-day check, and right after you switch, a check runs on your live account so your first live orders can go through. Paper isn’t affected, and neither are the safety controls: Pause, Cancel open orders, Liquidate, cancelling a single order, and the hourly crypto safety check keep working whatever state your checks are in.