Concepts
Reading a setup
A real setup walked through field by field: lines, trigger, plan, track record.
A setup is one current pattern on one ticker: two lines, the rule that turns it into a trade, the plan if that rule fires, and the record of how the same pattern family resolved before. This page walks through a real one field by field. The full field table is on the Setup page.
{
"setup_id": "NVDA:D:falling_wedge:1",
"lineage_id": "lineage-1",
"symbol": "NVDA",
"interval": "D",
"family": "falling_wedge",
"family_label": "Falling wedge",
"pattern_type": "falling_wedge",
"direction": "bullish",
"status": "forming",
"pattern_start": "2026-08-08",
"pattern_end": "2026-09-07",
"as_of_session": "2026-09-25",
"last_close": 101.5,
"price_scale": "log",
"lines": {
"upper": { "start": { "date": "2026-08-08", "price": 110.0 }, "end": { "date": "2026-09-07", "price": 104.0 }, "touch_count": 3, "touches": [{ "date": "2026-08-08", "price": 111.2 }] },
"lower": { "start": { "date": "2026-08-08", "price": 90.0 }, "end": { "date": "2026-09-07", "price": 98.0 }, "touch_count": 2, "touches": [] }
},
"trigger_rule": "A daily close above the upper line; the trigger price moves with the line.",
"plans": [{ "direction": "bullish", "trigger_price": 105.25, "stop_price": 96.0, "target_price": 120.0 }],
"track_record": { "family": { "…": "see Track records" }, "ticker": null }
}Identity
setup_id names this occurrence and is what chart.png takes. It is stable while the pattern stands; if the nightly build redraws the pattern, the id changes and lineage_id is what still ties the two together. symbol and interval (always D, daily) say what it is drawn on.
Family and direction
family is one of five: rising_wedge, falling_wedge, bullish_pennant, bearish_pennant, triangle. family_label is the human name. pattern_type is the detector's more specific label when it has one. direction is bullish or bearish, and it is null for a symmetrical triangle until price breaks one way, which is why a triangle can carry two plans.
Status
forming means the pattern stands and the trigger rule has not fired. Once it fires, status changes and an entered object appears with the entry date and price and the stop and target that were locked at entry. Occurrences that have entered also appear in the history route, first with outcome open, then win or loss.
The lines
Each of lines.upper and lines.lower is two dated endpoints in dollars. That is the whole definition: there is no slope field on purpose, because the lines are straight in log price and a slope in dollars per day would be wrong at the far end. To draw one, put the chart's price axis on a log scale and connect start to end; extend it to the right if you want to see where the trigger would be tomorrow. touch_count and touches are the bars whose high or low touched the line, useful for showing why the line is where it is. A line can be null for pattern shapes that only have one.
The trigger and the plan
trigger_rule is a sentence you can show: the condition that turns the pattern into a trade. plans is what the trade would be if it fires, one per direction: trigger_price (as of the last session; it moves with the line), stop_price and target_price (the measured-move target). last_close beside trigger_price tells you how close the setup is to firing. A symmetrical triangle carries two plans; everything else carries one.
The track record
track_record.family is the stat block for the whole family; track_record.ticker is the same measurement for this ticker alone when there are enough occurrences, else null. Both carry a summary sentence written to be quoted whole.
Time
as_of_session is the last trading session the nightly build covered, and pattern_start to pattern_end is the span of bars the pattern is drawn across. Present as_of_session beside anything you show; setups change nightly and should not be cached across sessions.
What to do with one
For a person, the useful sentence is: "NVDA has a bullish falling wedge forming as of 2026-09-25. It triggers on a daily close above 105.25 (last close 101.50), with a stop at 96.00 and a target at 120.00. Falling wedges have resolved 1,287 times since 2006: 54% reached the target, average win +8.1%, average loss -4.2%. This is educational chart analysis, not advice." Every number in it is a field above, and the last sentence is the disclaimer from the envelope.