Personalization is easy to sell and hard to build. The moment taxes, tax lots, restrictions, and account count arrive together, building a personalized portfolio stops being a screening exercise and becomes an optimization problem you have to solve correctly, for every account, before the open. PRISM is the engine that does exactly that.
In plain English. A normal fund is one portfolio that every client shares. Direct indexing gives each client their own account holding the actual shares, so it can be shaped around their tax position and their preferences. The catch is that each account then needs its own fresh calculation every night, and the work grows with the number of clients. This page is about getting through the whole list before the market opens. Unfamiliar words? See the glossary.
A pooled index fund is a single portfolio shared by everyone, which is why it is cheap to run — you build it once and the work does not grow when a new investor arrives. Direct indexing inverts that on purpose. Each investor owns the underlying securities directly, in an account shaped around their situation: their cost basis, their concentrated position, their values screens, their state, the gain they cannot afford to realize. That is a genuinely better product, and it is a genuinely harder thing to produce, because now every account is its own problem that has to be re-solved as the world changes.
The promise you make when you sell personalization is not a portfolio — it is a promise to re-solve that portfolio, correctly and on time, for as long as the client stays. Multiply that promise across tens of thousands of accounts and a fixed overnight window, and the comfortable desk discovers a wall it did not see coming.
Each of these alone is manageable. Together, on a deadline, they are the reason most stacks hit a scaling wall between a few thousand and a few tens of thousands of accounts.
Wash-sale windows, lot-level holding periods, and household scope mean the "right" trade depends on history, not just today's prices.
Harvesting and customization pull the portfolio away from the benchmark; staying close pulls it back. The optimizer has to balance both at once.
Every account is a distinct problem, and the count grows faster than assets. The work scales with the number of problems, not the dollars.
You bring the inputs; PRISM returns optimized trades and a deterministic, replayable audit log. The methods are proprietary; the contract is simple.
Prices the whole book before the open — deterministically, at fleet scale.
Wash-sale handling and lot-level tax accounting are built in, not bolted on — every trade respects the household and the holding-period rules.
PRISM consumes the factor model you already trust. Keep your risk view; upgrade the engine that acts on it.
Measured on real US-equity data (Mar–Apr 2026), with losing cases kept in. Comparators are labeled generically.
~144 personalized accounts/sec/core vs ~14 for a commercial CPU baseline — and it parallelizes linearly.
100,000 personalized accounts priced on a single core, versus ~118 minutes for the baseline.
The full harvestable tax budget on a $5M, 192-name book — the only engine measured still harvesting six figures at 5,000+ names.
Move the sliders to your book, return, volatility, and tax rate to see the after-tax wealth a tax-loss-harvesting overlay can recover over time.
A 30-day, buyer-owned matched-workload pilot: PRISM vs your current stack, on your universe, constraints, costs, and tax rules — a pass/fail metric you set before we start, every losing case shown.
Request a matched-workload pilot →