Skip to content

Fix scoring percentile description; remove speculative event types - #1

Merged
bradfordlynch merged 1 commit into
mainfrom
docs-scoring-and-event-types
Jul 23, 2026
Merged

bradfordlynch merged 1 commit into
mainfrom
docs-scoring-and-event-types

Conversation

@bradfordlynch

@bradfordlynch bradfordlynch commented Jul 22, 2026 •

Copy link
Copy Markdown
Contributor

Two participant-facing docs fixes (a participant was actively confused by the first):

  • Correct the scoring description in notebooks/01_historical_archive.ipynb. The closing "Where to go from here" cell claimed the reaction is percentiled "against the asset's historical distribution". Per the production scorer — src/examples/scoring.py is a verbatim port and was already correct; it is the source of truth — car1 is converted to a percentile rank in [0, 1] across the period's (calendar quarter's) cross-section of all scored event outcomes, not within the asset's own history. The cell now says exactly that and points at examples.scoring.percentile_ranks.

  • Remove FOMC_MEETING / MACRO_DATA_CPI / MACRO_DATA_JOBS mentions. The live competition currently emits only EARNINGS_RELEASE; advertising nonexistent types misleads participants. event_type remains an open string (no enum) so new types never break parsing:

    • src/examples/schemas.py docstring reworded (open string; only EARNINGS_RELEASE emitted today).
    • notebooks/00_api_quickstart.ipynb calendar intro reworded likewise.
    • data/sample/events_sample.json: macro/FOMC rows replaced with plausible large-cap earnings rows (BA, IBM, CVX) on the same Jan 27 – Feb 4 2026 range, so the quickstart table and stacked daily bar chart still render across multiple days. Judgment call: the speculative UNSCHEDULED_8K sample row was replaced too (QCOM) under the same "only earnings are emitted" rationale — shout if you want an UNSCHEDULED timing example kept.
    • tests/test_frames.py: the open-string tolerance guarantee is still exercised via a clearly-fake SOME_FUTURE_TYPE (which also keeps the empty-focal_assets rendering assertion and the manifest sort-order check), so no test property was weakened.

Housekeeping: the repo's nbstripout pre-commit hook renumbered notebook cell ids to its sequential form, which inflates the notebook diffs slightly.

Verification: uv run pytest — 28 passed; pre-commit (ruff, ruff-format, nbstripout) clean; both notebooks executed end-to-end with jupyter nbconvert --execute in sample mode (no EM_API_KEY) — outputs not committed, matching the nbstripout convention.

Two participant-facing docs fixes:

- Notebook 01's closing cell said the competition converts the realized
  reaction into a percentile "against the asset's historical distribution".
  That is wrong and actively confused a participant: per the production
  scorer (ported verbatim in src/examples/scoring.py, which was already
  correct), car1 is percentile-ranked in [0, 1] across the PERIOD's
  (calendar quarter's) cross-section of all scored event outcomes — a
  cross-sectional rank over the quarter's events, not a rank within the
  asset's own history. Rewrote the cell to match and point at
  examples.scoring.percentile_ranks.

- Removed FOMC_MEETING / MACRO_DATA_CPI / MACRO_DATA_JOBS (and the
  speculative UNSCHEDULED_8K sample row) everywhere: the live competition
  currently emits only EARNINGS_RELEASE, so advertising nonexistent types
  misleads participants. event_type stays an open string (no enum) so new
  types never break parsing; the open-string tolerance is still tested via
  a clearly-fake SOME_FUTURE_TYPE in tests/test_frames.py, which also keeps
  the empty-focal-assets rendering check. Sample calendar rows replaced
  with plausible large-cap earnings on the same date range so the
  quickstart's table and daily bar chart still render across multiple days.

Notebook cell ids were renumbered by the repo's nbstripout pre-commit hook.
@bradfordlynch
bradfordlynch merged commit 8b4a65d into main Jul 23, 2026
4 checks passed
@bradfordlynch
bradfordlynch deleted the docs-scoring-and-event-types branch August 3, 2026 15:52
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