Skip to content

docs: document quality_tier (A/B/C) on /opportunities/ev#287

Merged
Mlaz-code merged 1 commit into
mainfrom
docs/quality-tier-ev
Jul 14, 2026
Merged

docs: document quality_tier (A/B/C) on /opportunities/ev#287
Mlaz-code merged 1 commit into
mainfrom
docs/quality-tier-ev

Conversation

@Mlaz-code

Copy link
Copy Markdown
Collaborator

Summary

Documents the quality_tier field (grader-certified A/B/C), which went live on /opportunities/ev on 2026-07-14 when EV_QUALITY_TIER was flipped on in production (sharp-api-go #1204). The field was shipping undocumented — this closes that gap.

What changed

  • content/en/api-reference/opportunities-ev.mdxquality_tier row in the response-field table + a new Quality Tier section (A/B/C criteria table, output-only note, and a real high-EV-but-B example that preempts the "why isn't my high-EV row an A?" support ticket).
  • content/en/concepts/ev-calculation.mdx — a Quality Tiers methodology section explaining the grading rationale (why stated EV and realized results diverge; the low-band bleed; segment reliability caps).
  • public/openapi.jsonEVOpportunity.quality_tier (type: string, enum: [A, B, C], not in required); info.version 3.1.0 → 3.2.0.
  • public/openapi-version.json + CHANGELOG.md — version bump + entry.

Verified against the live API (docs-reality)

  • Output-only — there is no quality_tier query filter (confirmed in the Go handler); documented as such, no invented parameter.
  • The wire ev_percentage is the exact value the tier bands use (transformEV passes it through), so the criteria reference the visible field — no phantom "corrected EV".
  • Omitted on suspended rows (is_suspended) — matches transformEV deleting the key; schema leaves it out of required.
  • The A-vs-B example (bwin baseball 1st_5_innings_total_runs @ 7.35 = A vs total_runs @ 7.94 = B) is a real captured pair — the higher-EV row is B because its segment is watch-flagged.

Scope

English source + the language-agnostic OpenAPI spec. de / pt-BR / es prose translations are a follow-up (tracked separately; the spec already covers machine consumers for all locales). No nav/_meta.js change (edits to existing pages).

Checks

  • OpenAPI version gate (scripts/check-openapi-version.mjs) passes locally: info.version 3.1.0 -> 3.2.0; OK.
  • JSON valid; <Callout> tags balanced; all cross-link anchors resolve. Vercel preview will validate the full MDX build.

Refs sharp-api-go#1204 · crew #2950

Type: docs

Add the grader-certified quality_tier (A/B/C) field, live on /opportunities/ev
as of 2026-07-14 (sharp-api-go #1204). Covers the endpoint field reference, a
Quality Tier section with the A/B/C criteria + a real high-EV-but-B example, an
EV Calculation methodology section on the grading rationale, and the OpenAPI
schema (EVOpportunity.quality_tier, enum A/B/C, not required — omitted on
suspended rows). Documents it as output-only (no query filter). Bumps
openapi info.version 3.1.0 -> 3.2.0 with a CHANGELOG entry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Mlaz-code Mlaz-code merged commit defdbd4 into main Jul 14, 2026
1 check passed
@Mlaz-code Mlaz-code deleted the docs/quality-tier-ev branch July 14, 2026 16:54
@Mlaz-code

Copy link
Copy Markdown
Collaborator Author

Merge gate (auto-classified): gate=docs — auto-classified by the gate-log enforcer (6min after merge, no Merge gate: audit comment found). Reviewer agent: please correct if wrong by replying with Merge gate: gate=<correct-word> — <evidence>. The audit log keys on the first such token; your correction overrides this auto-classified guess.

Posted by scripts/gate-log-enforcer.py because instruction-level rules about the gate= template aren't binding (0/N adoption); structural enforcement fills the log either way.

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.

1 participant