London DataTrading systems technology

Nexus deep diveReference data · used at every stepCompanion to the case study

Reference Data.

What each instrument is, which universe it was in, and since when, when its market trades, and what dividends and splits did to its price, kept as dated records and refreshed by scheduled jobs.

A price series alone cannot say which companies were in an index last spring, which calendar a market keeps, or whether a fall in price was a sell-off or a split. Nexus keeps that knowledge as reference data, and capture, validation, research and trading all read the same records. Four universes maintain themselves: when a company joins an index or a coin enters the ranking, it gets an instrument record and a price feed without anyone editing a list. Each record below is marked with what runs today, including what is still open.

Instruments18,329on record, including 6,305 equities, 540 crypto pairs and 9,396 futures, mostly individual contracts
Universes kept current4refreshed daily: the Russell 2000, the Nasdaq-100, Nasdaq-listed equities and crypto coins traded on Binance
Corporate actions152,491145,858 dividends and 6,633 splits for 3,602 tickers, back to 1962
Calendars5143 exchange timetables and 8 custom calendars, such as 24/5 FX and 24/7 crypto

Read on 2026-10-22 from the reference tables (instruments, memberships and their snapshots, the crypto listing and exchange snapshots, corporate actions, calendars and dataset declarations) and from the jobs' code on the data service's main branch.

01Instruments

One record per instrument

Every series in the store belongs to an instrument record: its name, asset class, currency, tick and contract size, sector and trading calendar. Research, validation and the trader all read the same record.

  • Created on arrival Runs

    When a name joins a universe, its record is created from the source's own details, such as the exchange's tick size for a crypto pair, and it is subscribed to prices. No one adds it by hand.

  • Futures specifications Runs, with limits

    All 9,396 futures instruments carry their currency, tick size, contract size, price multiplier and calendar, 9,313 of them under 47 roots. 8,545 carry an expiry, for most of them the roll schedule's last trading day, which the schedule holds for each of its 8,564 contracts. First notice dates are not yet taken from the exchanges: 2,720 contracts carry a placeholder or an approximation, which nothing should use.

  • Every change logged Runs, with limits

    A change to an instrument's fields is logged with the old value, the new value and the date. The log is noisy: it holds 392,782 name changes for 18,329 instruments, far more than real renames, so it is not yet a clean history of what changed.

  • Listing identity In progress

    A Yahoo symbol does not say which exchange it trades on. Symbols are matched to their exchange and calendar using fund holdings files, which carry each security's ISIN, and Yahoo's own metadata. Each batch is reviewed before it is applied. 28,398 of 28,686 datasets now declare a calendar.

What can be tradedExecution today is through one broker, IG, on a demo account. The equities and crypto on this page are research data.

02Universes

Who was in the index on the day

An equity backtest that uses today's index members has already picked the winners, because the companies that fell out are missing. Nexus records each membership as a dated range, so the history of who was in a universe is kept from the day its record began. Reading it back by date is not finished; the daily lists can be read whole.

  • Dated ranges. A membership opens on the day a name is first seen in the list and closes on the day it is gone. A name that returns gets a new range.
  • Every accepted list kept. Each day's accepted list is stored as an unchanged snapshot, every day since 5 June 2026, so a range can be traced to the lists behind it. A list the guard refuses is not stored.
  • Refreshed daily. The job runs at 02:00 UTC. An empty list is refused, and so is a list more than a tenth shorter than a membership of 100 or more. A refused list leaves the membership as it was.
  • Read as of a date, with limits. The ranges keep names that have left, but the data API's as-of and range reads return only open memberships, so a past universe read through the API is missing its leavers. Research can ask for dated membership; by default it uses today's members.
UniverseSourceMembersExits recordedState
Russell 2000The iShares fund's holdings file; a range opens on the file's date1,973256Runs
Nasdaq-100Nasdaq10119Runs
Nasdaq-listed equitiesNasdaq's listings screener3,9366,991Runs, with limits 763 names have left and rejoined; one has 22 separate ranges.
Crypto coins on BinanceCoinMarketCap's top 5,000, kept to coins with an active Binance spot pair against USDT50136Runs
Dow Jones Industrial AverageA fixed list, as of April 2026300Fixed list
Russell 1000A hand-written list of 233 large companies, not the index2330Fixed list
STOXX Europe 600Loaded in April and May 2026 under another vendor's symbols. 397 have Yahoo prices: 99 through a symbol mapping, 298 because the symbol is the same on Yahoo. The daily run falls back to a 29-name list, which the guard refuses, until a reviewed symbol mapping lets the official file load60021Not refreshed since 3 May 2026.
Members and exits from the membership ranges, read 22 October 2026. A fixed list runs through the same daily job but never changes. Ranges begin in April 2026, and in May for the Nasdaq-listed universe and the Russell 1000.

The CoinMarketCap listing

Each day the top 250 coins by CoinMarketCap rank are refreshed and merged into the previous snapshot, and the changes are recorded.

Snapshots since 10 April 2026247
Coins held, all days merged8,476
Field changes recorded60,525

Coins outside the day's top 250 are carried forward unchanged, and the daily refresh marks none as gone.

Crypto exchanges

A snapshot of the exchanges from CoinGecko, now taken weekly on Mondays, with the differences from the last one kept.

Snapshots since 10 April 202676
Exchanges in the latest, 19 October952
Changes recorded61,573

For your firmMembership from before April 2026 has to come from an index provider or a data vendor. It loads into the same dated ranges as the history recorded since then.

03Corporate actions

Dividends and splits, kept beside the price

A split cuts the price overnight and a dividend lowers it on the ex-date. Neither is a move a strategy could have traded. Nexus stores the events beside the prices and applies the dividends when a series is read. Splits are not applied on read, which leaves a gap, set out in step 3.

  1. 1

    Capture

    Every day, for every daily Yahoo ticker

    Dividends and splits are fetched once a day for every active instrument with a daily Yahoo subscription, and stored with their ex-date and amount. A stored event is never overwritten: the first value is kept.

    Runs

    145,858 dividends and 6,633 splits for 3,602 tickers, with ex-dates from 1962 to 21 October 2026. The latest were stored at 02:26 UTC on 22 October.

  2. 2

    Unknown is not none

    A refused request is recorded as refused

    Since August 2026 the vendor has refused deep history for some thin instruments, mostly warrants and rights. An empty answer to a refused request used to look like a stock that had never paid a dividend. Now the refusal is recorded in the job's log, and refused tickers are asked again in rotation.

    Runs, with limits

    The data API does not yet mark a refused ticker, so an empty answer there does not mean none.

  3. 3

    Adjust on read

    The dividend-adjusted series is built when it is read

    The data API builds a dividend-adjusted series from the stored price and the dividend record, scaling earlier prices at each ex-date. The adjustment is not stored, so it can always be checked against the events behind it.

    Runs, with limits

    The vendor restates its history after a split, but a later download never replaces a stored daily bar. A split before a series was first downloaded is already in its prices; a split after that leaves a jump, and the dividend-adjusted series keeps it. KLA's stored closing price, before adjustment, falls from 2,307.54 on 11 June 2026 to 252.91 on 12 June, the day of its 10-for-1 split.

04Calendars

When a market trades, and what a series says it is

Validation and trading both need to know whether a missing bar is a gap or a closed market, and whether a price is adjusted. Each dataset declares the answers, so no reader has to guess.

  • 51 calendars. 43 exchange timetables with their sessions, breaks and holidays, and 8 custom calendars such as 24/5 FX and 24/7 crypto. Four soft-commodity calendars were added on 21 October 2026; pages read on 15 October count 47. Market status, open, closed or holiday, is recomputed every five minutes, as set out in Validate and clean.
  • Declared per dataset. Each of 28,686 datasets declares its timestamp convention, its time zone and which way its price is quoted; 28,398 also declare a calendar.
  • Corporate-action basis. 21,115 datasets are declared split-adjusted and 7,232 not applicable, as for an FX rate. 339 declare no basis yet. Prices stored before a later split are not restated for it, whatever the declaration says.
  • Roll method. 222 futures series are ratio back-adjusted, 39 difference back-adjusted and 444 joined as raw splices. 27,642 need no roll, and 339 declare no method yet.
  • Checked, not trusted. Validation measures which way a price is quoted and whether prices sit on the declared tick grid. A wrong declaration is treated as a reference-data fault and flagged for review.
  • Broker contracts. The broker's dealing terms for each market, such as minimum size, margin and stop distance, are kept as observations that are only ever added to: 4,242 for 138 broker symbols since 30 July 2026.
05Point in time

What is point in time, and what is not

Validate and clean sets out what was known, and when, for prices. Here is the same question for reference data.

RecordPoint in timeHow
Index and crypto membershipWith limitsRecorded as dated ranges from April 2026, with each accepted daily list since 5 June 2026. The data API's reads return only open memberships, so they miss leavers; the daily lists since 5 June 2026 can be read whole.
The CoinMarketCap listingWith limitsA daily snapshot since 10 April 2026 of the top 250 coins, merged into the last. Other coins are carried forward, and the daily refresh marks none as gone.
Crypto exchangesYesSnapshots since 10 April 2026, with the differences kept.
Broker contract termsYesObservations that are only added to, each with a content hash, since 30 July 2026.
Instrument fieldsWith limitsLogged field by field, but the log is noisy; see Instruments.
Corporate actionsNoEx-date and amount, and the time each event was first stored. Events from before capture began were stored long after their ex-date, there is no announcement date, and a later correction from the vendor is not recorded. The adjusted series applies every stored dividend, whenever it arrived.
Futures contract specificationsNoCurrent values are held for the fields listed under Instruments. Their dated history is not: the table for it is built and empty. Exchange rulebooks and product guides for 40 of the 47 roots, each with a recorded checksum, were captured on 1 September 2026; they have not been reviewed, and nothing has been loaded from them.
06Stated plainly

What runs, stated plainly

Each line here was checked against the database or the code on 22 October 2026.

Runs today
  • Instrument records created when a name joins a universe, with a price subscription.
  • The daily membership refresh at 02:00 UTC for the Russell 2000, the Nasdaq-100, Nasdaq-listed equities and crypto coins traded on Binance, with a snapshot of every accepted list and a guard against a bad fetch.
  • Dividends and splits fetched daily for every daily Yahoo ticker, with refused requests logged and asked again in rotation.
  • A dividend-adjusted series built when it is read.
  • The daily CoinMarketCap snapshot of the top 250 coins and the weekly exchange snapshot.
  • Current futures specifications for every futures instrument: currency, tick size, contract size, multiplier and calendar, and the roll schedule's last trading days.
  • 51 calendars, and declarations on 28,686 datasets.
  • The broker's contract terms kept as a history that is only added to.
Runs, with limits
  • Reading past membership. The data API's as-of and range reads return only open memberships, so names that have left are missing from a past universe read through it. Research uses today's members by default.
  • Membership history begins in April 2026, and in May for the Nasdaq-listed universe and the Russell 1000. A longer backtest has to use today's members, with the survivorship bias that brings.
  • The Nasdaq-listed universe flickers. A name missing from one day's list is closed, and reopened when it returns. 763 names have done this; one has 22 separate ranges.
  • The Russell 2000 is dated by the fund's holdings file, which on 22 October was two days old, so a range can open before Nexus had the file.
  • The instrument change log is noisy: 392,782 name changes for 18,329 instruments.
  • Splits after first download leave a jump in the stored prices, because a later download never replaces a stored daily bar and splits are not applied on read. KLA's stored closing price, before adjustment, falls from 2,307.54 on 11 June 2026 to 252.91 on 12 June, the day of its 10-for-1 split.
  • Dividend units around a split. Each dividend keeps the units of the day it was first stored, and each price the units of the day its series was first downloaded, so around a split they can disagree either way: KLA's dividend of 18 May 2026 is applied at a tenth of its size, and the iShares Russell 1000 Growth fund's (IWF) dividends before its 4-for-1 split of 29 April 2026 at four times theirs.
  • Repeated splits. 58 splits appear twice, with the same ratio, under two ex-dates up to 45 days apart, and are counted twice in the totals above. Splits are not applied on read, so the adjusted series is not affected.
  • A refused corporate-action request is logged by the job, but the data API does not mark the ticker, so an empty answer there does not mean none.
  • The CoinMarketCap snapshot refreshes the top 250 coins only; the rest are carried forward, and the daily refresh marks none as gone.
  • One source each. Yahoo supplies the equities and Binance the crypto prices, so neither is checked against a second vendor.
Open or held
  • The STOXX Europe 600 has not been refreshed since 3 May 2026. Its official file uses another vendor's symbols, and a reviewed mapping to Yahoo symbols is needed before it can be loaded. Its 600 stored members carry those symbols too, and 203 of them have no prices.
  • Listing identity. 288 datasets still declare no calendar.
Not built
  • Point-in-time corporate actions: announcement and record dates, and corrections from the vendor.
  • Other corporate actions: mergers, spin-offs, ticker changes and rights issues.
  • A live source for the Dow Jones Industrial Average and the Russell 1000, which run from fixed lists.
  • Recording coins that leave the CoinMarketCap listing.
  • A dated history of futures contract specifications. Current values are held for the fields listed under Instruments; the table for their history is built and empty.
  • First notice dates from the exchanges. The 2,720 held are placeholders or approximations.
  • This page describes the data platform. It shows no strategy returns and makes no performance claim. Execution is through one broker, IG, on a demo account; the equities and crypto here are research data.
  • Counts move as the jobs run; each is dated to the day it was read.

Sources, read 2026-10-22: the instrument, membership, snapshot, crypto listing, exchange, corporate action, calendar, dataset declaration and broker contract tables in the market-data store; the constituents, corporate actions and price jobs' code on the data service's main branch; and the universe resolver in the research service.

07Reading

Reading

Survivorship bias

  • Brown, S. J., Goetzmann, W. N., Ibbotson, R. G. and Ross, S. A. (1992). Survivorship bias in performance studies. The Review of Financial Studies, 5(4), 553–580.

On this site

Running equities or crypto?

I can put dated universes and corporate-action records around your data, or audit the ones your backtests already rely on.