Documentation

Drift and rebalancing

Drift is always relative and uses an integer percentage. A 10% target with 10% drift has a 9–11% allocation band. Cash has an informational target and no allocation bounds.

Run rebalance and the optional daily schedule execute the same market-order rebalance process. Rebalio refreshes spot balances, holding prices and orders, then freezes the effective allocation for that run. Dynamic cash is applied to the target allocation before calculating noncash drift. Breached holdings are corrected toward target with market orders, using sells before dependent buys.

Each run saves a fixed trade plan with at most one correction order per holding. Quantity is the value gap to target divided by the frozen holding price; actual market fill prices may differ. Every breached noncash holding is planned back to target. Cash is the residual, and its target reserve never reduces corrections. Sells settle before buys. Buys are submitted individually, largest value gap first, checking settled cash before each order. If actual cash is insufficient, that whole buy is skipped; smaller corrections are still considered. Cash differences generate no trades. Fills never trigger replacement corrections in the same run.

Orders have a 15-minute execution window. Unfilled orders are cancelled and reconciled; unfunded orders are skipped. Remaining drift, partial fills and exchange minimum residuals are accepted and reported. Uncertain order or cancellation outcomes still require attention. Outside orders block the run and remain untouched.

Balance synchronization refreshes portfolio data without starting trades. Settings changes apply on the next manual or scheduled run. Daily scheduling starts disabled and is configured under Edit configuration → Rebalance. A scheduled run waits while another rebalance is active. Pause rebalancing pauses scheduling; Stop rebalance stops further submissions and reconciles any submitted orders.