Repository navigation
metrics: typed report_result_invalid for overflow; annualised metrics under one day are null with a reason (rev 3.1, CR-202) - #451
Closed
luisleo526 wants to merge 1 commit into
Closed
luisleo526 wants to merge 1 commit into
luisleo526 wants to merge 1 commit into
Conversation
…s; sub-day span is a defined absence for cagr and calmar (CR-202) Squash of cx/metrics-overflow (head d1cf661) merged with engine main da9403f: the tree is that merge. Its single parent is engine main, as the GitHub squash writes it. Report metrics that overflow (buy_hold_return, cagr and every other report metric) fail with the typed run failure report_result_invalid instead of writing null; cagr and calmar over a span under one day are a defined absence (null) with the reason in diagnostics.annualization.<field> (revision 3.1). See docs/design/selected-window-wire-v1.3-revision-3.1.md and docs/pages/report-schema.md. Documentation sentences the 38-commit history of this branch introduced and later reworded or removed, named so scripts/check_doc_reverts.py can read them (none of them is deleted by this squash against main): - c9ba507 introduced "Report arithmetic that produces a nonfinite value, including overflow, fails with `report_result_invalid` and reason `nonfinite`." in docs/pages/report-schema.md. - c9ba507 introduced "The engine checks computed values before they can become a metric absence." in docs/pages/report-schema.md. - eba8561 (revision 3.1, CR-202 fix 4) introduced "The constant policy list is in `docker/report_annualization.def`, shared by the native metric walk and public report writer." in docs/design/selected-window-wire-v1.3-revision-3.1.md. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Oct 19, 2026
Collaborator
Author
|
Superseded by the v5 PR: same change plus the gating read's fixes (runner NaN restored; sharpe_bar/sortino_bar in the annualised set; C-host out filled; docs) and the lab-harvested neutral digest, as one squash on main. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes #450 (one squash commit
ad0804f34on mainda9403fce; tree = #450's proven head d1cf661 + #444's docs.yml only). Why:scripts/check_doc_reverts.pyjudges each commit with its own message, so the three deleted doc sentences had to be named in the commit that deletes them. This branch is a new one: no force-push.Metrics overflow: revision 3.1 (CR-202, for 1.6.2 final)
CR-202, for the 1.6.2 final. Under revision 3 there is no catch-all null for overflowing report metrics. The owner-approved clarification REVISION 3.1 (L6 ruling 10-20) adds one defined exception:
nullwith a named reason,diagnostics.annualization.<field>. The run completes.report_result_invalidfault.The pinned neutral-report digest in
tests/test_native_anchored_legs.cppis re-pinned to the lab-harvested value17583267501122239024(rj-20261019t210726-6fa3f7). The 7-minute fixture's cagr/calmar now become null by the rule; nothing else in the digest moved.Proof 10 (rj-20261019t215306-ac540a, squash tree == c901d07): preflight; release 961/961; debug 942/942; docs.
This head merges main 7bd065c (v1.6.2-rc.1): only VERSION and docker/run_failure_codes_diff.json change. The delta steps and ONE full parity sweep run on this head.
Squash body: see the commit message file of the lane.
🤖 Generated with Claude Code