OLTA Finance
Method and dataPaper 15

Index Continuity Through Constituent Migrations: Delistings, Rebrands, and the Stale-Tail Problem

An index is a claim about a basket of instruments through time, and the instruments do not hold still. Tokens delist, redenominate, rebrand, and list on dates that have nothing to do with one another, and every one of these events attacks the same assumption a backtest quietly makes: that a ticker names one instrument with one continuous history. This paper documents three failure modes the OLTA catalogue met in production this quarter — the hard termination (MKR, dead on the venue September 15, 2025), the rebrand-continuation (TON, renamed GRAM at one-for-one terms in June 2026), and the listing gap (MKR and MORPHO, two constituents of the same baskets whose venue lifetimes never overlapped) — and the incident that motivated a structural fix: for three weeks, eight indices published "two-year" statistics that had silently stopped on June 30, because a delisted constituent's dead tail dragged the right edge of every containing basket's simulation window back to its last trade, with no error raised and no disclosure on any surface. The remedy is two mechanisms with deliberately narrow mandates. An availability rule declares any series whose last bar sits more than five days behind the dataset's right edge unavailable: dropped from simulation, weights rescaled, coverage disclosed — and, asymmetrically, fatal to weight computation, because a computed target on a dead asset describes a basket that cannot exist. A continuation splice joins a legacy ticker to its verified one-for-one successor under a boundary guard that refuses any splice whose cross-gap price ratio leaves [0.8, 1.2]; the TON-to-GRAM boundary verified at 1.0000. The paper closes on the governance boundary the mechanisms must not cross: continuity of data is not continuity of product, and a data alias must never silently rename what the committee publishes.

Published
Jul 24, 2026
Read
16 min read
Sections
05
Words
3,104
Author
OLTA Research Desk
Contents05

1. Three ways a constituent's history can break

The multi-source pipeline paper (08) governs one axis of history construction: which venue's print owns which era of an asset whose identity is not in question. This paper governs the other axis: whether the thing the ticker names is still the same instrument at all. The two are orthogonal. A cascade can splice Binance onto a deep-history feed flawlessly and still be wrong about TON, because the question there is not which venue to trust but whether "TON" and "GRAM" are one series or two.

The catalogue met three distinct failure modes this quarter, and they demand three distinct treatments.

Termination. MKR ceased trading on Binance on September 15, 2025, upon the Maker-to-Sky migration. The daily series simply ends: the endpoint still serves the historical klines, the last candle is a legitimate close, and nothing about the data announces that no further candle will ever come. A successor exists — SKY trades on the same venue — but the migration terms were one MKR for 24,000 SKY, and the successor token carries a changed governance and emission profile. That is a redenomination of a transformed claim, not a continuation of the same one, and the correct data treatment is termination: the series ends where the instrument ended, and what replaces the constituent is a composition decision, not a data operation. OLTA resolved it at the composition level — ODFC8 dropped MKR (4 points, redistributed to AAVE and UNI, the Maker lineage already carried by SKY at 18) and OCBE100 swapped MKR for XVS at 1 point, preserving the lending slot and the hundred-name count.

Rebrand-continuation. Toncoin was renamed GRAM effective June 15, 2026, on an 81% community vote: one-for-one, same chain, same balances, no holder action. Binance delisted the TON pairs on June 30 at 03:00 UTC and listed GRAM/USDT on July 2 at 08:00 UTC, converting balances automatically; Bybit had already migrated its spot pairs to GRAM on June 16 in the same event. Economically nothing happened to the instrument — the venue's symbol namespace changed around it. The correct treatment is the opposite of termination: one asset, one series, spliced across the ticker boundary. Section 4 gives the mechanism and its guard.

The listing gap. MKR died on the venue on September 15, 2025; MORPHO listed on October 3, 2025. The two never co-traded, so any basket holding both has an empty date intersection and cannot be simulated at all. This is a composition-level failure rather than a series-level one — each series is individually fine — and it is the only one of the three that fails loudly: the July refresh's first pass returned 82 of 84 indices, with ODFC8 and OCBE100 erroring on exactly this condition. The loud failure was diagnosed and resolved the same day. The instructive contrast is with the silent one.

Failure modeExampleSeries-level symptomCorrect treatment
TerminationMKR, September 15, 2025Series ends without announcement; endpoint keeps serving historyAvailability rule; replacement is a committee decision
Rebrand-continuationTON → GRAM, June–July 2026One instrument's history split across two tickers, with a listing gap betweenContinuation splice under a boundary guard
Listing gapMKR × MORPHOEmpty intersection; basket unsimulatable outrightComposition amendment; the simulator's error is the disclosure

2. The stale-tail problem

A basket simulation runs on the intersection of its constituents' trading calendars. The left edge of that intersection is governed by the youngest listing, and the catalogue already treats it honestly: a short window is printed as a short window (OCBE100's 130 days, bound by its youngest listings, is disclosed as such). The right edge was assumed, until July 23, to be the present — and that assumption is exactly what a terminated series violates. When one constituent's calendar ends, the intersection's right edge quietly moves back to its last bar. No exception is raised, because nothing is missing: every requested date inside the (shrunken) intersection has data. Coverage checks that ask "does this symbol have history?" pass, because it does. The window is simply no longer the window the surface claims it is.

The incident in numbers. TON's Binance history ends June 30, 2026. Eight indices held it — OCI10, OCI20, OCI50, OSB12, OLV8, OQ9, ODG10, OCBE100 — and for every one of them, the published "two-year" statistics computed on July 21 actually ended June 30: Sharpe, drawdown, and correlation figures stale by three weeks, presented as current, with no disclosure anywhere. The one-month tab was empty for these funds — a window that begins after a series ends contains nothing — and the refresh recorded eleven of eighty-four funds skipped on the one-month pass without connecting the skips to a common cause. The discovery was not made by the pipeline. It was made on July 23 by a post-refresh audit triggered by an operator asking why a one-month tab was blank.

Two properties of the failure deserve emphasis. First, its silence is structural, not accidental: intersection semantics convert a data-termination event into a window-length change, and window length was not an audited quantity on the right edge. Second, the contrast with the listing gap is the whole lesson. The MKR–MORPHO empty intersection threw an error and was fixed within hours of first being computed; the TON tail degraded eight funds' published statistics for three weeks. The failure that throws is the one that gets fixed the same morning. The failure that degrades silently is the one that ships.

3. The availability rule

The fix is a definition of "available" that looks at the right edge instead of at mere existence. Let the dataset's right edge be the maximum last-candle timestamp across every series in the load. A symbol whose own last candle sits more than five days behind that edge has stopped trading — delisting, migration, termination — and is treated as unavailable for simulation: it is dropped from the basket, the surviving weights are rescaled proportionally to 100, the coverage ratio is disclosed, and the dropped symbols are recorded. The rule lives in the shared series loader (staleCutoffFromSeries, grace expressed in days against the dataset maximum; filterAvailable, which applies the cutoff, rescales, and reports) and is enforced in all four pipelines that consume price history: the current-state analyzer, the canonical and rolling timeframe passes, and the weight-computation pipeline, alongside the shared loader used by the rebalancing ledger and weight-comparison tooling.

Weight computation applies the rule asymmetrically, and the asymmetry is deliberate. Simulation may honestly drop-and-rescale, because a simulation's mandate is to describe what the available data supports, provided it says so — which is why, under the availability-rule regeneration, OCI10 published its full 730-day window at a disclosed 95% coverage rather than a silently truncated one at a fictitious 100%. (The Section 4 splice then restored the TON leg the same evening, returning the basket to 100% coverage on its listing-bounded 715-day window.) Weight computation may not drop-and-rescale: a computed target vector that omits a published constituent describes a different basket than the one the committee ratified, so the pipeline fails that index outright rather than optimise around the hole. In the July 23 availability-rule run, compute-weights correctly failed OLV8 — TON at 10% is not a weight a computation can reassign; only a composition decision can. You cannot propose target weights on an asset that no longer trades, and a pipeline that would is a pipeline that quietly rewrites compositions. Once the splice made the series whole, the evening run computed OLV8 again on the continued history; the rename itself remains the committee's.

Why five days. The dataset is cross-asset: crypto series carry a bar every calendar day, tokenized-equity series only on trading days. On any Monday the equity right edge already trails the crypto edge by about three days, and a Friday close followed by a long weekend and a market holiday reaches four. Five days is the smallest integer grace that never falsely kills a healthy weekday-only series, while still catching a genuine cessation within a week of the event. The bound is worth stating in both directions: a tighter rule would delist every equity every weekend, and a looser one — thirty days, say — would have let the TON tail poison another full monthly refresh before tripping. Five days accepts at most one week of undetected staleness as the price of never raising a false alarm on a calendar artefact.

The July 23 availability-rule regeneration measures the repair in isolation, before the Section 4 splice restored the TON leg later that day:

MetricBefore (July 21 refresh)After (July 23 availability-rule regeneration)
Indices backtested84/84, with 8 silently truncated at June 3084/84, windows current
One-month window73/84 (11 skipped)83/84 (sole skip: ODER8, a known off-venue data gap)
Rolling statistics75 tickers; 66 on the one-month window83 tickers on every window
OCI10 windowTruncated at June 30, undisclosedFull 730 days at 95% disclosed coverage
Weight computationOLV8 target computed over a dead constituentOLV8 correctly failed under the availability rule (computation later restored by the §4 splice)

4. Continuation splicing

The availability rule handles death. The rebrand-continuation needs the opposite instrument: a way to assert that two tickers are one asset, narrow enough that it can never be used to assert anything else.

Eligibility comes first and it is evidentiary, not statistical. A continuation is declared only for a verified one-for-one conversion: same chain, same balances, no holder action, automatic balance migration at the venue — established from the governance record (the vote, the exchange notices), never inferred from the price series. The declaration is a one-line entry in an explicit map (SYMBOL_CONTINUATIONS, currently exactly one entry: TON to GRAM), carrying a dated comment citing the verification. There is no heuristic that discovers continuations; every splice is a reviewed, attributable decision.

The mechanics are then four steps. The backfill fetches the legacy pair's full remaining history — the venue continues to serve a delisted pair's daily klines — and the successor pair's history. It keeps only successor candles strictly after the legacy series' last bar. At the boundary it computes the continuity ratio: the first successor open divided by the last legacy close. If the ratio leaves [0.8, 1.2], the run throws and refuses to splice — loudly, by design, because a broken continuity silently corrupts every containing basket, which is precisely the failure class Section 2 documents. If instead the successor fetch itself fails, the run degrades to the legacy series alone with a warning, and the availability rule governs the dead tail from there: the two mechanisms compose, with the splice as the first line and the stale-tail rule as the backstop.

The verified case: TON's last close printed 1.60 on June 30; GRAM's first open printed 1.60 on July 2; ratio 1.0000. The 53-hour listing gap between the delisting (June 30, 03:00 UTC) and the successor listing (July 2, 08:00 UTC) is left as a hole in the daily series — no bar for July 1, no interpolation, no synthetic candle. Daily return arithmetic treats the gap as it treats an exchange halt, and at a measured boundary ratio of 1.0000 the spliced join introduces zero artificial return. Fabricating a bridging bar would inject exactly the kind of synthesised print the cascade methodology elsewhere refuses to manufacture.

The guard's width deserves a candid reading. A band of [0.8, 1.2] is wide enough to absorb two days of genuine market movement across a listing gap, so a passing ratio is not proof of continuity — eligibility was already established from the governance record before the map entry existed. What the guard makes impossible is shipping certain misconfigurations silently: a redenomination spliced as if it were a rename (MKR to SKY at one-to-24,000 would miss the band by four orders of magnitude), a wrong successor symbol, a fork token wearing the old name. The ratio check is a tripwire, not a verdict.

When not to splice follows directly. Not at non-unity conversion terms: a redenomination needs a conversion factor, and the mechanism deliberately has no field for one — adding it would turn a narrow safety device into a general adjustment engine, and every adjustment engine eventually adjusts something it should have refused. Not when the successor is a transformed claim: Maker-to-Sky changed the token's governance and emission profile, which is why the catalogue replaced MKR in compositions rather than splice toward SKY, whatever arithmetic a conversion factor could have offered. And not when the boundary ratio leaves the band even under a claimed one-for-one: a market that re-rates an asset twenty percent across a two-day gap is telling you the continuation is not clean, and the correct response is human review, not a wider band.

5. Governance implications

Everything above is data machinery, and its jurisdiction ends at the dataset. Continuity of data is not continuity of product. The splice makes the research series whole; it does not rename what OLTA publishes. The composition library still lists TON; the factsheet, the catalogue card, and the trade surface still display TON; the runtime price path still resolves live quotes by symbol. Each of those is a separate surface with its own change control, and the desk's position is that the boundary should be explicit: a data alias must never silently rename the product, because a composition whose displayed constituents changed without a committee record is a composition nobody governs.

Three consequences follow. First, the rename is a committee action on the governance calendar. The eight TON holders need their published compositions amended to GRAM — a decision with an author, a date, and an announcement, not a side effect of a backfill fix. The distinction matters historically as well as procedurally: before June 15, 2026, the asset was named TON, and archived holdings records should keep the name that was true at the time rather than retroactively pretend the instrument was always called GRAM. The spliced series is one asset; the product record is a chronicle, and chronicles do not get rebased.

Second, runtime surfaces need the same continuation knowledge the backfill has, through their own controlled change. Live pricing, symbol allowlists, and any surface that resolves a constituent to a venue pair will quote a dead ticker even while every backtest is healthy, unless the rename propagates — and conversely, the data-side alias must not leak outward as an uncontrolled rename of the display layer. Continuity has to be implemented once per surface, deliberately, not once in the plumbing and hoped for everywhere else.

Third, the rename question and the replacement question are different questions, and conflating them nearly cost the catalogue a constituent. When TON appeared dead, a governance item was opened to select replacements across the eight holders, and OLV8's weight computation was blocked on the missing asset. The rebrand finding converts that replacement decision into a rename decision — a materially smaller action with a materially smaller turnover footprint — and the continuation splice has already restored the series that computation runs on; what remains with the committee is the rename itself. The interim state was honest by construction: coverage disclosed, weights rescaled, the eight funds running as 90–95% versions of their published selves until the splice made the series whole. What persists until the committee acts is smaller but real — product surfaces displaying a ticker the venue has retired. Honest, and not indefinitely acceptable: disclosure is a bridge, not a destination.

The desk recommends the mechanics be published, not just operated. Index providers rarely document how their backtests behave when a constituent dies mid-window, and the stale tail is an industry-wide silent failure mode precisely because intersection semantics are universal and right-edge auditing is not. Two sentences, recommended verbatim for the methodology page: "A constituent whose venue history ends more than five days before the most recent bar in the dataset is treated as unavailable: it is excluded from simulation, remaining weights are rescaled, and coverage is disclosed. A ticker change with a verified one-for-one conversion is spliced into a single continuous series under a boundary-continuity check; every other migration requires an index-committee decision."


Status: availability rule and continuation splice shipped in the production pipelines (July 23–24, 2026 regenerations); composition renames for the eight TON holders and the product-surface migration to GRAM pending index-committee action. Incident figures are from the July 21, 2026 refresh and the July 23 post-fix regeneration; the TON–GRAM boundary ratio was verified against venue klines during the July 24 endpoint reconnaissance.

Simulated funds, backtested results. Past performance is not a guarantee and nothing here is an offer or a recommendation. OLTA is in public preview: mainnet is planned for H1 2027.