Add a tape-context block to the crowd board: four ETF ratios on the board's windows - #123
Merged
Merged
Conversation
…oard's windows Staples over Nasdaq, equal over cap weight, Treasuries over junk, and front over 3-month vol, each read at the Tuesday close and scored as a range index over the same 13, 26 and 52-week windows and full history the markets use, drawn under the markets whatever the order. Each ratio is written with the defensive leg on top so the board's colour axis keeps its meaning: a high cell is the fearful or broad side, a low cell the crowded one. The window rule moves into tape_context so the markets and the context rows share one implementation. A leg the price store does not hold yet is named in the caption as awaiting data and draws nothing; a ratio whose last priced week trails the board (Yahoo's ^VIX3M stopped on 2026-07-17) is named as trailing. Context rows carry no click target, no verdict chip, and hover with their own measure and pole note. Not a composite and not a signal; the help text says so. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
What
A Tape context block at the bottom of the crowd board: four ETF ratios read at the Tuesday close and scored as a range index over the same 13/26/52-week windows and full history the markets use, so "large specs at 92 on NQ" and "staples over Nasdaq at 12" read off one scale.
Orientation keeps the board's colour axis honest. On the board a high cell (bull hue) is Commercials accumulated, the crowd washed out; a low cell is the crowd long and crowded. Every ratio is written with the defensive leg on top, so its high end is the fearful, broad or stressed side and its low end the crowded, complacent side. Flipped, the colours would lie.
Shared window rule.
_market_indiceson the crowd page now callstape_context.window_index_frame, so the markets and the context rows are scored by one implementation (weeks + 1 reports, two-year floor on full history).Failure modes, by design
^VIX3Mfeed stops on 2026-07-17, which is how this case was found.MarketRead.linked=False), no verdict chip, and hover with their own measure and a pole note. The ticker slot is blank, since "VIX/VIX3M" overruns a column cut for a futures symbol and the blank is itself the mark that the row is not a market.Context, not signal, and deliberately not a composite. The help text says so; the module docstring explains why (crowdmon).
Depends on
mspinola/marketdata#29 registers the four new legs (XLP, RSP, HYG, VIX3M). Until that merges and the Windows box seeds them, the deployed board shows the awaiting-data caption and no block, which is the intended state.
Verification
tests/test_tape_context.py: orientation and tiers, Tuesday cadence with a holiday, leg alignment, the window rule (weeks + 1, history floor, move column), unlinked chipless reads, the awaiting and unset-store cases, target-date reads, cache keyed on the store's last dates, the context block's ordering, no click target on context marks, hover text, and the trailing notice.ruff check src testsclean on 0.15.22.🤖 Generated with Claude Code