Integrators¶
Integrator
Use this hub when another repository or offline tool consumes OddsFox Pipeline outputs. Public marts are analytics inputs, not execution orders. Canonical vocabulary lives in Terminology.
Checklist¶
- Consume public surfaces only — public
*_martsrelations. Do not treat*_raw,*_ops, staging, or intermediate schemas as APIs. Start with Data contracts and the Data dictionary. - Pin versions — read
wc2026_marts.contract_metadatawhere present and track CHANGELOG.md.v0.2.xmart layouts may break between releases. - Strategy / raw.v1 consumers — if you load private canonical snapshots or
the strategy clean-data set (
wc2026.v1), fail closed on readiness using Strategy contracts. Ordinary public mart consumers do not need that page. - Polygon boundary — operator-local Polygon audit bundles and technical
exports are not
wc2026.v1signal inputs and must not feed intents or execution. - Execution stays elsewhere — order admission belongs to
oddsfox-execution. See Integration and System overview for repository roles.
See Scope and non-goals for what this repository ships and what it does not host.
Consumption contract¶
- Read Data contracts for grain and guarantees.
- Query only
*_marts(column semantics live in the Data dictionary). - Pin pipeline version via
wc2026_marts.contract_metadataand track CHANGELOG.md. - Run observability checks before trusting live filters (see Query the warehouse).
- Never depend on
*_raw, audit bundles, or strategywc2026.v1unless you are explicitly on that path.
Version pinning¶
select
contract_name,
contract_version,
contract_fingerprint,
pipeline_git_sha,
built_at
from wc2026_marts.contract_metadata;
wc2026_marts.contract_metadata is published with the shared WC2026 strategy
clean-data graph (for example after Kalshi or match-minute ingest that rebuilds
those marts). A Polymarket-only golden-mart quickstart may not populate this
relation. Strategy consumers should fail closed using
Strategy contracts. Ordinary public mart
consumers still pin the pipeline release via CHANGELOG and documented mart
grains.
Integration anti-patterns¶
| Anti-pattern | Why it breaks |
|---|---|
Treating *_observability as a stable API |
Diagnostic surface; columns may change |
| Joining Kalshi/Polymarket on team display strings | Use canonical_team_name / documented bridges |
Assuming fifa_match_id equals match_id |
Different grains; see the Analysts join map |
| Feeding Polygon exports into signals or execution | Explicit non-goal; see checklist item 4 |
Expecting semver-stable mart layouts in v0.2.x |
Pin + read CHANGELOG; no migration shims |