Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
TCI: AI 컴퓨팅 임대에 대한 일일 재현 가능한 기준 가격
TCI: daily, reproducible reference prices for renting AI compute. Weighted median over offers, published with its full constituent set and a gap wherever the panel is too thin to price.
금융HTML · PythonGitHub @markrusch온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기EU-CRI: a daily, methodology-transparent reference price for renting AI compute in the EU/EEA. Open source, IOSCO-aligned.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
TCI — a daily, fully reproducible reference price for renting AI compute in the
EU/EEA. Headline series TCI-CRI-H100: one NVIDIA H100 SXM 80GB GPU-hour, on-demand,
per-GPU, ex-VAT, from an EU/EEA data centre, in USD with a EUR companion at the ECB
reference rate (T-1). Companion series by market segment (-MKT marketplace, -NC
neocloud, -HS hyperscaler catalog, -SOV EU-incorporated operators), by generation
(H200, B200, B300, A100, H100-PCIe), and TCI-CRI-COMPUTE, a chain-linked composite
that follows the observed market across hardware generations.README 전문 보기 ↗TCI — a daily, fully reproducible reference price for renting AI compute in the
EU/EEA. Headline series TCI-CRI-H100: one NVIDIA H100 SXM 80GB GPU-hour, on-demand,
per-GPU, ex-VAT, from an EU/EEA data centre, in USD with a EUR companion at the ECB
reference rate (T-1). Companion series by market segment (-MKT marketplace, -NC
neocloud, -HS hyperscaler catalog, -SOV EU-incorporated operators), by generation
(H200, B200, B300, A100, H100-PCIe), and TCI-CRI-COMPUTE, a chain-linked composite
that follows the observed market across hardware generations.
The credibility strategy is reproducibility, not scale: every parameter is a visible config value, the methodology document is generated from that config, raw observations are immutable, every print carries a queryable constituent set, and the whole thing can be rebuilt from public sources by anyone with the repo. Design follows the IOSCO Principles for Financial Benchmarks (2013) as voluntary best practice — see GOVERNANCE.md, METHODOLOGY.md, and SOURCES.md.
TCI is a price-transparency benchmark, not a settlement benchmark. It is a research publication, is not investment advice, and may not be used as a reference price in financial instruments. It has no transaction feed and does not claim one. The conditions that would have to be met before settlement use is credible are published in GOVERNANCE.md; as of v0.3.0, six of the seven are unmet.
Why it was rebuilt in v0.3.0, and what was wrong before: research/composition-vs-price.md.
python -m venv .venv
.venv/Scripts/activate # Windows; source .venv/bin/activate on Linux
pip install -e .[dev]
python -m tci.run migrate # create data/eucri.db
python -m tci.run daily # collect today's observations + compute all series
python -m tci.run constituents --date 2026-07-18
pytest
| Command | Purpose |
|---|---|
migrate | apply database migrations |
daily [--date D] | run collectors (idempotent per source+day), compute all series, regenerate the site, CSV and charts |
constituents --date D [--series S] | full audit table for a print (IOSCO P13/P16) |
backfill --from D --to D | recompute prints from stored observations (never re-collects) |
reproduce [--date D] [--published] | recompute every stored print under the version live on its date and compare it field by field with what was published; --published also checks every digest in site/data/prints/*.json, site/data/v1/series/*.json and latest.json, and reports a stored print the site never published. Exit 0 = everything matched |
canary [--source ID] | collect from every live source into a throwaway database and report what stopped reporting; touches neither the record nor the site |
reliability [--series S] [--coverage S --days N] | the gap log, and how many providers would have met a series' gate on each session |
effect --date D --before X --after Y | recompute one date under two methodology versions and report the difference per series; writes nothing |
mlperf [--refresh] | MLPerf Training results from sellers priced here, against those prices, from a snapshot pinned to an upstream commit |
term [--date D] | term-price cells for one date against the 3-seller publication threshold, and which cells are one seller away |
weights [--date D] | show the stored weight review for a date (v0.3.0 weights providers by tier; reviews are retained for audit, not used in the calculation path) |
validate | source-dropout sensitivity + optional check-series correlation |
post | regenerate the paste-ready Substack post |
docs | regenerate METHODOLOGY.md + METHODOLOGY.lock |
sources | the source register, the review clock, and per-region coverage of what has been collected (--due, , ) |
config/ — all methodology parameters (factors.yaml), sovereign constituent list,
static provider price entries with last_verified datessrc/tci/ — collectors (fail-soft, 1 request/source/day, honest User-Agent),
normalisation, index calculation, outputsdata/eucri.db — SQLite, committed; observations and prints are append-only
(trigger-enforced)site/ — the published site, regenerated from the database on every daily run by
src/tci/outputs/site.py; do not hand-edit the HTML. Pages: index.html
(dashboard), basis.html (the EU-US basis), term.html (commitment discounts),
methodology.html, data.html, governance.html, notices.html, research.html,
privacy.html and research/*.html. Plus assets/ (the design system: tokens.css,
site.css),
reliability.html (every session that did not print). Plus assets/ (the design
system: tokens.css, site.css), data/ (CSV history, latest.json, one print
file per date under prints/, and the versioned read interface under v1/: a
catalogue plus one file per series carrying its whole history and a digest per
session), and charts/ (PNGs used by the Substack post, not by the site — the site
draws its own inline SVG).site/components.html — the design-system component gallery. A reference artefact, not
linked from the site.DESIGN.md — the design system spec: tokens, chart rules, density, contrast ratios.research/*.md — research notes, rendered to site/research/ by the generator.config/source_links.yaml — reference weblinks for the Sources panel and per-constituent
links. Presentational only; not part of METHODOLOGY.lock.config/source_registry.yaml + config/regions.yaml — the source register (including
everything screened and rejected, with reasons) and the region blocks. One block is
published; eight are shadow: collected and stored, published nowhere, building the
history a future regional index will need. Neither file is read by the calculation path.
Maintained by the monthly process in .claude/skills/source-discovery/, whose sweeps are
written up in .site/ is a self-contained static site plus one optional serverless endpoint, so it can
be hosted anywhere that serves static files. Two targets are wired up:
site..github/workflows/pages.yml deploys site/ on every
push that touches it. Served at https://markrusch.github.io/Compute-Indices/.Both targets serve byte-identical content. Every link in the generated site is relative, so the site works equally at a subpath and at a domain root. The one absolute self-reference is the canonical URL and the social-card metadata, which name the domain on both hosts — that is the point of a canonical, and it stops the mirror competing with the canonical site for the same content in search results.
The only <script src> on the page is Vercel Web Analytics, at a same-origin path. It is
inert on Pages, where the file does not exist. Vercel already serves the canonical site
and so already sees every request to it, so this hands nothing to a party that was not
already in the path; no visitor's IP reaches a third party, which is the claim the site
actually makes.
site/api/refresh.js is a Vercel-only serverless endpoint that can trigger daily.yml
on demand. The v0.3.0 dashboard does not surface it — deliberately, so the two hosts
behave identically rather than one carrying a button the other cannot honour. The
endpoint still functions if called directly; to use it, set two Vercel Environment
Variables (Project Settings → Environment Variables — never committed to the repo):
GITHUB_DISPATCH_TOKEN — a token scoped to just this repo's Actions
(read/write), e.g. a fine-grained PAT limited to markrusch/Compute-IndicesGITHUB_REPO — markrusch/Compute-IndicesThe refresh endpoint refuses any date other than today (in UTC): these collectors
report live market prices, not history, so a past date can never be honestly
re-collected — see GOVERNANCE.md and STYLE.md on why a gap stays a gap.
Not casually. Every print is computed under the methodology version live on its date
(config/methodology/succession.yaml): the head of the succession is config/factors.yaml,
and every superseded version is frozen under config/methodology/<version>/ with its own
rendered METHODOLOGY.md. Only providers, collectors and classes named in the version's
panel reach a print; a new collector stores rows from day one and moves nothing until a
version admits it. Any change to config/factors.yaml, config/sovereign.yaml,
config/methodology/succession.yaml, src/tci/index.py, src/tci/normalise.py, or
src/tci/weights.py fails CI unless the version is bumped, the CHANGELOG has an entry, and
the lock is regenerated, and it takes effect only from the effective date its notice
states. A change to a frozen version is refused outright, and a code change that alters
any stored print fails tests/test_reproduce.py. Scheduled weight reviews execute
a fixed published formula and are data updates, not methodology changes. Procedure:
GOVERNANCE.md.
Three kinds of material live here, under three different terms. A licence over source code does not carry rights in the data a program produces, so they are stated separately.
| Material | Terms |
|---|---|
Software — src/, tests/, build config | Apache 2.0 |
Documentation and research — METHODOLOGY.md, GOVERNANCE.md, SOURCES.md, DESIGN.md, STYLE.md, research/*.md | CC BY 4.0 |
Index data — site/data/, data/eucri.db | DATA-TERMS.md |
The methodology is openly licensed on purpose: a benchmark that cannot be checked is not a benchmark, and this repo already claims every print is recomputable from public sources. That claim is only real if you are actually permitted to do it.
Name. "TCI" identifies this benchmark and the values published under it. Cite it, critique it, build on it — but a fork must carry its own name, because a benchmark name says who computed the value and under which published methodology. See NOTICE.
Status. TCI is a research publication: not investment advice, not administered by an authorised benchmark administrator under Regulation (EU) 2016/1011, and not for use as a reference price in a financial instrument. See GOVERNANCE.md.
--status--blockcontrib validate|ingest|aggregate | contributed term prices: check a submitted CSV, store it in the private store outside the repository (--contributor, --supersedes for a one-row correction), or write the publishable aggregates (--from, --to, --out). See CONTRIBUTING-PRICES.md |
research/source-scans/