Banking & FinancialPredictive ML · Agentic AI

Tax-aware rebalancing: proposals in minutes, decisions still human

Drift detection across thousands of household portfolios with tax-lot-aware trade proposals an advisor reviews and approves — turning a quarterly scramble into a continuous process.

EngagementFixed-scope build
Timeline to v14–8 weeks
PatternRepresentative engagement
10×
households reviewed per advisor
Minutes
to a reviewed proposal
100%
trades advisor-approved

The problem

A wealth manager served several thousand households across multiple custodians. Rebalancing happened quarterly, in batches, because that was the most the team could physically process. Between cycles, portfolios drifted — sometimes far outside the bands in the client's own investment policy statement — and nobody knew until the next batch.

The tax handling was the real weak point. Lot selection was done by hand in spreadsheets when there was time and by default rules when there wasn't. Two clients with identical portfolios could receive materially different tax outcomes depending on which advisor did the work and how busy that week was. That is not a defensible way to treat client money.

The hypothesis

Drift detection and trade construction are deterministic problems — constraint satisfaction over a well-defined objective. The genuinely human part is context: the client who is about to buy a house, the concentrated position with sentimental weight, the conversation about realizing gains this year rather than next. Separate the two and both improve.

The build

  • Household data foundation — positions, tax lots, cost basis, restrictions, and IPS constraints unified across custodians into a single household view. This was most of the work and the reason everything else was possible.
  • Deterministic drift engine — current allocation against target and IPS bands, evaluated continuously rather than quarterly, with breaches surfaced the day they occur.
  • Tax-aware proposal optimizer — lot-level selection minimizing realized gains against a per-household gain budget, with wash-sale windows, holding periods, and transaction costs as hard constraints.
  • Suitability and restriction checks in code — concentration limits, restricted securities, and account-type rules enforced deterministically before a proposal is ever shown.
  • Advisor review and approval — every proposal arrives with its rationale, the tax impact, and what changed. Nothing executes without the advisor. The language model drafts the client-facing explanation; it never touches the math.

Design choice that mattered: the model does not compute the trade. Optimization and tax rules are deterministic, versioned, and unit-tested; the LLM's only job is explaining the result in plain language. When a client or an examiner asks why a lot was sold, the answer is a reproducible calculation, not a model's recollection.

Rollout

We ran the engine in shadow against rebalances the advisors had already produced by hand, comparing proposals on drift correction, realized gains, and transaction cost. Where the engine and the advisor disagreed, we sat with the advisor and asked why — which surfaced three real constraints that had never been written down anywhere. Those became rules. We started with a single model-portfolio family before widening.

Results

Households moved from quarterly batch review to continuous monitoring, with proposals generated in minutes rather than an afternoon. Tax outcomes became consistent across advisors, because the lot selection logic is the same for everyone. Advisors reported the most valuable change was not speed but coverage: drift is now caught when it happens rather than up to three months later.

What we'd tell you

  • Keep the optimizer deterministic. Anything touching client money and tax needs to be reproducible on demand.
  • Model tax lots properly or don't claim tax awareness. Naive systems that ignore wash sales and holding periods create real client harm.
  • Capture advisor overrides with reasons — they are your missing constraints.
  • Do not automate execution. Approval is where the client relationship lives, and where the accountability belongs.
← All success stories
Keep reading

More from the field.

Banking & Financial

Consumer lending, decided in hours

60%
faster time-to-decision
files per underwriter
Read the story
Banking & Financial

Early-warning credit risk

60 days
earlier risk signal
↓ roll rates
into later buckets
Read the story
Banking & Financial

The 6 a.m. advisor brief

advisor capacity for client time
6 a.m.
brief ready daily
Read the story
Get started

Bring us a hypothesis. Leave with a system.

Tell us what's eating your team's time. We'll give you an honest read on whether AI is the right tool — and if it is, a scoped v1 with a timeline and cost.