Changelog

Every change is written down here

Our rule is nothing is quietly edited: every basis switch, every new index, every retired endpoint ships with a new version number and a log entry. This page is the complete product and site timeline; technical detail of methodology versions lives in methodology §11, and citation formats track the current version on the citations page.

v0.2.1-real
current data basis
2026-10-30
first entry
2026-11-11
latest update
14 entries
logged changes

§1Full timeline

Newest first. Category tags: basis affects index levels and recomputation; index family covers new index pages and machine-readable endpoints; dataset covers downloadable archives; site covers page and API-layer changes; fix covers defect corrections that do not touch the basis.

DateCategoryChange
2026-11-12datasetDCPI sixth price cell: Xcel Minnesota A97 verified as full level: pulled from MN PUC eDockets — the final compliance filing 20267-234085-01 (2026-07-13) and the approving order 20266-232841-01 (2026-06-12) — and verified line by line against MPUC No. 2, Section 5, Sheets 32.2–32.3: on-peak demand 24.66 (Oct–May) / 29.25 (Jun–Sep), off-peak excess 3.35 $/kW-mo, energy 2.751c on-peak / 1.448c off-peak, voltage discounts (transmission-transformed 2.35 + 0.334c, transmission 3.35 + 0.329c), a $9,000/mo customer charge, and on-peak = 9am–9pm weekdays less seven holidays (3,048 h/yr, 34.83%). Under the same pre-registered basis (80% load factor, transmission level, on/off-peak blended by hour share) the cell computes to 60.1 summer / 52.2 winter / 54.8 $/MWh annual. Recomputing the reading as the unweighted median of all full cells leaves it unchanged at 64.0 $/MWh (six cells). The 11-row ledger moves from 5 to 6 full rows with none left pending, and the wording for the other half of the price story is tightened to "the rate skeleton is public, the customer-level ESA dollars are not" (Pine Island, docket 26-170, still treated as trade secret). Also updated: dcpi.html / en/dcpi.html rebuilt (six-row price table, rewritten threshold and reading notes, component footnote carrying the three voltage-level variants 54.8 / 56.5 / 63.8), api/v1/dcpi/tariffs.json and latest.json regenerated, three references in llms.txt, a dated "2026-11-12 update (sixth cell)" line at the top of weekly issue 5 (its body keeps the 2026-11-11 basis rather than overwriting a published number), the three hardcoded "five rate sheets" phrases in _measures_data.py and the generator removed, and the build-time median assertion made cell-count agnostic. Archived: three data/dcpi/src/xcel_*.pdf files (petition, order, final tariffs) plus Turnstile-capable fetch helpers _cdp_dom.js / _cdp_grab.js / _cdp_blobdl.js.
2026-11-12siteFAQ pages shipped (GEO batch 1): new faq.html / en/faq.html built to the "direct answer + concrete number + on-site source" standard — 20 questions covering the index conventions (what it is / 432.3bp / 13 bonds, 6 issuers / the issuer list), how the three readings differ, why there is no daily series, data sources and the replication package (DOI), the 2031 maturity wall ($17.86B / 63.6%), DCPI at 64.0 $/MWh, GRVI pending, usage limits (no ratings, no investment advice), the Hut 8 exclusion and the 370.4 counterfactual, the three integration paths (API / MCP / llms.txt), and the citation format. Every question deep-links to its on-site page; a FAQPage JSON-LD block (20 Q&A pairs, generated from the same source as the page, with datePublished/dateModified) is statically embedded; zh/en are generated together by _build_faq.py (edit the generator, not the HTML). In step: the Caddy redirects /faq.html → /data.html and /en/faq.html were removed (the pages are now real); data.html / en/data.html FAQ sections gained a "20 questions" link; llms.txt gained a FAQ section; sitemap now 108 URLs (FAQ at 0.8/weekly). SSR verified: raw HTML fetched with a GPTBot user agent contains the full body text (six-page keyword spot-check all green); robots.txt already allows 17 AI crawlers (verified this round, previously in place). Index readings and all numeric conventions unchanged.
2026-11-12siteAgent-surface hardening + English-visitor language hint (driven by traffic analysis): an analytics review surfaced two real problems, both fixed same day. (1) AI agents guessed API paths and got 404s (AWS Beijing IPs with _agent/_audit datestamps probing /api/measures, /data/dcpi/tariffs.json, /faq.html, /en/paper.html) — Caddy now carries 9 permanent 301 redirects mapping common guesses to the real endpoints (including /en/paper.html → /paper.html, the working paper itself); llms.txt gained an "agent guessed paths → canonical endpoints" section (with the MCP endpoint and entry points); the 404 pages (zh/en) now list the canonical endpoints including llms.txt and openapi.json. (2) 85% of English-locale visitors landed on Chinese pages with a 5-second median dwell — Chinese pages now show a dismissible English-edition banner for non-Chinese browsers, deep-linking to the /en/ counterpart of the current page; remembered in localStorage once clicked or dismissed; never shown to Chinese browsers, on English pages, or on pages without an English edition (pay/paper). Verified in a real browser across four scenarios (en-browser zh-page shows ✓ / zh-browser hidden ✓ / en page hidden ✓ / subpage deep links correct ✓). Index readings and all numeric conventions unchanged.
2026-11-12siteOpenAPI examples fixed + issue-5 regression probe: (1) The 200-response examples in openapi.json had drifted from live responses on four paths — latest / methodology / real/index / status still carried the v1.0 DOI 10.5281/zenodo.24116989 (the examples were never re-synced after the v1.1 replication package went live on 2026-11-12; a recurrence of the F-08 class). All four re-captured from live responses and updated to 10.5281/zenodo.24142915. status.json's generated_at and checks[].ms are hourly-refresh volatile fields; the sync script now freezes them to a placeholder (…), so _openapi_sync.py --check is idempotent at zero drift again. (2) Retired the issue-4 probe (it pointed at a rotated page) and shipped _probe_weekly5.js: 14 assertions covering the issue number / 11 ledger rows / 80–90% floors / 12–17-year terms / 31–56% demand share / the 19.9 cross-state gap / the 3.934 two-tier blend / the 4.513 TOU peak / the red-line sentence / table count / nav injection / zero Chinese residue on the English page (the "中文" language-switch label excepted), with an explicit PASS/FAIL verdict (the old probe only printed); both pages currently all green. No API response or numeric convention changed.
2026-11-12sitePress kit: seventh story angle added, state-count wording fixed: (1) new angle card "The other half of the power contract" (80–90% floors, 12–17-year terms, Evergy exit fee = minimum monthly bill x remaining months, I&M's 19.9 $/MWh cross-state gap sitting entirely in the demand charge; links to weekly issue 5), zh/en in step, headline count 6 to 7; (2) fixed the existing DCPI card's state-count wording — "five cells assembled from nine states" was imprecise: the ledger does span 11 tariffs across 9 states, but all 5 verifiable price sheets sit in 3 states (Missouri x3, Indiana, Michigan); both language versions rewritten accordingly.
2026-11-12contentIssue 5 same-day revision (zh/en in step): (1) Tightened the seasonality sentence closing section ② — the original "one utility writes seasonality into the demand charge, another into the energy charge" did not match the rate sheets (both Evergy sheets price energy flat all year at 2.988/2.881¢ and nudge only the demand charge, by exactly $2.00/kW-mo; the utility that writes seasonality into energy is Ameren itself). Rewritten to state each case: Ameren in both charges (winter demand halved, a 26.2 seasonal gap), Evergy demand-only (3.4), I&M none (summer = winter). (2) Native-language pass on the English page: spelling normalized to "data center" (7 instances of "data centre", matching the dominant convention on en/dcpi and siblings) and seven phrasing tightenings. The reading, every table figure and all conventions are unchanged.
2026-11-12datasetEvergy grid-charge notes corrected (verified against the EFIS rate sheets): re-read the original EFIS tariff filings JE-2026-0104 / JE-2026-0105 (Original Sheet No. 77 / No. 187) line by line; both grid charges carry no seasonality (a substation tier and a transmission-connected tier). Evergy Metro's note "transmission 2.200, annual difference ~0.1 $/MWh" was wrong: 3.003 − 2.200 = 0.803 $/kW-mo, which at an 80% load factor (584 kWh/kW-mo) is ≈1.4 $/MWh (apparently copied from West); corrected with the recomputable mechanism figure. Evergy Missouri West's "~0.1" verified correct (4.811 − 4.750 = 0.061 $/kW-mo ÷ 0.584 ≈ 0.1), annotated with its mechanism figure as well. zh/en notes and the machine-readable endpoint api/v1/dcpi/tariffs.json regenerated together. The reading and every price input are unchanged (cells keep the substation tier, $3.003 / $4.811; 64.0 $/MWh stands). Also folded into _build_measures.py: four accent-red literals (#A8355A to var(--accent-family)) and the hand-patched "see the data story" callout sentence — both had been post-deploy hand edits that a rebuild would silently revert; both are now fixed at the source (caught and rooted out by this round's rebuild).
2026-11-12contentWeekly issue 5, "The other half of the power bill", published; issue 4 archived as a data story: (1) Issue 5 is a DCPI methodology deep-dive, deliberately separated from the first-reading story in story-dcpi.html — only 5 of the 11 ledger rows carry a recomputable price (partial x2 / none / formula / pending / confidential = 6 rows without one); the five cells split into an energy component of $28.8–39.3 and a demand component of $17.5–40.4 per MWh, demand being 31–56% of the annual effective price; all of I&M's 19.9 $/MWh cross-state gap sits in the demand charge (Indiana's energy charge is actually 3.0 dearer); worked arithmetic for I&M Indiana's two-tier energy (410 kWh/kW blend at 3.934c) and Michigan's time-of-day blend (on-peak 4.513c, blended 3.632c). Terms layer listed row by row: 80–90% minimum-demand floors, 12–17-year terms, Evergy exit fee = minimum monthly bill x remaining months (>=12) with collateral of two years' minimum bills, Entergy and ComEd at the two ends of the spectrum. No new reading is published; 64.0 $/MWh and the rule are unchanged. (2) Issue 4 (the used-A100 anomaly) is archived at /story-a100.html (zh/en + a 1200x630 share card); llms.txt, the press asset section (issue 3 now points to story-crwv.html) and the sitemap data-story group follow. (3) Fixed the terms-ledger count on story-dcpi.html (9 rows to 11 rows, per data/dcpi/tariffs.json).
2026-11-12datasetGRVI A100 denominator: negative-search audit published (exhaustive SEC full-text sweep, 2026-11-12): across EDGAR full text from 2019, all form types, every one of the 823 "A100" hits was classified — the buyer-purchase phrase matrix ("purchased A100" / "A100 GPUs for $" and six more) returned zero hits (sanity check: the same phrasing recalls all nine IREN filings behind the H100 anchors, so the queries do catch buyer disclosures when they exist); every GPU-context issuer (CoreWeave, Recursion, TeraWulf, Applied Digital, Super Micro, VivoPower, Cyxtera, Boost Run, OSS, NetApp, Amazon, Infosys, eight listed miners) was read in the original and ruled out — the genuine mentions are deployment narratives, hosting notes or seller marketing, none a buyer-side quantity-times-amount (Recursion discloses only the count: BioHive-1 = 40 DGX A100 nodes, no amount); the rest fall into five false-positive categories (poly-A tails / an AAV vector name / a clinical endpoint / ABS tranche codes / part numbers). Conclusion: no buyer-side A100 unit price exists in SEC filings; the denominator stays unanchored rather than being downgraded to third-party compilations of ~$10,000/$15,000. The full audit (queries, sanity check, per-issuer exclusions, false-positive taxonomy, conclusion) ships as the negative_search field of api/v1/grvi/anchors.json, with the GRVI page disclosing it in both languages. No reading is published (the n>=5 threshold and the anchoring rule are unchanged).
2026-11-12datasetReplication package v1.1 released (version DOI 10.5281/zenodo.24142915; the concept DOI 10.5281/zenodo.23977166 now points to v1.1): thirteen files — v1.0 plus readings_per_bond.csv (per-bond three readings), amortisation_audit.json (structure audit) and issuer_debt_coverage.json (6-issuer coverage); recompute.py gained the curve-adjusted assertion (361.3, remaining-maturity method; v1.0's 359.3 was the deprecated original-maturity algorithm), with README / data-dictionary / methodology patched accordingly. The site zip download/ncsx-dataset-v1.1.zip is byte-identical to Zenodo; the citations page, llms.txt and the APIs switched the "preferred for academic citation" DOI to v1.1 (the v1.0 DOI still resolves). One packaging-timing artefact disclosed: the doi field inside the frozen NCSX-IS_index.json still reads the v1.0 DOI (the package was assembled before v1.1 received its own DOI, and Zenodo freezes files at publish) — cite the package via the v1.1 DOI or the concept DOI; see the Packaging note on the archive page. No index level, constituent or numeric basis changed; still v0.2.1-real / 432.3bp.
2026-11-12basisAmortisation self-audit correction + issuer debt coverage 6/6: while building the per-issuer coverage table we re-read all six issuers' 10-Q / 10-K debt notes and found — and fixed on the spot — two stale claims. (1) The old phrase "the full set of public USD bullets" was wrong for 9 of 13 bonds: nine bonds ($20.31B, 72.4% of face — the entire secured tier) carry clauses amortising principal semi-annually once facilities complete / leases commence (standard data-centre project-financing structure); only CoreWeave's 4 unsecured notes are true bullets. The phrase is retired everywhere in favour of "the full set of public fixed-rate USD notes"; methodology §2 gained a per-bond amortisation audit table (all 13 quoted from the filings), and the Hut 8 / Beacon Point exclusion rationale was reframed in term-structure terms: 16.5-year stated maturity with amortisation as the repayment mechanism + DSCR + single-tenant lease is an unbounded duration mismatch, versus the bounded, balloon-dominant overlays on the nine in-index ~5-year notes (CORZ's own maturities table shows 82.8% of principal as a maturity balloon; APLD 7.000% starts at 2.70% p.a. stepping up 0.50%). (2) CoreWeave debt coverage revised from 28% to 21.8%: the old denominator omitted OEM/software financing ($5.1B) and the non-recourse DDTL 4.0 ($2.8B); now on the full filing stack of $35.55B (ties exactly to its future-principal-payments table). The data page gained a 6-issuer coverage table (all-six total 42.8%; GLXY incl. subsequent events; CIFR's $333mm add-on counted in the denominator). Machine fields amortisation_audit (13 bonds) and issuer_debt_coverage (6 issuers) added to methodology.json. No index level, constituent or numeric basis changed; still v0.2.1-real.
2026-11-12siteCounterfactual calculator and per-bond readings table live (90-day roadmap Phase 2 items from the external diagnosis): (1) the data page gains an interactive calculator next to the 370.4bp counterfactual — toggle the two excluded Hut 8 DC / Beacon Point amortising SPV notes in and out, and the notional-weighted level is recomputed live in your browser from the numbers on the page (432.3 ↔ 370.4; single inclusion gives 402.7 / 392.9), with a mandatory "semi-annual amortisation + DSCR + single-tenant lease, not comparable to bullets" warning whenever either is folded in; (2) the index page's three-readings section adds a per-bond table (all 13 bonds × issue / curve-adjusted / N-PORT implied, with per-bond deltas and both benchmark lookups) — 7 bonds have N-PORT holdings, 6 are left blank rather than guessed; (3) new machine-readable file download/ncsx-readings.csv, regenerated by the _build_readings.py builder with 432.3 / 370.4 / 616.4 guard assertions baked in. No level or basis changed; still v0.2.1-real.
2026-11-11siteNew status page status.html (bilingual) (external diagnosis F-14): the server re-checks 11 endpoints and the as-of freshness of 10 datasets every hour (:05), writing the results verbatim to /api/v1/status.json; the page reads it at runtime, so the HTML itself never goes stale. The page also carries the operations & security disclosure (operator / data boundary / no accounts / analytics and logging scope / IP used only for rate limits and country-level stats / payment boundary). Availability principle: monitoring began 2026-11-11; there is no data before that, so no uptime percentage is claimed. Generator status_gen.py runs from server cron; nav and footer gained the entry.
2026-11-11apiA third reading is published: curve-adjusted 361.3bp (−71.0) (external diagnosis F-04). NCSX-IS 432.3bp is the issuance-date spread with pricing dates spanning 14 months; the curve-adjusted reading holds coupons fixed and swaps only the curve, interpolating the as-of date at each bond's remaining tenor. The key line: the −71.0bp is exactly the Treasury curve shift itself (+71.0bp notional-weighted; +25 to +100bp per bond) and carries no credit information — which is why it is called curve-adjusted rather than revalued, and why it must not be read as "today's value". For credit itself use the N-PORT fund quarter-end implied layer (616.4bp, 7 bonds, 184.1bp above issuance). Machine fields revalued_spread_bp / revalued_curve_contribution_bp (index.json / latest.json / revalued_reading in methodology.json). By tier: secured 317.9 (−73.3), unsecured 475.1 (−65.0). A method error was also corrected: §10 used to say 359.3bp, which looked up today's curve at the original tenor-at-issue — pricing a bond with a year elapsed as a five-year. At remaining tenor it is 361.3bp (+2.0bp). 432.3 and every constituent figure are unchanged; the dataset stays at v0.2.1-real.
2026-11-11siteThe llms.txt preview on the API page now reads the file live from the site root instead of carrying a hand-copied block — that copy had long drifted from the real file (it still said 359.3bp and used the old structure). One document, one version.
2026-11-11apiThe unsecured tier is now described as a single-issuer snapshot (external diagnosis P0): /api/v1/real/index.json gained secured_issuers / unsecured_issuers / unsecured_tier_note, and /api/v1/latest.json gained issuers and note under levels.unsecured — all four bonds behind 540.1bp are CoreWeave, so the correct citation is "CoreWeave unsecured 540.1bp", not "the unsecured tier at 540.1bp". A factual error on the constituents page was also corrected: it claimed 144A notes carry no public CUSIP, but 7 of the 13 bonds have a real CUSIP disclosed in Form N-PORT fund holdings and are now listed bond by bond on the fund-valuation layer; the other 6 have no public source and are left blank rather than guessed. No measured value changed.
2026-11-11sitePricing page rewritten line by line against v0.2.1-real (external diagnosis P0): Pro moves from "delivered once TRACE lands" to live immediately with four deliverables — per-bond pricing-date series, re-mark to today's UST curve, N-PORT quarterly comparison, issuer debt coverage; "full index history" and "per-bond 30-day paths" (capabilities that do not exist) were removed; the Free tier drops the key button and quota figures for "no key, no metering, no rate limit". We only sell what we can prove today.
2026-11-11siteHomepage gained a three-reading strip (issuance 432.3bp → fund marks 616.4bp, +184.1bp → sector 334bp) plus a coverage note (CoreWeave debt coverage 28%); the data page gained "what the exclusions are worth: a 370.4bp counterfactual (−61.9bp)"; openapi.json examples are now synced from live responses with four newly declared endpoints (_openapi_sync.py --check detects drift); the English homepage states the Neocloud Credit Spread Benchmark positioning.
2026-11-11index familyNew data story story-dcpi (bilingual, with a share card): the full derivation of the DCPI first reading (64.0 $/MWh), cell-by-cell detail for the five tariffs, the 19.9 $/MWh same-company cross-state gap, the four admission tiers and the E3 third-party reference (labelled as not this site's basis). Linked from the homepage data-story strip and the DCPI index page.
2026-11-11siteMethodology gained §14 sample-growth watch list: five trigger paths (an existing issuer selling a new bullet bond / a convertible issuer selling straight debt / amortizing SPV debt turning bullet / a private compute company entering public debt / a new entrant), each with a verifiable EDGAR monitor, linked to the Filing Radar; the machine-readable methodology.json gained an expansion_watch field. Explicitly a forward disclosure — not a prediction, not investment advice.
2026-11-11siteSEO batch: all 23 over-length English page titles (title / og:title) shortened to 65 characters or fewer (the longest was 101 and got truncated in search results and social cards); facts / events were fixed inside the server-side generator templates so the daily rebuild will not overwrite them.
2026-11-11datasetThe GRVI data archive is now a purchasable product (¥349 / $49 one-time buyout at pay.html?sku=grvi_archive, Alipay / USDT): three collection layers (1,126 raw / 46 clean listings / rejection log), the SEC anchor ledger (five IREN 6-K calibrations) and 12 months of snapshot pushes; the pricing page gained a "data products · ships now" panel plus a custom-verification-report inquiry entry.
2026-11-11siteThe stdio package @ncsx/mcp v0.3.0 is now on the npm registry (npm i -g @ncsx/mcp; the site tgz direct link stays as a mirror); a weekly external-citation watch was automated (third-party citations go into a ledger; four consecutive weeks with zero new hits triggers a seeding reminder).
2026-11-11sitePurchase messaging unified: the pricing banner moved from "subscriptions are not yet purchasable" to "the Pro early bird is on sale now" (¥349 locked / Alipay / USDT, full refund before launch — consistent with the checkout page); the retired "seed phase" wording was removed from the English page. Methodology gained §13 governance commitments (revision policy / 5-business-day correction response / recomputability boundary / citation attribution). The press kit gained the issue-4 GPU listing angle, the DCPI first-reading material and the 46-listing snapshot CSV.
2026-11-11fixThe homepage HY OAS static fallback moved from 3.40% / 11-03 to 3.34% / 2026-11-09 (non-JS readers now match the runtime values); assets/js/weekly.js — taken offline on 2026-11-06 but still deployed, containing old three-tier rendering code and referenced by no page — was physically removed; a consistency checker (forbidden terms / issue sync / DOI / levels / reading gates / remote staleness) now runs before every release.
2026-11-11datasetReplication package v1.0 released: version DOI 10.5281/zenodo.24116989 (10 files incl. README and data-dictionary, byte-identical to the site zip); the concept DOI 10.5281/zenodo.23977166 now points to v1.0, while snapshot DOI 10.5281/zenodo.23983572 is retained for audit reconciliation. Cite the v1.0 version DOI.
2026-11-11index familyDCPI (data-center power price index) went live with its first reading of 64.0 $/MWh: the unweighted median of annual effective power prices across five full-disclosure tariff cells, with the rule pre-registered before the number. First non-NCSX-IS official reading in the family.
2026-11-11siteSite-wide UI/UX audit and fixes: WCAG contrast failures reduced from 2,431 to 26 (the rest transient/false positives), site-wide minimum font size raised to 11px, keyboard focus styles added, runtime Chinese leakage on English pages eliminated (5 pages to 0).
2026-11-11fixThe FRED reference series (US HY OAS) stalled for 5 days due to a server backup-directory permission issue; after the fix, sector as_of moved from 2026-11-04 to 2026-11-09 and daily updates resumed. The English lang attribute of the two server-generated facts/events pages was corrected.
2026-11-10index familyMeasures index family launched: GRVI (GPU residual value) / CIDX / DCPI / DAVI plus the hub page measures.html, with machine-readable endpoints under /api/v1/measures/; the homepage switched to a five-slide index carousel. The GRVI collection pipeline is running (46 eBay listings); until the n≥5 threshold is met, the reading shows "collecting".
2026-11-10siteCitation attribution finalized: formal citations (APA/BibTeX/Zenodo creator) credit Tian, Brian (affiliation: SpreadBench); one-line format Tian, B. (2026). … SpreadBench. https://spreadbench.com/. Both Zenodo records updated in place (DOIs unchanged).
2026-11-08siteData license page v1.0 published: data under CC BY 4.0 (free for academia, teaching and press with attribution), replication code under MIT, three commercial tiers (display / derivative / resale).
2026-11-06basisThe seed series (v0.1.x demonstration data) was physically removed from the entire site: data.js slimmed to META+NOTES, and neither the ticker tape nor the API carries any fictional fallback numbers; legacy API endpoints now return formal retirement notices (see §3).
2026-11-06basisSample boundary finalized: five admission criteria (AI compute infrastructure issuer / bullet fixed-rate corporate bond / USD / verifiable against SEC filings / ≥ $500mm per bond) and five exclusion classes; the two Hut 8 amortizing SPV bonds are not merged (the mechanical counterfactual of 370.4 bp (−61.9 bp) is disclosed in methodology §2 as a contrast only, not an index reading). Confirmed that the 13 bonds are the full population of public USD bullet bonds in the sector, not a sample.
2026-11-05basisv0.2.0-real basis switch: from unlicensed TRACE secondary trades to "SEC coupon minus pricing-day Treasury, face-value weighted"; the family reduced from three tiers to NCSX-IS plus secured/unsecured; the sample replaced 20 seed bonds with 13 real ones. NCSX-IS at 432.3 bp (secured 391.2 / unsecured 540.1).
2026-11-05basisv0.2.1-real errata: GLXY maturity corrected to 2031-08-01 (verified against SEC 10-Q + N-PORT); L3 marks layer 5→7 bonds / $8.6B→$15.4B / 715→616 bp. Index levels and constituents unchanged.
2026-10-30basisv0.1.1 seed series published (retired): three-tier levels, the 90-day series, attribution and trade detail were all demonstration data, not real trades. Retained as a historical archive only.

§2Versioning & errata rules

  • Basis changes bump the major version: anything that moves index levels or recomputation results (e.g. v0.2.0) ships a new version number and a technical entry in methodology §11.
  • Errata bump the minor version: single-point corrections (e.g. the v0.2.1 GLXY maturity) also bump the version; prior versions remain available — never edited in place.
  • Site changes are logged here: page, API, license and dataset-archive changes do not touch the basis and are recorded on this page only.
  • Dataset DOIs are layered: the concept DOI always resolves to the latest version; version DOIs freeze a snapshot, and the snapshot DOI serves audit and reconciliation.

§3Retired endpoints

The following v0.1.x-era API endpoints were retired on 2026-11-06 and now return a formal retirement notice ({"status":"retired","data_status":"retired_seed"}) with no data:

EndpointReason retired
/api/v1/history.json90-day seed series, not real data
/api/v1/trades.jsonDemonstration trade detail, not real trades
/api/v1/attribution.jsonContribution attribution computed on the seed series
/api/v1/composition.jsonComposition of the three-tier (abolished) index
/api/v1/pipeline.jsonDemonstration pipeline status
/api/v1/constituents.jsonList of the 20 seed bonds
/api/v1/weekly.jsonWeekly aggregation of the seed series

Current endpoints are listed on api.html; measures-family machine endpoints live under /api/v1/measures/ and in each index page footer.