Skip to content

docs(pinnacle): document wire_received_at for pipeline-latency benchmarking#241

Open
paperclip-resolver[bot] wants to merge 1 commit into
mainfrom
fix/sha-3419-pinnacle-wire-received-at
Open

docs(pinnacle): document wire_received_at for pipeline-latency benchmarking#241
paperclip-resolver[bot] wants to merge 1 commit into
mainfrom
fix/sha-3419-pinnacle-wire-received-at

Conversation

@paperclip-resolver
Copy link
Copy Markdown
Contributor

Summary

SHA-3419 surfaced a churn case where a Sharp+WS customer benchmarked SharpAPI's Pinnacle delivery latency against competitors and saw `odds_changed_at` p50 = 2,049ms — but the metric was structurally misleading. `odds_changed_at` is Pinnacle's own trading-desk timestamp (carried forward across unchanged refreshes, can be hours old on NBA/MLB player props because the desk isn't moving the line), not SharpAPI's ingest contribution. Competitors that stamp ingest time under the same field name will look faster on that metric even when their underlying pipeline isn't.

PR #423 added `wire_received_at` as the field that does isolate SharpAPI's ingest contribution, but the docs only ever pointed customers at `last_seen_at` for freshness — which is wrong too (`last_seen_at` advances every cycle regardless of content change, so it's a heartbeat, not a delivery-latency benchmark).

This PR:

  • Updates `content/en/concepts/pinnacle-odds-changed-at.mdx` with:
    • A new Benchmarking Pipeline Latency section that names `wire_received_at` as the field to measure against and explains the apples-to-oranges trap when comparing `odds_changed_at` across vendors.
    • A three-row field-comparison table (`odds_changed_at` / `wire_received_at` / `last_seen_at`) replacing the prior two-row table.
    • An updated example payload showing all three timestamps.
    • A cross-link to the `/health` Pinnacle CDN cadence panel so customers can self-diagnose 'Pinnacle is quiet' vs 'pipeline is stuck.'
  • Adds `wire_received_at` to the schema table + example response in `content/en/api-reference/odds.mdx`, with the explicit guidance 'use this for ingest-latency benchmarking.'

EN-only. The de/es/pt-BR concept pages are last-synced from the 2026-04 EN baseline (same pattern the existing pinnacle-odds-changed-at page follows). Translation refresh is the standard rebatch — happy to follow up separately if desired.

No engineering change required on the API side — the underlying field already ships, and pipeline-internal p50 is ~34ms / p95 ~1.9s on Pinnacle per `sharpapi_go_sse_row_wire_age_at_serialize_seconds`. The fix is making it discoverable.

Test plan

  • `pnpm typecheck` clean
  • Visual smoke once deployed (preview URL) — verify the new section renders + cross-links work

Type: docs
Refs SHA-3419

…ipeline latency (SHA-3419)

SHA-3419 surfaced a churn case where a Sharp+WS customer benchmarked
SharpAPI's Pinnacle delivery latency against competitors using
`odds_changed_at` and saw p50 = 2,049ms. That field carries Pinnacle's
own trading-desk timestamp (it can routinely sit hours old on NBA/MLB
player props because the desk isn't moving the line), not SharpAPI's
ingest contribution, so the metric structurally penalises vendors who
preserve source semantics vs vendors who stamp ingest time under the
same field name.

`wire_received_at` was added in PR #423 specifically as the
pipeline-arrival field, but the docs only ever pointed customers at
`last_seen_at` for freshness. `last_seen_at` advances every ingest
cycle regardless of content change — useful as a heartbeat, but not
the right field for ingest-latency benchmarking either.

This change:

- Updates `content/en/concepts/pinnacle-odds-changed-at.mdx` with a
  new "Benchmarking Pipeline Latency" section that explicitly names
  `wire_received_at` as the field to measure against, and explains
  the apples-to-oranges trap when comparing `odds_changed_at` across
  vendors. The fields table now lists all three timestamps with their
  distinct semantics.
- Adds `wire_received_at` (and `odds_changed_at`) to the example
  JSON response and the field reference table on
  `content/en/api-reference/odds.mdx`.

EN-only — the de/es/pt-BR concept pages are last-synced from the
2026-04 EN baseline and rebatched as a translation pass, same pattern
the existing pinnacle-odds-changed-at page follows. Translation
refresh can be a follow-up.

Type: docs
Refs SHA-3419
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants