REBALANCING ENGINE
Drift detection and cost-aware trade optimisation
Configurable threshold bands, fractional share support, and multi-currency overlay logic. The engine handles the mathematics so your team doesn't have to.
CORE MECHANICS
How the rebalancing engine works
Threshold-based drift detection
Set absolute or relative drift bands per asset class. A 3% absolute band on equities triggers rebalancing when any position drifts more than 3 percentage points from target. Relative bands scale with the target weight — useful for small positions.
Cost-aware order minimisation
The engine doesn't just fix drift — it minimises the number of round-trips and FX conversions needed to reach target. When buying in GBP and selling in EUR, it nets positions where possible to reduce cross-currency cost.
Fractional share precision
Target allocations are hit to four decimal places. A 500 EUR portfolio with 20 positions achieves accurate weighting without the 8–15% allocation error that whole-share rounding introduces.
Simulation mode
Run rebalance plans against historical data without submitting orders. The simulation returns the same response structure as a live rebalance — same estimated costs, same tax impact — so you can validate parameters before going live.
API PARAMETERS
Configuration reference
| Parameter | Type | Description | Default |
|---|---|---|---|
| drift_threshold | float | Minimum drift before rebalance triggers (fractional, e.g. 0.03 = 3%) | 0.05 |
| band_type | enum | absolute — flat bps from target; relative — proportional to target weight | absolute |
| rebalance_trigger | enum | any_position — trigger if any position breaches band; portfolio — trigger on overall tracking error | any_position |
| cost_budget | float | Maximum total cost (bps) the engine will accept before rejecting a rebalance plan | null (no limit) |
| simulation | bool | When true, returns a plan without executing or reserving orders | false |
| fractional_precision | integer | Decimal places for fractional share quantities (2–6) | 4 |
| fx_overlay | bool | Separate FX-driven drift from price-driven drift before triggering | true |
Start using the rebalancing engine
Request access and receive sandbox credentials within 2 business days.