Skip to content
patearn.in
NIGHTLY ·
More

Glossary

Research tool · not investment advice. Full disclaimer →

New here? How to read

Every number, in plain English.

Descriptive record only — past data and published method.

Find a term

638 terms in source · 70 families

638 of 638 terms shown

Organization evidencePositioning — DVPT (institutional delivery footprint)Price / context — the everyday columnsStock snapshot — absolute valuesHighs and lows — the six-window ladderThe validation record — what was tested, and what diedRelative StrengthMove attribution — where a move came from ("The read")Quality — pt14 (the 14-pattern durability screen, rule-based, no LLM)Capital allocation — C (what management did with incremental capital)Conviction (the cross-pillar composite)Price / contextCPR — Structure (the 4th pillar)Tracking — the action loop (UI Phase 1)Stock chart patterns and comparisonsRS depth — Rotation Map (relative-strength level + direction)RS Band — support & resistance on relative strengthOpen interest — what the number actually countsEvidence tags — how each F&O number is knownEvidence receipt — the five fields that travel with a surfaced nameOwn-history map — every metric ranked vs the stock's own pastRS Rotation — the weather phaseGlobal macro — the rupee against the other destinations (cross-asset)Institutional flows — settled money vs the same-day tapeCapture — how a sector behaves on up vs down daysHomepage market contextAccumulation — signed accumulation / distribution (price-tape)F&O Open Interest — positioning (derivatives)F&O positioning — per stock (futures build-up, option book, rollover)Oscillators — momentum (RSI / MACD)Credibility — management credibility from earnings callsCapital allocation — ROIIC quality (Dataset C)Ignition — DVPT crossing intensityLaunchpad — explosive-move precursorsWolfe — winner-profile wave scanThe terms from the owner's own teachingHarmonic shapes — five-point ratio patternsMomentum ensemble — the risk-adjusted scanGrowth-intent — concall forward proposalsInsider activity — SEBI PIT disclosures (skin in the game)Credit-rating transitions (quality migration)Stake & pledge confluence (SAST)Holdings QoQ (shareholding-pattern deltas)Corporate-actions calendar (ex-dates)Surveillance transitions (ASM / GSM / bands)Band-lock streaksResults reactions — the season war roomAttention queue — the signal-event busSeasonality — the seasonal tape (calendar residual)Event cadence — corporate-event timingReversal context (descriptive — falsified as a signal)What a book costs to run — the amount-sized cost lensClassic Screens — public strategiesRule lab — the gauntlet vocabularyLenders — asset quality, capital & the Doctrine-D modelFamiliar scans — the Scan ShelfPrice shapes — the cheap deterministic patternsScan blocks — scans that composePat voice co-pilot (the talking research dock)Pipeline health — did the scheduled work runHow to read Patearn (concepts)Cross-sectional ratios — the Valuation and Financials sectionsWhen the company is a bank or a lenderStatusOpen questions in a theme — what we cannot yet answer about its companiesCommitment evidence and document receiptsResearch workbook — your own work, and what it costsF&O Lab — user-directed calculationsSaved company reviewsMarket internals — the whole tape's vital signs

Every definition here is the same text the ? popovers use elsewhere on the site — one source, so they can never disagree.

The dictionary

grouped by family

Organization evidence 9

Organization evidence
Internal operational observations with their source, observation time, population and limitations. Unknown means unobserved or unavailable; zero means the available source was queried and counted none. Process success, landed code, deployment and live verification are separate stages. Owner assessments are judgments, not customer communication or release approval.
Cadence reliability
Recorded starts divided by expected executions for supported fixed daily/weekly schedules in the stated window. Complex schedules or absent per-worker journals have an unknown denominator or numerator. Execution counts cannot prove punctuality; retries can conceal missed slots.
Execution success
Successful completed deterministic executions divided by recorded completed executions in the stated window. It measures process outcomes, not whether useful output arrived.
Feedback review age
Elapsed time since a recorded report or assessment, with its source clock shown. Overdue means the applicable due date has passed while the relevant review is unresolved. Reassessment requires a new owner verdict.
Feedback throughput
Recorded assessments or owner verdict events in a stated window, with the corresponding received/current-case population shown. Different cohorts are not an acceptance rate and may produce a numerator above the denominator.
Delivery to live
Items with linked live-verification evidence divided by the stated population of landed items with machine-readable delivery receipts. Uninstrumented historical work is excluded explicitly and cannot be attributed to an agent from a shared Git identity.
Delivery send outcome
Transport handoffs marked SENT divided by recorded outbox messages. It is not a recipient delivery/read receipt. A draft JSON artifact is not a send.
Measured operational cost
Recorded API currency amount over the stated number of cost entries and time window. Missing task/provider/subscription costs remain unknown; unlike currencies are not combined.
Verification and rework
Explicit review/run evidence about verification outcomes and corrections, scoped to instrumented work. A commit containing the word fix is not sufficient evidence of rework or reviewer quality.

Positioning — DVPT (institutional delivery footprint) 45

DVPT — Delivery Value per Trade
Σ(delivery value ₹) ÷ Σ(total number of trades). Delivery value uses delivered shares × the day's close. The denominator counts all exchange trades, not delivery-only trades; the data does not identify buyer/seller size or institutional identity. deliv_qty num_trades delivery_value_per_trade
Activity profile / volume profile / fixed range profile / visible range profile (EOD estimate)
Price bands aggregate daily activity using each day's fraction of overlap with the band's adjusted low–high interval; a flat day goes in one band. Fixed dates remain pinned when the chart moves; visible dates follow pan/zoom, including the complete daily observations represented by weekly/monthly bars. Value defaults to actual traded rupees and close-valued delivery rupees. Optional volume uses shares adjusted to the chart's split/bonus basis. Bar widths start at zero; the shared width maximum, dates and available-session counts are printed. This uniform allocation is an estimate, not exchange volume/delivery at individual prices. Missing raw ranges or failed adjustments are excluded. chart_profiles
Profile DVPT (₹/trade)
Within each price band, sum allocated delivery rupees and divide by allocated total trade counts, using only sessions carrying both. This is a weighted ratio, never a sum or simple average of daily DVPT. The overall range ratio uses the same paired observations. Missing counts remain unavailable; zero is shown only when measured. It is estimated delivery value per total trade around a price level, not a buy/sell signal. source: same daily NSE bhavcopy and allocation as Activity profile.
Power baseline — P1M / P3M / P6M / P12M
The average DVPT of only the top-N highest-DVPT days in the last 1 / 3 / 6 / 12 months (the institutional peak days, not all days). power_dvpt_*
R baseline — R1M…R12M
The flat average DVPT over the window (the "normal day"). avg_dvpt_*
p_score (0–5)
How many of the 5 power baselines today's DVPT beats. 5 = above every institutional peak-day bar. p_score
r_score (0–5)
Same vs the 5 flat baselines. r_score
Rank — SS / S / A / B / C
A label for p, how many of the five power baselines today's delivery per trade beats: SS=5 · S=4 · A=3 · B=2 · C=1. trigger_rank
Baselines beaten (r / p)
Two counts out of 5 for today's DVPT, read as r / p: r = how many of the 5 flat baselines it beats, p = how many of the 5 power (institutional peak-day) baselines it beats. 5 / 5 = above every bar.
Days fired
Of the window's last 5 (weekly) or 22 (monthly) stored sessions, how many this name fired an A-or-better trigger on (rank A, S or SS: today's delivery beat three or more of its five power baselines). Shown as fired / window; a look-back, not a forecast.
×Power (intensity)
Today's DVPT ÷ the average of its own power baselines (P1M/P3M/P6M/P12M). "1.6×" = today's per-trade delivery is 1.6× the stock's own institutional peak-day average, blended across 1–12 months. Measured against the stock's own history, not the market. (computed on read)
Deliv ₹Cr
Total delivered value that day. Stored in rupees; boards render it in the Indian reading (₹1.20Cr / ₹4.50L), which is where the "₹Cr" in the name comes from. This entry previously read "in ₹ crore" full stop, and the screener's own ? opened it over a column printing the raw rupee figure — so a reader was told a rupee number was a crore number, a 10,000,000× mislabel. The scaling happens at render, never in storage, so sorting and numeric cuts still see rupees. delivery_value_today
Surge 1m / 3m / 1y
Today's turnover ÷ its average turnover over 1m / 3m / 1y. "3.6×" = today's traded value is 3.6× the 1-month norm. turnover_surge_*
Character — ACCUMULATION / DISTRIBUTION / CONSOLIDATION / NEUTRAL
Delivery is side-blind (every delivered share was both bought and sold), so this fuses 3 independent axes — WHO (trade-count breadth + delivery-₹ trend), WHICH-WAY (value-weighted up/down skew + price drift), CONTEXT (distance from 52w-high + persistence). DISTRIBUTION on a high rank is a warning, not a buy. accum_character
Key price (1M…12M) + gap
The value-weighted average price on the power days — where the big institutional money actually transacted — per horizon. Gap = today's close vs that key. 🎯 = inside the −1%…+5% "launch band". key_price_p* gap_to_key_p*
P/E (TTM)
Today's close ÷ trailing-twelve-month EPS (the last four reported quarters summed). Blank if any of those four quarters is missing, or if TTM EPS is zero or negative — a negative P/E is not a cheap stock, it is a loss-making one, and printing a number there would mislead. pe
EPS TTM · Sales TTM · Net profit TTM
The last four reported quarters summed, from our historical fundamentals archive. Units: EPS TTM is in rupees per share (the archive's own metric is named "EPS in Rs"); Sales TTM and Net profit TTM are in ₹ crore — so 48,211 Cr on the screener means ₹48,211 crore, not ₹48,211. That unit was undeclared anywhere in the system until it was measured (2026-08-20): SEBI SAST Reg 29 filings give a true share count, Net profit ÷ EPS gives the same count in whatever unit net profit carries, and the ratio between them came back at 1e7 to four significant figures across 574 symbols. Nothing was rescaled — the figure always was crore; only the label was missing. Source note — mixed provenance: most of that archive was originally collected from Screener.in, the one known non-primary source in the system; it is frozen and being migrated to NSE/BSE XBRL filings, and the newer rows are XBRL-sourced. Treat these figures as provisional. TTM rather than the latest quarter because one quarter is hostage to seasonality; blank unless all four periods are present. eps_ttm sales_ttm np_ttm
Sales YoY · Profit YoY
The latest reported quarter against the same quarter one year earlier — the only like-for-like comparison for a seasonal business (a quarter-on-quarter read compares Diwali with the monsoon). Taken from the year-ago period specifically, so a symbol missing an intermediate quarter shows blank rather than silently comparing Q1 with Q3. sales_yoy np_yoy
OPM % (latest quarter)
Operating profit margin as filed for the most recent quarter. opm_q
Source (fundamentals provenance)
Which archive the fundamentals on THIS row came from: Filings = NSE/BSE XBRL for every quarter used · Legacy = the frozen Screener.in archive, the one known non-primary source in the system · Mixed = both, across the quarters backing the row. Judged over the periods the row actually uses (the trailing eight quarters), never the symbol's whole history — a 2026 figure is not "legacy" because a 2003 filing behind it was scraped. Legacy and Mixed are provisional: that path is read, never extended, and is migrating to exchange filings. Measured 2026-08-17: filings cover 64% of symbols but only 7% of rows, because the legacy archive is deep in history while XBRL is broad and recent. fund_src
Period (fundamentals as-of)
The period-end of the most recent quarter backing every fundamentals column on the row. Reported figures arrive on the company's calendar, not ours, so two rows can legitimately carry different periods — this column says which. fy_end
SMA 20 / 50 / 200 (simple moving average of close)
The plain average of the last 20 / 50 / 200 closing prices — the most-used reference line in technical analysis, and until 2026-08-05 the one thing this screener could not express. Note what it is NOT: rs_vs_broad_above_50ma is a moving average of the relative-strength line, and avg_close_p are delivery-power-weighted closes. Those answer different questions. A short history yields no value at all — a 200-day average of 60 bars is not a 200-day average, so a recently-listed name shows blank rather than a shorter mean wearing a longer label. Computed on read* from bhavcopy_rows (EQ series). rs_vs_broad_above_50ma avg_close_p* bhavcopy_rows sma20
vs SMA 20 / 50 / 200 (distance from the average, %)
Today's close against that average, in percent: +4.3% = the close sits 4.3% above it, −14.2% = below. This is the filterable form — a screen cut compares a column to a number, so "close at or above its 20-day average" is written vs SMA 20 ≥ 0. Blank whenever its average is blank, and a blank fails a cut in both directions (it is excluded from "above" and from "below"), which is the site's standing rule for an unmeasured value. pv20 pv50 pv200
MA stack (20/50/200 alignment)
Descriptive — an alignment is a description of where price sits, never a signal. Where the close sits relative to all three averages at once — ABOVE ALL (over each of the 20, 50 and 200), BELOW ALL, or MIXED. Blank unless all three averages are real, so a name without 200 bars of history claims no stack. The fence is measured, not cautionary: in the 2026-08-05 base-rate study the golden cross (the best-known alignment event of all) measured 0.67σ against a 3.5-million-observation control, i.e. no detectable effect. mastack
RSI 14 (relative strength index, Wilder)
A 0–100 reading of how one-sided the last 14 sessions have been: it compares the average size of up-days with the average size of down-days, so 70+ is conventionally called "overbought" and 30− "oversold". Read it as a description of recent one-sidedness, not a forecast — this site has run no base-rate study on RSI, so no edge is claimed for it (contrast the MA stack above, where the best-known alignment event measured 0.67σ against a 3.5-million-observation control, i.e. nothing). Two deliberate refusals: a flat run — no gains and no losses, which is what a suspended or unchanged series looks like — returns 50 (neutral), not 100, because reading a frozen price as maximum strength put such names on overbought lists; and a name with under 35 sessions of history shows blank, never a part-formed reading. Computed on read from bhavcopy_rows (EQ series), Wilder smoothing, seeded on the first 14 changes. bhavcopy_rows rsi14
MACD · MACD signal · MACD histogram (12, 26, 9)
Three related numbers from the standard settings. MACD is the 12-day exponential average of close minus the 26-day one — positive means the shorter average is above the longer, i.e. price has been speeding up relative to its own recent trend. Signal is the 9-day exponential average of that MACD line. Histogram is MACD minus signal — the gap between the two, and the part that changes sign first. All three are in rupees, not percent, so they are not comparable across stocks of different price levels: a ₹3 histogram means something different on a ₹80 stock than on a ₹8,000 one. Compare a name with itself over time, or use the state column below. Blank under 35 sessions of history. Computed on read from bhavcopy_rows (EQ series). bhavcopy_rows macd macd_sig macd_hist
MACD state (where the histogram sits, and whether it just turned)
Descriptive — a crossing is a description of what the two averages did, never a signal to act on. The plain-English form of the histogram, and the one that IS comparable across stocks because it carries no rupee scale: ABOVE SIGNAL / BELOW SIGNAL for where it sits, and BULL CROSS / BEAR CROSS when it changed sign between the previous session and this one. A crossover is a fact about two bars, which is why the previous bar's histogram is computed at all — you never have to recompute yesterday to ask about today. A histogram sitting exactly at zero yesterday and positive today does count as a cross. macd_cross
Survivorship bias (the companies a backtest cannot see)
Testing a scan against today's list of companies, when the question is about the past. Anything that failed and was delisted, merged away or wound up has already left the list — so the test never sees it, and the result quietly describes a market made only of survivors. It is not a filter someone forgot to switch off; there is nothing left to list. Measured here, on a public scan (Chartink's Golden cross scan, 50-day average crossing above the 200-day, our full archive, tape through 2026-08-05): using today's list reports +1.166% average over the next 20 sessions, the market as it actually stood reports +1.037% — a +0.129 pp inflation — and 1,800 of the honest signals (17.9%, about one in six) come from companies that no longer exist. Read the size honestly: that 0.129 pp is smaller than the ±0.172 pp sampling noise on either average taken alone, and it is the junior term next to trading costs. See /proof/honest-backtest. survivorship_bias
Counting gap (the distance between a scan's reported result and what was left)
A scan's backtest is normally built by testing it against the companies listed today, with no trading cost subtracted. Both of those choices flatter the answer, in different directions and by different amounts. The counting gap is the distance between that reported figure and the same scan measured on the universe as it actually stood, minus a stated fee. It has exactly two parts: survivorship (the companies a backtest cannot see) and cost (a fee, subtracted). The second is usually the larger, which is the opposite of the famous story — on the golden cross the split is +0.129 pp survivorship against -0.320 pp cost, so cost is about 71% of it. It is not a measure of whether a scan works, and must never be read as one: a small gap on a losing scan is still a losing scan. Measured the same way across a registry of scans at /proof/scan-autopsy, and on one named public scan at /proof/honest-backtest. Where a scan's survivorship term is smaller than its own sampling error the page says so beside the number, because a difference inside its own noise is not a difference. counting_gap
Round-trip cost (what the trade itself takes)
Brokerage, statutory charges and the spread you cross, counted once going in and once coming out. Backtests that report gross returns silently assume it is zero. This site uses a flat 0.32% round trip — the most generous published Indian retail figure we could find, chosen deliberately so any gap shown is a floor rather than a flattering estimate. On the golden-cross study it removes 0.320 pp, which is about 71% of the total gap between the reported and the realistic number — i.e. costs, not vanished companies, are the main event over a one-month horizon. Unlike the survivorship term this carries no sampling error: it is a stated fee, subtracted. round_trip_cost
R-multiple (the result of a trade, measured in what it risked)
The outcome expressed as a multiple of the money that was at risk on that trade, not as a percentage of the account and not in rupees. A trade that lost exactly what it set out to risk is −1 R; one that made three times that is +3 R. It is the only unit in which two trades of different sizes, on different stocks, in different years are comparable — a 2% rise on a wide stop and a 2% rise on a tight one are not the same event. Why this site reports it: a win-rate quoted on its own is stop width restated — widen the stop and the win rate rises mechanically while each win shrinks — so the win rate is never shown here without the R beside it. Worse than −1 R happens: when price gaps past the exit overnight the fill is worse than the plan, which is why the average loser on our own measured population is below −1. See /proof/cost-of-being-wrong. r_multiple
Retraction record (the claims we took back)
A dated list of things we published and then withdrew, each carrying what we had claimed, what the later test found, what it cost us, and the standing rule the episode produced. It is deliberately not the same list as the approaches recorded as dead: that list says what may not be proposed, this one says where we were wrong in our own words. Two of its entries are corrections of corrections — a fix that itself had to be withdrawn — which is the test of whether a record like this is real or decorative. what_we_got_wrong
Loss distribution (the shape of being wrong, not the average of it)
The full spread of outcomes, drawn as counts per band, rather than collapsed into one headline number. It exists because an average can be a story about a handful of trades: on our own measured population the top 1% of trades carry roughly a third of every point of positive R, so the mean describes outliers while the median describes the typical experience — a full −1 R. Mean and median are always marked together here for exactly that reason, and the distance between them is the finding. Measured 2026-08-19 across 20 competing products, Indian and global: none was observed publishing one — equity curves and win rates, never the shape. loss_distribution
Churn (trade-count trend)
Average daily number of trades, 1 month vs 6 months. ≥1.3 = broadening (retail crowd piling in); ≤1.1 = concentrated (few hands). One of the WHO axes inside Character. trade_count_ratio_1m_6m
Ticket (ticket-size ratio)
Average rupee ticket size — (Σ traded value ÷ Σ trades) over 1 month vs the same over 6 months. >1 = bigger average orders lately ("blockization"); <1 = shrinking order sizes. Read WITH Churn: ticket ↑ while churn ↓ = fewer, larger hands. Descriptive only — this is the one feature that survived the 2026-07-05 accumulation-footprint study (Cliff's δ +0.33/+0.25 vs both controls); the detector built on it FAILED its pre-registered gate (1/4), so this characterizes, never predicts. Sparse before ~mid-2011 (trade counts absent in the archive). ticket_ratio_1m_6m
T2T/BE exclusion (delivery honesty note)
Every delivery-based measure on this site reads the EQ series only. Names under trade-to-trade surveillance (BE/BZ — delivery is 100% by settlement rule, so "delivery" carries no information there) are excluded, not polluted: while a name is in T2T it simply shows no delivery signals. Scale: ~786 names / ~50.5K symbol-days in the last year. series
ASM / GSM (surveillance state)
NSE's Additional / Graded Surveillance Measures — exchange-imposed stages (margins up to 100%, T2T settlement, trading curbs) on names with unusual price/volume behaviour or weak fundamentals. Shown as context, never a gate: a name entering ASM often sees mechanically forced flows (leveraged positions unwinding), which is information, not a verdict. Ingested nightly from the NSE lists. surveillance_flags
Price band
The exchange-set daily move limit (±2/5/10/20%, or none for F&O names). Band CHANGES are recorded as events — a tightening band is itself surveillance context, and close-at-band streaks ("band-locks") are a queue-imbalance tell. price_bands_current price_band_events
Acceptance ratio (buyback tender)
Shares a company accepts ÷ shares you tendered, published by the company with the offer results. In the small-shareholder category it is structurally higher because SEBI reserves 15% of every tender buyback for holders ≤ ₹2,00,000 by record-date value. On the calculator this ratio is your assumption — realized ratios are not in our data and we refuse to fabricate a prior. source: user input on /markets/events.
Small-shareholder category (₹2L cap)
The SEBI buyback reservation class: holdings ≤ ₹2,00,000 by market value on the record date. The cap is the moat — no large pocket can crowd the reservation, which is why the anomaly persists (personal-scale only). source: SEBI Buyback Regulations; /markets/events.
All-time-high DVPT (⚡)
A flag: today's delivery-value-per-trade beats every day in the stock's entire recorded history — its loudest to-keep footprint ever. The top sort key on the scan, because an ATH-DVPT day is often the day a new strong hand declares itself. is_ath_dvpt
Near-break pointer (next P-wall / gap)
The smallest power baseline today did NOT clear, and how far under it the day sat (negative = below). Within about −10% of the wall with r_score already ≥4 = "kissing the wall" — the breakout-imminent read. r_score next_p_above gap_to_next_p_pct
Institutional price zones
For every R and P baseline, the average CLOSE on the days that fed it — not just how intense the activity was but at what price it sat, a 1m→12m ladder of zones. Companion to Key price (which is value-weighted, power-days-only). avg_close_r* avg_close_p*
Today's ticket (avg qty per trade)
How chunky today's trades were: average shares per trade, and average DELIVERED shares per trade. Rising alongside rising delivery value = fewer, bigger buyers stepping in. (Distinct from the 1m-vs-6m Ticket ratio above.) avg_trade_qty avg_deliv_qty_per_trade
WHICH-WAY (delivery direction skew)
Delivery is side-blind, so this is the closest it gets to a side: the value-weighted skew of delivery toward up-days vs down-days (on adjusted closes) plus the price drift over the same window. More on up-days = absorbed on strength (leans accumulation). One of the Character axes. deliv_updown_ratio_3m accum_price_drift_3m

Price / context — the everyday columns 4

Day change %
Close against the previous close, as a percentage, corporate-action adjusted — so a bonus or split ex-day shows the real move and not a fabricated crash. Computed on read from bhavcopy_rows via adjust.adjustment_factors. bhavcopy_rows
Market capitalisation
Shares outstanding × price — the market's price for the whole company, and the usual way size is compared. Used for grouping and filtering, never as a quality judgement: large does not mean good. mcap
Own-history percentile
A percentile is a position, never a forecast. Where today's reading sits inside this stock's own past range for the same metric — 0 = its lowest, 100 = its highest. Ranking a name against itself rather than against other companies is what lets a ₹3,000 giant and a ₹40 small-cap be read on one scale.
Bhav copy (bhavcopy)
The exchange's official end-of-day file: one row per security per trading day, with open, high, low, close, traded quantity, turnover, number of trades and, in the full version of the file, delivered quantity. Every stock's price, volume, delivery and DVPT reading on this site is derived from it. It is the settled record published by the exchange itself rather than rebuilt from a live feed, and the rows are stored as the exchange printed them, so any figure can be re-derived from source. bhavcopy_rows

Stock snapshot — absolute values 25

Filed revenue
Income from the company's principal business in the displayed reporting period and accounting basis. For financing companies this follows the financing income statement; it is not an operating-company sales proxy. Amounts are in ₹ crore.
Filed sales
Sales from operations in the displayed reporting period and accounting basis, in ₹ crore. A quarterly amount is not an annual run rate.
Filed net profit
Profit after tax in the displayed period and accounting basis, in ₹ crore. Where consolidated group profit and parent-owner attribution differ, the filing receipt identifies that distinction.
Filed EPS
Earnings per share in rupees for the displayed filing period; not a price, percentage or automatically a trailing-year figure.
Filed borrowings
Borrowings represented by the accepted balance-sheet lines, in ₹ crore at the displayed period end. Missing is not zero. Financing templates do not supply the operating-company Borrowings line.
Filed operating profit
Operating-company earnings before the separately presented depreciation, interest and tax lines, in ₹ crore for the displayed period. This is the operating-profit line used in the archive; it is not net profit.
Filed financing profit
Financing revenue less financing interest and expenses as represented by the accepted financing template, in ₹ crore. It is not an operating-company EBITDA measure.
Filed depreciation
Depreciation and amortisation expense represented by the filing, in ₹ crore for the displayed period.
Filed other income
Income separately classified outside the principal revenue line in the filing, in ₹ crore for the displayed period; it may include non-recurring income.
Filed interest expense
Financing costs represented by the filing's interest line, in ₹ crore for the displayed period. This is an amount, not an interest-coverage ratio.
Filed profit before tax
Profit after the reported expenses but before tax, in ₹ crore for the displayed period and accounting basis.
Filed equity capital
Paid-up share capital represented by the balance sheet, in ₹ crore at period end; not market capitalisation or total shareholders' equity.
Filed reserves
Reserves represented by the accepted balance-sheet template, in ₹ crore at period end; separate from paid-up equity capital.
Filed provisions
Charges for expected losses and contingencies in the financing template, in ₹ crore for the displayed period; not cash paid or a stock of total loans.
Filed financing expenses
The financing template's expense line, separate from interest and provisions, in ₹ crore for the displayed period.
Filed operating cash flow
Net cash from operating activities for the displayed period, in ₹ crore; not accounting net profit.
Filed capital expenditure
Cash spent on acquiring fixed assets as represented by the archive's capital-expenditure line, in ₹ crore for the displayed period. Consult the dated statement for the source sign convention.
Filed free cash flow
Operating cash flow after the archive's capital-expenditure deduction, in ₹ crore for the displayed period. It is a stored derivation, not a forecast or a separate profit line.
Stock chart window low / high
Lowest daily low and highest daily high in the displayed chart's trailing 52-calendar-week window. If less history is present, the label says Available year; no unobserved days are inferred.
52-week mean close
Arithmetic mean of valid daily closes in the 52 calendar weeks ending on the displayed chart date; the session count is shown. This is not an intraday mean, fair value or expected return.
52-week median close
Middle daily close in that same window (average of the two middle closes for an even count). It measures price location in the stock's own history, not its standing among peers.
Available-history high / low
Highest daily high and lowest daily low in the loaded adjusted chart archive. They are not called all-time extremes without verified listing-to-date coverage. A new listing or partial archive explicitly names its shorter coverage.
Next-session pivots
Standard floor levels computed from the latest completed EOD high H, low L and close C. P=(H+L+C)/3; CPR is the ordered pair (H+L)/2 and 2P-(H+L)/2. S1=2P-H, R1=2P-L, S2=P-(H-L), R2=P+(H-L), S3=L-2(H-P), R3=H+2(P-L). The source day is shown; these levels describe the following session and differ from stored CPR for the current period. Invalid or stale inputs are withheld. Levels are reference prices, not guaranteed support or resistance.
Delivery zone below / above
Nearest recorded delivery-derived average-close zone on each side of the chart close, using the same signal date and adjusted-price basis. No zone recorded on a side is not a claim that support or resistance is absent. DVPT is separately reported as rupees per trade.
Expiry-specific max pain
Recorded strike minimising total intrinsic call-plus-put payout using that expiry's open interest, excluding option premiums, costs and future changes in positions. The date, expiry and number of recorded strikes accompany the value. It is not a forecast of settlement, or evidence of who holds either side.

Highs and lows — the six-window ladder 5

Period high / period low
The highest and lowest price reached inside the window named by the column — 1 month, 3, 6, 12 or 24. Not an all-time figure: a "12-month high" says nothing about year two. Computed on read from bhavcopy_rows. bhavcopy_rows
Day high / day low
The highest and lowest price traded during the single session shown. Intraday extremes, so they are usually wider than the open-to-close move the day change reports.
From high
How far below the window's high the current price sits, as a percentage. 0% means it is at that high right now; −20% means it has given back a fifth. It measures distance, never direction — a name can be far from its high and still rising.
At high / at low
How many names in the current view are sitting at their window extreme. A count, not a score: many names at their highs describes a broad tape, and says nothing about what happens next.
High − low
The width of the window's range, the simplest measure of how much ground a price has covered. Wide is not the same as trending — a name can swing a long way and finish where it started.

The validation record — what was tested, and what died 6

Pre-registered
Whether the test's rules were written down and frozen BEFORE it was run. This is the whole point of the record: a rule invented after seeing the result can always be made to look good, so an unregistered study is reported as such rather than quietly presented as evidence.
Hypothesis
The claim the study set out to test, in one line — what was expected to happen, stated plainly enough to be wrong.
Gate (written first)
The pass mark, fixed in advance: the specific threshold the result had to clear to count as a success. Writing it first is what stops the bar from moving to wherever the result landed.
Result
What actually happened when the test ran, against that gate. Failures are published here in the same form as passes — a method that did not clear its gate is recorded, not removed.
What shipped
What was actually built on the back of the study, if anything. Often "descriptive only" — the read is published for context while the tradeable claim it might have supported is not, because it failed its gate.
PEAD (post-earnings announcement drift)
A stock's tendency to keep moving in the direction of an earnings surprise for weeks after the result. Tested here, every tradeable construction failed (net return per unit of volatility 0.10 against 0.85 for the Nifty 500), so it is a descriptive event lens, never a book. The drift itself is real as a description, on the good-news side only: on real result dates with no look-ahead, the biggest-surprise names with the highest day-0 delivery averaged +7.62% over the Nifty 500 in the 60 sessions after the result (cohort t 1.92; the median was +1.91%, so a minority of large moves carries the average), while bad news did not drift. The other constructions: 0.06 for the pre-registered within-season version, −0.32 at 1.5× costs and −0.58 hedged against the index. The drift builds between 22 and 60 sessions and is about zero at 5. It is shown on the Results reactions page. Recorded: the strategy ledger, experiment of 2026-07-05.

Relative Strength 8

RS rank (1–99)
The stock's relative-strength percentile vs the broad universe; higher = stronger. rs_rank
Rank in size group (1–99)
The SAME relative-strength momentum as RS rank, but percentiled only against companies in the stock's own NSE cap index (Nifty 50 / Midcap 150 / Smallcap 250) as of that trade date, instead of against the whole universe. Measured against: its own size cohort. How to read: 99 = strongest in its size group. A percentile removes what every name shares, but not a force that pushes on big and small companies differently — so the market-wide RS rank quietly ranks SIZE alongside strength. Measured 2026-08-30: the Nifty 50 supplied 1.5% of the market-wide top RS decile against an 11.1% neutral share, and holding size constant changes ~10% of that decile (net of the reshuffle any grouping causes). Descriptive — a high rank inside a weak size group is still a weak name outright. source: computed on read; shown on the Strength board's "Size-adjusted" view.
Size-group gap
Rank in size group minus the market-wide RS rank. (Named without a parenthetical on purpose: the glossary adapter strips (...) when it derives a lookup key, so "Gap (size group vs market)" collapsed to the already-taken word gap and was silently dropped — no popover, and Pat could not explain the column.) A large positive gap is a name the market-wide board buries because of its size rather than its strength. gap rs_cohort
RS vs broad / sector
Price ratio of the stock vs Nifty 500 (broad) and vs its sector index, each with a trend-state + slope per 1/3/6/12m. The sector half is not point-in-time, and on a long history that matters. Every historical rs_vs_sector_ row uses today's sector assignment as its denominator — a stock that changed sector, or that was classified later, is measured across its whole past against a sector it may not have been in at the time. This is a stated limitation, not a silent approximation: the point-in-time correction is impossible rather than skipped, because sector-membership snapshots only begin in June 2026 and no earlier map exists to key on. The broad half is unaffected — Nifty 500 is one series and needs no per-stock assignment. Read sector RS over long windows as directional, and read a recent window as sound. rs_vs_broad_* rs_vs_sector_* rs_vs_sector_* rs_vs_broad_*
New 52-week RS high
The stock's price ratio against the benchmark closed at a fresh 52-week peak — strength at a new extreme relative to the market, which is not the same as a new price high (a name can make this in a falling market by falling less). Descriptive of the ratio only. rs_vs_broad_new_52w_high rs_vs_sector_new_52w_high
RS heat strip
4 cells (1m/3m/6m/12m) of the RS slope — ▲ outperforming · ▬ flat · ▼ lagging.
Primary sector
The narrowest NSE sectoral index the stock belongs to (smallest membership; size/broad indices excluded) — its tightest real peer group; null when it sits in none. What sector-RS and the leaders/laggards boards group by. primary_sector
Leaders & laggards (strong-in-strong)
A synthesis, not a column: leaders rank high on BOTH market and sector RS while their sector itself trends up; laggards are the mirror. The "where is the market actually putting its money" board. Computed on read from rs_rank + sector trend + RS trend-state. rs_rank

Move attribution — where a move came from ("The read") 6

Move attribution
A split of one stock's move over a window into three parts that add up to the whole: the market, its sector, and the company itself. Every leg is measured on the SAME window. It is arithmetic on published index returns — it says where the move sat relative to two reference series, never why anyone traded, and it is not a factor model. Computed on read from adjusted closes + index_signals.ret_*_pct.
Market part
How far the broad benchmark (Nifty 500) itself moved over the window. The share of a stock's move you would have got from simply being invested in the market.
Sector part
How far the stock's sector index ran ahead of (or behind) the broad benchmark — sector return minus market return. Positive means the sector beat the market; it says nothing about this particular company.
Company part
How far this name ran ahead of (or behind) its own sector — stock return minus sector return. The part of the move that is specific to the company rather than shared with its peers. (computed on read)
Undivided remainder
What the page shows instead of a sector split when the stock's sector has no matching index series: everything after the market part, left as one number. Deliberate — the sector and company parts are not separable without that series, and guessing the join would be a fabricated number. Shown as "its sector and the company, together".
Trigger band
The band today's delivery positioning falls into when ranked against this stock's OWN delivery baselines — not against other stocks, so a large-cap and a small-cap read on one scale. A higher band means today cleared more of its own baselines. Descriptive of the tape; it is not a signal to act on. trigger_band

Quality — pt14 (the 14-pattern durability screen, rule-based, no LLM) 5

ns_base (0–100) — *this is the "pt14" number you see*
Normalized score = pws ÷ MAX_CWS × 100 (MAX_CWS = 582). NATCO 46, Adani 29, etc. ns_base
pws (raw)
The raw sum of the 14 pattern scores (~148–266). Internal; no longer shown (it was the confusing "266").
PAC (x/14)
"Patterns Actively Confirming" — how many of the 14 patterns are firing. pac
Tier — T1 / T2 / T3 / T4
Quality band off ns_base + the quality-gate:
Fundamentals snapshot
The cached fundamental set behind pt14 and the fundamentals screens: valuation (PE/PB/dividend yield), returns (ROCE/ROE + 3y averages), growth (sales/profit 5y/3y/TTM), margins (OPM), balance sheet (D/E, cash, interest cover) and ownership (promoter holding & pledge, FII/DII). A Screener-era legacy feed being migrated to primary NSE/BSE XBRL filings — valuation ratios can lag the latest results until XBRL covers them. source: fundamentals table. fundamentals

Capital allocation — C (what management did with incremental capital) 3

ca_score (0–100)
Has management compounded incremental capital well, or just grown size? Blends return on incremental capital (ROIIC), ROCE level and trend, dilution drag (profits growing faster than per-share earnings = quiet share issuance), the share of growth funded by debt, and growth efficiency — each mapped smoothly around documented economic anchors, deliberately no cliff thresholds. Banks/NBFCs are scored on an ROE/ROA model instead (leverage IS a lender's business, so ROCE/ROIIC are meaningless there). Recomputed nightly, point-in-time. Inputs currently come from the frozen Screener-era fundamentals archive — migrating to BSE/NSE XBRL under the primary-source policy. ca_score capital_allocation_scores
C tier — EXCELLENT / GOOD / AVERAGE / WEAK / POOR
The ca_score banded by cross-sectional quintile within the same model (industrial vs financial) — relative standing among peers scored the same way, never a fixed cutoff. ca_tier
C-blend (0–100)
mean(risk-adjusted-momentum percentile, C percentile) — a DESCRIPTIVE tilt of price strength toward well-allocating managements; names without a C score take the neutral 50th percentile. In the recorded walk-forward test (strategy ledger, Experiment 2026-07-03) this blend kept the momentum portfolio's return while cutting its worst drawdown by about a third. Shown as context on the momentum scanner — never a buy list, never a hard veto (both harder shapes tested WORSE).

Conviction (the cross-pillar composite) 3

Conviction (0–100)
A composite that floats the strongest cross-pillar names to the top of the screener. Today it blends two inputs into one positioning-weighted 0–100 sort key: institutional positioning strength (the power score) and relative-strength rank. (The exact blend weights are internal — see the calculations reference.)
★ (triple-confirm flag)
= a strong power score and a high relative-strength rank and quality not failing — the "all aligned" headline.
⚠ Honest caveats (important):

Price / context 12

CMP · Δ%D · Deliv%
current price · day change % · delivery %.
Day change (Δ%D)
Today's close against the PREVIOUS session's close, in per cent — the one-day move, exactly as the exchange printed it. Computed on read from stored bhav-copy columns, never stored. Blank when the previous close is missing or zero (a name's first traded day, a fresh listing): unknown reads as unknown, never as a 100% move. Raw close, not adjusted — a cross-day comparison spanning a split or bonus belongs on the adjusted series instead. (computed on read) chg_pct prev_close
Day range position
Where the close finished inside the day's own trading range, 0-100: 0 = closed at the day's low, 100 = at the day's high, 50 = mid-range. A descriptive read of who held the tape into the close, not a signal. Blank when the day's range is zero or missing (a band-locked name has no position inside a range that does not exist). (computed on read) day_range_pos
52w%
% below the 52-week high; near 0 = near highs. pct_from_52w_high
52w pos
Where today's price sits in its own 52-week low-to-high range: 0% = at the 52-week low, 100% = at the 52-week high.
Δhot%
close vs the hot-day average price; negative = discount to where the action happened. price_vs_hot_avg_pct
Close (raw vs adjusted)
The session's last traded price as printed — NOT split/bonus-adjusted. Every cross-time comparison on this site uses the ADJUSTED close instead, so a 1:1 bonus doesn't read as a 50% crash. close adj_close
Average price (VWAP)
NSE's daily volume-weighted average price — the honest "where it actually changed hands", weighting every trade by size instead of taking the last tick. Feeds the value-weighted cost lines. avg_price
Delivery quantity
Of all shares traded, the number taken to demat (bought to keep) rather than squared off intraday — the footprint of buying for keeps. Cross-time reads always use delivery VALUE, not this raw count (see "Value, not quantity" under Concepts). deliv_qty
Delivery %
Delivered quantity as a share of traded quantity — the day's settlement. A move on high delivery % carries more weight than the same move on intraday churn. deliv_per
Traded value (turnover)
Total rupees that changed hands — every trade, delivered or not. Distinct from delivery value (the part that stuck). value
Number of trades
How many separate trades printed — the "how many hands" read, and the denominator of DVPT. The same delivery value across many small trades (broadening retail) reads very differently from a few large ones (concentrated). num_trades

CPR — Structure (the 4th pillar) 10

CPR / Pivot · BC · TC
From the prior period's H/L/C: Pivot = (H+L+C)/3 · BC = (H+L)/2 · TC = 2·Pivot−BC. The band is [min(BC,TC) … max(BC,TC)], centred on the pivot. Built from split/bonus-adjusted prices.
Width% (the coil metric)
(TC−BC) ÷ Pivot × 100. Smaller = narrower = more coiled (a bigger move pending). Shown per timeframe (D%/W%/M% in the screener). width_pct
Compression percentile (Comp%)
How narrow today's CPR is vs this stock's own history — the fraction of the trailing N CPR widths (≈252 D / 52 W / 24 M) that are wider than now. High = unusually coiled FOR THIS STOCK (the truer "unusual" than a flat %). compression_pctile
Pattern — U / ∩
A reversal: three consecutive CPRs where each leg is a clean directional step (both band lines move the same way). BULL_U = down-step then up-step (a bottom); BEAR_INVU (∩) = up-step then down-step (a top). pattern
Rank — R1…R4
Narrowness of the two recent bands, with C0 (today's coil) the priority bar: R1 both narrow (sharpest) · R2 C0 narrow · R3 C1 narrow · R4 neither. Derived on read vs a per-timeframe width knob (exact values internal).
★ Structure tier (the cross-TF conviction)
A reversal on a faster timeframe is amplified when slower timeframes are also coiled/aligned — the larger TF carries more weight. The score sums the base rank with weighted contributions from each other timeframe's coil / reversal / regime alignment plus confluence (exact weights internal). Transparent tiers: ★★★ Prime (strong base + a higher TF coiled+aligned + regime) · ★★ Strong (strong base + some higher-TF support) · ★ Setup (reversal present, little higher-TF support). Always shown with its D·W·M breakdown. Derived on read — weights are tunable, nothing re-materialized.
Regime
Sign of close vs the pivot: above (+) / below (−). The higher-TF trend context that the amplifier rewards. regime
Confirmed
Price has engaged the turning band (bull-U: close > TC; bear-∩: close < BC). A confirmed flag, not a gate — unconfirmed "forming" setups still show. confirmed confirmed
Fresh (days-since)
Bars since the pattern first appeared on that timeframe — 0 = formed this period (fresh surfaces first; a stale signal isn't a signal). days_since_pattern
Separation% / Depth%
Secondary quality (displayed, not gates): separation = full non-overlap on the turn leg; depth = how far the valley/peak over-ran the lead-in (size of the move being reversed). separation_pct depth_pct

Tracking — the action loop (UI Phase 1) 11

Watchlist vs Portfolio
Two stages of one tracked idea. Watchlist (watch) = a lightweight idea, no entry needed. Portfolio (open) = a committed position-under-a-strategy, with a recorded starting price + a thesis. Promote watch → portfolio when you commit; Close moves it to closed. watch open closed
Frozen snapshot
The signal values captured at add time (conviction · p/r · rank · ×power · key-gap · RS · pt14 · character), stored once. Why: the daily stock_signals row is overwritten nightly, so this is the only honest record of what you saw when you added it. stock_signals
Conv then→now
The frozen Conviction at add vs its live value today — green if it strengthened, red if it faded. Shows a thesis ageing.
Mark-to-market (MTM) / P/L%
(live close − entry) ÷ entry. Entry = the latest close on the add date (auto-captured). Live close via an indexed point-lookup.
Hit-rate by strategy
Of the closed positions in a strategy, the % that exited above entry. Read alongside avg return. (Populates as you close trades.)
Excess vs Nifty 500
A closed position's return minus the Nifty 500's return over the same window the position was open — the benchmark gap (am I beating the index?).
Avg hold
Mean calendar days from add to close, over closed positions.
Time-weighted return (TWR)
The book's return with the timing of your deposits removed. Each session's move is measured over the names held on both sides of that session, and the sessions are chained — so a position arriving never reads as a gain. It answers how did the selection do. Needs prices only, so it is computable from the position ledger.
XIRR (money-weighted return)
The annual rate that makes your dated cash flows net to zero — it answers how did my money do, so a big position bought late moves it more than TWR. It requires a complete cash-flow ledger (every rupee in/out, on its date, adjusted for splits and bonuses).
Cash-flow fidelity check
The measured pre-condition for XIRR (ratified plan §K.4): are all positions dated and quantified, does any symbol appear as several lots (so averaging in/out cannot be reconstructed), and does any split/bonus/dividend fall inside a holding period (so stored quantity and received cash are wrong)? Any failure means the tracker withholds XIRR and prints the reason instead.
Deepest fall (max drawdown)
The largest peak-to-trough decline of the time-weighted curve, with the dates of that peak and trough. Descriptive of the window shown; not a risk forecast.

Stock chart patterns and comparisons 2

Elliott impulse candidate
Retrospective 0–5 swing labels on adjusted OHLC; nested subwaves are unverified, so this is not a full Elliott count, signal or forecast. The candidate checks alternating legs, wave 2 staying inside wave 1, wave 3 exceeding wave 1 and not being shorter than both waves 1 and 5, wave 4 avoiding wave 1's territory, and a fifth wave beyond wave 3. Nested 5-3-5-3-5 subwaves are unverified: this is a retrospective candidate, not a complete Elliott count, signal or forecast. Diagonals, truncated fifth waves, corrections and degrees are outside this subset. Daily, weekly, monthly and quarterly each use their own bars. Pivots reuse the existing ATR reversal engine at 1.5, 2.5 and 3.5 ATR; duplicate coordinates count once. Rules: [Elliott Wave International](https://www.elliottwave.com/articles/elevate-your-elliott-wave-analysis/) and its [Impulse description](https://www.elliottwave.com/waveopedia/impulse/). elliott_impulse_candidate
Chart relative strength
The subject stock's adjusted close divided by a chosen stock or index on matching sessions, rebased to 100 at the first shared session in the loaded tape, with its 50-period average. Rising means the subject is outperforming that comparator; it is a ratio, not a return or forecast. Missing comparator sessions remain blank. A company name resolves to its ticker; an unavailable explicit comparator is never silently replaced by a market index. With no comparator specified, the existing broad-index preference applies. chart_relative_strength

RS depth — Rotation Map (relative-strength level + direction) 6

Strength level (~100)
Where the RS line sits relative to its own recent history, smoothed and re-centred so 100 is normal. Above 100 = outperforming the benchmark by more than usual; below 100 = lagging. The x-axis of the Rotation Map. rs_ratio
Strength direction (~100)
The rate of change of the strength level - is relative strength building or fading, on the same 100-centred scale. Above 100 = relative strength is accelerating; below 100 = decelerating. The y-axis of the Rotation Map. rs_momentum
RS Quadrant — Leading / Weakening / Lagging / Improving
The Rotation Map cell from the strength level × direction: Leading (strong & still accelerating) · Weakening (strong but decelerating) · Lagging (weak & still decelerating) · Improving (weak but turning up). The classic clockwise rotation reads Improving → Leading → Weakening → Lagging. quadrant
RSI-of-RS (0–100)
A 14-period RSI run on the RS line itself (not price) — is the relative performance overbought or oversold? >70 = relative outperformance stretched; <30 = relative underperformance stretched. rsi_of_rs
Mansfield RS (zero-centred %)
The RS line vs its own long (~200-day) average, as a % deviation. Above 0 = RS above its long-term trend (structurally leading); below 0 = lagging. Unlike RSI it does not saturate in a strong trend, so a fresh cross of 0 is the robust turn. mansfield
Rotation turn flags
Descriptive base-and-turn markers: momentum crossing 100 up/down, an emerging base (momentum turning up while still lagging), a leader cracking, Mansfield crossing 0, an RSI-of-RS oversold turn, and RS divergences where price and RSI-of-RS disagree. Each a 1/0 flag. rs_extras

RS Band — support & resistance on relative strength 9

RS band % (0–100)
Today's RS level as a recency-weighted percentile of its own trailing 3-year range. 0 = at historical RS support (cheap vs its own history); 100 = at RS resistance (rich). Read together with the regime — "cheap" on a de-rating trend is a trap. rs_band_pct
Band label
Plain-word band off the %: At RS support (≤15) · Lower band (<35) · Mid-band (<65) · Upper band (<85) · At RS resistance (≥85). rs_band_label
Support / median / resistance rails
The recency-weighted 5th / 50th / 95th-percentile RS levels — the floor, fair-value line, and ceiling on the chart. rs_band_low rs_band_mid rs_band_high
POC — point of control
The single most-visited RS level over the history — the fair-value magnet RS keeps returning to (a Market-Profile read). rs_poc
Value area (VAL–VAH)
The narrowest RS band that contained ~70% of all observations — where RS spends most of its time. Inside = ordinary; outside = unusual. rs_val rs_vah
Break state — INSIDE / TOUCH_SUP / TOUCH_RES / BREAKOUT_UP / BREAKDOWN_DN
Whether RS is inside its envelope, merely touching a rail, or has confirmed a structural break (cleared by a buffer, held ~a week, momentum agreeing). BREAKOUT_UP = a re-rating; BREAKDOWN_DN = a de-rating. A single wick reads only as TOUCH. rs_band_state
Regime — MEAN_REVERTING / TRENDING
The honesty gate. MEAN_REVERTING = RS oscillates in a range → the cheap/rich read is valid. TRENDING = RS is on a multi-year re-rating run → a break means the trend continues, not exhaustion. From how well a straight trend fits the RS history plus its drift. rs_regime
Detrended band % (0–100)
The band percentile on the trend-removed (Mansfield) RS series — "rich vs its own history but NOT vs its trend." Separates a genuinely stretched name from one simply high because it is steadily re-rating. rs_band_pct_detr
Band width % / maturity
Width = resistance-to-support spread as a % of the median (how wide the envelope is). Maturity = full (≥3y, scored) or provisional (2–3y); under 2y no verdict. rs_band_width_pct band_maturity

Open interest — what the number actually counts 4

Open interest
Counted in SHARES, not in contracts and not in rupees. It is the exchange's own figure for how many shares' worth of a contract are still open, summed across expiries. A raw reading of a few hundred million is therefore normal, and means shares. oi open_interest fut_oi_shares
Open interest in rupees
Open interest becomes money only when multiplied by a price: open interest times the day's underlying close gives a rupee value. Nothing else in the estate converts it, so any column showing rupees against open interest is that product and should say so. oi_value fut_oi_value
Open interest sanity check
Which of the two you are looking at: the whole stock-futures segment carries a rupee value on the order of 1.5 to 2 lakh crore. A total three orders of magnitude below that is a quantity, not an amount.
Option face value
Also called notional, and it is NOT a book value. Every open option priced at today's spot is a face value. It overstates what is actually at stake by roughly fifty to a hundred times, because an option's price is a fraction of the underlying. A screen may show it, but must never call it a book value or imply money at risk. option_face_value opt_notional

Evidence tags — how each F&O number is known 1

Evidence tags (observed · derived · inferred · unknowable)
OBSERVED = sits in a primary-source exchange file exactly as stored (open interest, volume, a close). DERIVED = reproducibly calculated from observed numbers with zero judgment (PCR, an own-history percentile, max-pain, OI value). INFERRED = a probabilistic interpretation with stated assumptions and competing explanations — price-plus-OI labels like "long buildup" never identify who traded, since every open contract has a long AND a short. UNKNOWABLE = not responsibly recoverable from available data (who holds each side, per-stock participant split, EOD bid/ask depth) — stated on the page instead of silently proxied. source: contract published with the F&O pages.

Evidence receipt — the five fields that travel with a surfaced name 6

Evidence receipt
The five-field block that accompanies a surfaced name: rule · source · knowable at · base rate + n · falsifier. Nothing in it is written by hand — each field is resolved at read time from a record that already exists (the strategy page, the provenance registry, the feed manifest, the validation ledger), so editing the record moves the receipt and there is no second copy to drift.
Rule (evidence receipt)
The one-line definition of the method that put this name on the surface, quoted from that method's canonical reference page rather than paraphrased. Three answers are possible and they are kept distinct: the rule itself; "no selection rule — this surface filters nothing", which is a finding, not a gap (a filings register, a surveillance list and a point-in-time replay each publish what the exchange published and select nothing); and "not recoverable", which means we looked and could not tell. Reporting the second as the third would report a fact as ignorance. source: the canonical reference page for each method.
Source (evidence receipt)
The honest origin of the numbers behind the claim — the exchange file, the filing register or the computation. It names every origin in the chain, not just the last step: a number we computed from a vendor's data is disclosed as ours and theirs, because a derived value does not launder where its inputs came from. Two separate postures are shown under their own names — redistribution (whether we may republish it, taken as the most restrictive link in that chain) and feed licence (the terms of the feed it arrived on). source: the provenance registry and the feed manifest.
Knowable at
The date this could first have been known, and whether that date is real or modelled. A real date is an exchange trading date, a first-seen fetch, or a filed event date; a modelled one is a synthetic uniform lag applied where no real timestamp exists, and it is labelled MODELED so it can never be mistaken for an observation. This is resolved along the whole chain: a value computed from a modelled input inherits that modelling and says so, rather than presenting itself as observed. Where a surface has no per-row point-in-time date, the feed's own written clock rule is given instead; where there is neither, the field says so rather than showing a category word in place of a date. source: the provenance registry's basis field and each feed's written clock rule.
Base rate + n
How often a pattern has held for this name — a within-name frequency, never a forecast and never a cross-sectional rank — always shown with the sample size it rests on. A rate with no usable sample is withheld — a score is never shown without its n. The monthly figure is the share of the recorded years in which that calendar month's market- and sector-stripped residual return averaged above the name's own expanding prior-years median. Each of those three words is load-bearing: it is not the name's raw return (the market and its sector are removed), the comparator is a prior-years median rather than an average, and the thing counted is a year, not a month. It is published only above the seasonal instrument's own certification threshold and only for a cell that passed that instrument's gates; below either, the field says so instead of showing a number. It is withheld entirely on a surface that can select names by this very statistic, since the criterion cannot also be the evidence. Descriptive: a within-name frequency, never a forecast and never a cross-sectional rank.
Falsifier
What would make this claim wrong, and where the method has already failed. It leads with the settled failure record — what was tried, what it returned and why it died — because that is the falsifier; the how-well-tested label qualifies it and comes after. A handling fence is not a falsifier and never fills this field: a rule about how data may be used states nothing that could turn out to be false, so where a fence is all that exists the field reads as unproven and names the fence as the reason. "No settled test on record" means unproven, not working. Figures quoted from the record are omitted here rather than shown without the universe and period that qualify them — the receipt carries the verdict and points at where the numbers are stated in full.

Own-history map — every metric ranked vs the stock's own past 5

Self-relative percentile (0–100)
Today's value of a metric ranked against that same stock's own trailing 3-year history of the metric. 0 = a 3-year low for it; 100 = a 3-year high for it. Puts a ₹13,000 giant and a ₹180 small-cap on one scale ("how unusual is today, for you") — unlike an absolute level or an RS-vs-benchmark read. Price and momentum percentiles use a split/bonus-adjusted close (raw NSE close would fake a crash on a bonus); delivery-%, ₹ turnover and range are action-neutral. source: computed on read. self_history_view
Coil (range percentile)
The recent daily range — (high−low)/close, 14-day smoothed — expressed as a self-relative percentile. Low = wound tight / quiet versus its own history (coiled); high = expanded / violent. A low coil beside a high price percentile is a stock drifting quietly at its own highs. source: computed on read.
Hollow high
A descriptive pattern on the own-history map: a name at a high self-relative price percentile (near its own 3-year high) but a low turnover percentile — drifting up on the thinnest participation in three years, a signature a price chart hides. Not a signal. source: computed on read.
Cross-sectional percentile (the peer lens)
The companion to the self-relative percentile: today's value ranked against the rest of the universe today, not against the stock's own past. On the own-history map each cell shows both — the big number is vs its own 3-year history, the small number is vs its peers. Turnover carries no peer rank (raw ₹ turnover is a size proxy — a giant always ranks top), so it stays self-only. source: computed on read.
Confluence (self × peers)
A cell marked with a gold ring on the own-history map is extreme on both lenses at once — unusual for the stock and unusual vs its peers today (both ≥80th or both ≤20th percentile). The two-lens agreement is a stronger, less noisy read than either percentile alone. Descriptive, not a signal. source: computed on read.

RS Rotation — the weather phase 2

Phase — 🌤 Tailwind / 🌅 Recovery / ⛅ Rolling-over / 🌧 Headwind / ☁ Neutral
Tailwind = strong and still strengthening. Recovery = a deep base turning up (long-horizon RS still negative but 1m turning). Rolling-over = a leader cracking (12m still positive but 1m rolling down). Headwind = weak and still weakening. Neutral = no clean signature. rs_phase
Rotation pills
Short badges showing why a phase fired / what confirms it: RS▲>price (RS at a new 52w high while price is still off its high), ⚡accel / ⚡down (RS term-structure stacked up 1m>3m>6m>12m / stacked down), ✅deliv (delivery-backed turn), RSI hot / RSI cold (RSI-of-RS overbought / oversold), abs✔ (absolute price trend also up). Descriptive tags. rs_phase

Global macro — the rupee against the other destinations (cross-asset) 12

Global macro RS
The whole lens: each asset class's rupee return over 1w/1m/3m/6m/12m, expressed as its difference against Indian large-caps (the NIFTYBEES ETF). The basket is FROZEN — India large-cap, India mid-cap, US equity (Nasdaq-100), Hong Kong / China, gold, silver, cash, Indian government bonds (8–13 yr) and Bitcoin — and changing a leg needs a recorded decision, not a judgement call. NIFTYBEES macro_rs
Government bond leg (8–13 yr G-Sec)
The duration row, and the basket's only structural gap until 2026-08-04: it had a cash line and no bond line, so "where should the rupee sit" could not be answered for the asset class most Indian savers actually hold. It is NSE's Nifty 8-13 yr G-Sec total-return index, not a gilt ETF — LTGILTBEES tracks the same exposure and trades ₹4.43 cr/day, but prints 25–35 flat closes a year against the index's 0–2, and an equal-volatility control shows the tick size cannot explain that, so those are non-trading days wearing the costume of data. Constant-maturity, so its duration is stable across the whole history. Descriptive only, like every other row — it reports where value has already gone and is never a view on rates. LTGILTBEES macro_rs
Clean-price index trap
Why the bond row's name is load-bearing. NSE publishes a … (Clean Price) twin of its G-Sec indices which excludes the coupon — nearly all of a bond's return. Measured on the same underlying over the same 10.73 years, the total-return line compounds +6.33%/yr while the clean-price twin returns −0.61%/yr, a 6.94 pp/yr gap. A leg built on the wrong string would report Indian government bonds as a decade-long loss, silently and plausibly. The engine therefore refuses any index name ending in that suffix outright rather than trusting a future session to remember. macro_rs
Rupee context strip
The USD/INR move over the same five windows, shown beside the board and deliberately not as a leg. Every international row is a rupee claim on a foreign asset, so the currency move is already inside its number — a reader looking at a strong Nasdaq row cannot otherwise tell how much was the Nasdaq and how much was the rupee. This does not decompose that (decomposition needs the foreign index, which the archive does not hold); it shows the move's size and direction next to the number it is buried in. It cannot become a leg: USD/INR as stored is a reference rate with no NSE-listed vehicle behind it, so ranking it beside gold would assert a return nobody could have earned. The sign is stated in words on the face — positive means the rupee strengthened — because "USD/INR rose" and "the rupee weakened" are the same event and readers reliably invert it. macro_rs flows
Horizon sweep
The five-window ladder (1 week / 1 month / 3 / 6 / 12 months) of how far ahead of or behind Indian large-caps each leg finished, in percentage points. A blank cell is an absence, not a zero: that leg has no price history spanning the window, and an absent print and a flat print are different failures that both look like data. macro_rs
Sweep phase — Leading / Weakening / Improving / Lagging
The shape the five horizons make together: long horizons (6m/12m) say where a leg has BEEN against India, short ones (1w/1m) say where it is GOING. Leading = ahead and still pulling ahead · Weakening = ahead but giving it back · Improving = behind but starting to close · Lagging = behind and still falling behind. Reads blank unless all four constituent horizons are covered — a phase inferred from half a sweep is a shape nobody measured. macro_rs
Rotation quadrant (cross-asset)
The same four words read a different way: the smoothed, continuous strength-and-direction position of the leg ÷ benchmark price ratio, the identical engine the sector Rotation Map uses. It is reported beside the sweep phase, never merged with it — the two are different constructions, and when they disagree that is information about the leg (a smooth drift versus a recent snap), not an error to reconcile. macro_rs
Asset-class rotation map
The 2×2 those quadrants make, plotted as position on two labelled axes: strength left–right (where it stands vs India), direction up–down (which way that is heading), with the 100/100 crosshair drawn and named as India itself. Position is the datum — there is no series and no fill. macro_rs
Benchmark row (why it has no phase)
Indian large-caps is the benchmark, so its RS is 0.00 against itself at every horizon by construction. A flat sweep would be labelled "Leading" — arithmetically true, factually false — so the benchmark row deliberately carries returns and no phase. macro_rs
International wrapper caveat (premium / discount)
The US and Hong Kong rows are NSE-listed ETFs, not the foreign indices. Since early 2022 the RBI's US$7bn overseas-investment limit has frozen fresh unit creation in Indian international schemes, removing the arbitrage that holds an ETF near its iNAV; reported premium episodes of 5–15%+ open and later decay. Such a move is a return to the wrapper, not to the asset class, and over 1-week and 1-month windows it can dominate the reading. Patearn does not put a number on it — the archive holds no iNAV and no foreign index, and every NSE international ETF sits under the same limit, so there is no control. Read those rows for direction, not magnitude. macro_rs
US leg is Nasdaq-100 (not the US market)
MON100 is the only US ETF on NSE liquid enough to carry a number; the broad-market alternative trades under ₹1 crore a day. So the "US equity" row is large-cap and growth-tilted, which is said on the page rather than in a footnote. Its history is extended back to 2011 by splicing its own former ticker N100. MON100 N100 macro_rs
Cash leg (why it is an index, not a liquid ETF)
LIQUIDBEES and its siblings are dividend-reinvest: the price is pinned at ₹1,000 forever and the entire return arrives as units the bhav copy does not record, so a price-based cash leg would have read exactly 0.00% at every horizon for sixteen years while the real return was ~6%/yr. The cash line is NSE's own Nifty 1D Rate Index total-return series instead. LIQUIDBEES macro_rs

Institutional flows — settled money vs the same-day tape 11

Net institutional flow (₹ crore)
The figure both series below report: gross purchases minus gross sales for a class of investor over a period. Positive = accumulation (that class put money in), negative = disinvestment. Market-level, never per stock, and always in rupees rather than share counts, which corporate actions would corrupt. Every cumulative shown carries the number of sessions (n) it was summed over. net_value net_cr
Settled flow (confirmed)
NSDL's custodian-confirmed net equity investment — money that actually changed hands, published by the depository that settles the trades. Archive reaches back to 1999 for foreign (FPI) flow. It lands a day or so later than the exchange tape. fpi_flows_nsdl dii_flows_nsdl
Provisional flow (the T-day tape)
NSE's same-day post-close print of FII/DII cash-market buying and selling. It is what the market actually reacted to on the day, and it is not settled money. The exchange keeps only a rolling ~30-day archive. fii_dii_flows
Sign agreement (provisional vs settled)
How often the two series agree on the direction of foreign flow on the same date. Measured at 63.3% on n=30 (±17.2pp at 95%), mean absolute gap ₹2,540 cr, worst day ₹10,022 cr — one session read −₹533 cr provisional against +₹9,489 cr confirmed. They measure different populations so some gap is expected; what matters is that the direction itself is not reliable day to day. The interval is wide because the overlap is capped by NSE's rolling window, and it tightens as that table accrues forward.
Settled-history percentile
Where the confirmed net for its own latest date sits inside the confirmed archive's own history — for foreign flow that archive is 6,722 sessions back to 1999. It replaces the old "position in a ~1-month range", which was all the rolling ~30-day provisional table could support and said almost nothing. 🔴 It ranks the confirmed value, never today's provisional number. The two series agree on the direction of foreign flow only ~63% of the time, so ranking one inside the other's distribution would be a cross-measurement claim made to look authoritative by a deep denominator — which is why the confirmed value and its own date are printed beside the percentile. The headline above it stays provisional, because that is what "today" means before settlement.
Why domestic (DII) shows no percentile
The confirmed DII archive is only ~44 sessions deep. A percentile over 44 observations is a range position wearing a better word, so it is refused and the depth is stated instead — the same discipline as an exhausted window.
Day size for its own regime (the settled-flow percentile)
Where the latest settled day's flow sits against the whole 1999→ archive — after each day is divided by the median |flow| of the previous 250 sessions, so eras are comparable. The scaling is not a refinement, it is what makes the number mean anything: the typical daily flow grew about 58× between 1999 (₹42 cr) and 2026 (₹2,429 cr), so an unscaled percentile rates an ordinary day at the 11th percentile in 1999 and the 89th in 2026 — it reports the calendar, not the flow. Ranks magnitude only; the direction (bought / sold) is stated beside it, never folded in. It describes the settled series on its own date, never the provisional tape — ranking one inside the other's history is wrong by a median 22 percentile points.
Prevailing day-size (the regime scale)
The median |flow| of the last 250 settled sessions — the plain answer to "what counts as a normal day right now?", and the divisor behind the percentile above. Median rather than mean on purpose: one ₹20,000 cr session would drag a mean and rescale every day around it. regime_median_cr
Window exhausted ("not measured")
A cumulative window whose archive is shorter than the window it names. When a 3-month, 6-month and 12-month cumulative are identical to the rupee, that is not twelve months of flat flow — it is the same sum relabelled three times. Those cells print "not measured" with the true depth rather than a number, because a figure under a "12 months" heading that covers 30 sessions is a claim about a span nobody observed. Every printed cumulative carries its own n (sessions). cum_*_n
Bulk deal
A trade, or one client's day total, in one stock above the exchange's disclosure threshold, currently 0.5% of the company's listed shares. The exchange names the client, side, quantity and average price after the close. A name records who traded, not why, and it arrives after the trade has printed. The trade executes in the normal market and prints on the tape like any other, which makes the disclosure one of the few places a named buyer or seller appears rather than an unnamed footprint inferred from delivery. bulk_block_deals
Block deal
A single large trade agreed between two parties and executed in the exchange's separate block-deal window rather than on the continuous order book, above a minimum order size and within a narrow band around the reference price, both set by SEBI. The exchange names the clients, side, quantity and price after the close. Because it is matched outside the continuous tape, a large holding can change hands without moving the open-market price the way the same size would, which is why a big change of ownership can happen on a day the chart looks ordinary. bulk_block_deals

Capture — how a sector behaves on up vs down days 4

Down-capture (ratio, <1 good)
On the days the benchmark fell, the fraction of that fall the sector took. <1 = fell LESS than the market (defensive); >1 = fell harder. down_capture_63 _126 _252
Up-capture (ratio)
On benchmark up-days, the fraction of the rise the sector captured. >1 = rallied more than the market; <1 = lagged the rally. up_capture_63
Down-excess (% per down day)
The denominator-free "falls less": the average by which the sector beat the benchmark on down days. Positive = falls less than the market. More robust when moves are small. down_excess_63
Capture spread
Up-capture minus down-capture. High = "all-weather" (captures upside while shielding downside); low/negative = worst of both. capture_spread_63

Homepage market context 4

Accumulation balance
100 × (mep_acc − mep_dis) / mep_n, expressed in percentage points. The numerator counts stocks in accumulating versus distributing smoothed states; the denominator includes all classified states, including neutral. Counts accompany the value. This is breadth of the accumulation footprint, not traded money or expected return. market_internals_daily
Sector performance and market gap
Sector index percentage return over 1, 5 or 21 Nifty 500 sessions, with both series sampled on identical start/end dates. The market gap is sector return minus Nifty 500 return, in percentage points. Missing endpoints withhold that window; overlapping sector indices are not a partition of the market. index_rows
Turnover versus own month
Current turnover divided by that stock's stored one-month average, a multiple. Delivery versus normal is today's delivered percentage minus its own one-month average, in percentage points. These describe unusual activity without combining it into a buy score. Sources: turnover_surge_1m, avg_deliv_pct_1m, bhavcopy_rows.deliv_per. turnover_surge_1m avg_deliv_pct_1m
Homepage sector classification
Identity-verified, dated BSE business classification takes precedence over NSE constituent industry metadata. Size indices and company-name guesses are not sector evidence. Funds are separate; missing primary coverage remains explicit. This display grouping does not change historical RS benchmarks or establish direct competitors.

Accumulation — signed accumulation / distribution (price-tape) 11

Accumulation tape (formerly MEP)
The signed read of who is buying, renamed 2026-08-19 because "MEP" was a name whose letters stood for nothing. If you have seen that old name on this site or in an older note, this is it — unchanged apart from the label. source: naming, not a computed field.
Pressure
Where the close landed vs the day's own VWAP. Positive = buyers paid up into the close; negative = sellers pressed it down. pressure
CLV — close-location value (−1…+1)
Where in the day's range the stock closed. +1 = on the high (demand); −1 = on the low (supply); 0 = mid-range. clv
Price drift (3m)
The split-adjusted price change, in %, from the close about 90 calendar days ago to today: the price half of the Character axis (above +5% reads advancing, below −5% declining). A look-back, not a forecast.
Drift (22-day)
The split-adjusted price return over the last ~22 trading days (already realised — a look-BACK, not a forecast). So "+70%" means the stock has already risen ~70% over the past month; it is the near-term trend sitting under the intraday reads. drift_22d
Up/down-volume skew (22-day, −1…+1)
Over ~a month, volume on up days minus down days as a share of total. Positive = effort on up days (accumulation); negative = effort on down days (distribution). updown_vol_22d
Accumulation score (signed)
The blended, within-stock-standardised composite of the four signed terms. Positive = net accumulation vs the stock's own norm; negative = net distribution. The raw daily score flips often — read the smoothed phase for the regime. mep_score
Accumulation daily state — STRONG_ACCUM / ACCUM / NEUTRAL / DISTRIB / STRONG_DISTRIB
The daily score banded — the granular day-to-day view. mep_state
Accumulation phase (headline) — STRONG_ACCUM / ACCUM / NEUTRAL / DISTRIB / STRONG_DISTRIB
The daily score smoothed over ~3 weeks with hysteresis so a regime holds and transitions slowly instead of whipsawing. This smoothed phase is the headline; the daily state sits underneath. mep_state_smooth
Accumulation phase score
The accumulation score smoothed over ~3 trading weeks (the number the Accum↔Distrib bar position encodes) — slower and steadier than today's raw score. mep_score_smooth
Compression (accumulation) — ATR ratio
Short-term (14-day) volatility ÷ long-term (60-day), both as a % of price. Below 1 = coiled (recent range tighter than the stock's own norm — a spring); above 1 = expanding (range opening up). Context only — shown beside the verdict, never summed into the score. compression

F&O Open Interest — positioning (derivatives) 29

F&O movement regime
A descriptive label for the latest corporate-action-adjusted price path of a current F&O stock: one-sided advance/decline, orderly advance/decline, volatile two-way, tight range, or ordinary/mixed. The one-month label is evaluated against that stock's own earlier return and range distribution; the one-week and one-quarter measurements remain beside it. It classifies what happened and is not a forecast, probability or strategy recommendation.
Path efficiency
Absolute log price change divided by the sum of absolute daily log changes over the displayed horizon. Near 100% means the stock travelled mostly in one net direction; near zero means it travelled back and forth and finished near where it began. It says nothing about whether options were cheap or whether the path will continue.
Directional share
The share of sessions whose close-to-close move agreed with the horizon's net direction. It is shown beside path efficiency because a large terminal move can still come from one jump rather than a persistent one-sided auction.
Movement range percentile
The selected horizon's adjusted high-to-low width ranked against weekly-spaced prior windows for the same stock. A low value supports the tight-range label; a high value supports a wide two-way label. It is stock-relative and therefore not a universal percentage band.
Movement classification strength
A 0–100 measure of how cleanly the realised path fits its declared movement bucket, combining the declared path, direction, own-history and adverse-excursion dimensions. It is explicitly not a probability that the next path repeats, a probability of profit, or evidence that an option structure worked.
Observed precursor clue
A dated description of what was visible before the classified month—such as prior range compression, prior direction, traded-value expansion or delivered-value expansion. Clues are retained independently and never added into a predictive conviction score. They remain candidate features until a point-in-time test demonstrates incremental value over simpler price/volatility baselines.
Positioning quadrant — LONG_BUILDUP / SHORT_BUILDUP / LONG_UNWIND / SHORT_COVER / FLAT
Day's price change crossed with day's futures-OI change: LONG_BUILDUP (price up + OI up = fresh longs) · SHORT_BUILDUP (price down + OI up = fresh shorts) · LONG_UNWIND (price down + OI down) · SHORT_COVER (price up + OI down) · FLAT. Those five are the base reading. Each of the four directional ones is then crossed with the cash tape's own accumulation / distribution state — the thing a futures book cannot see on its own: where both books push the same way the reading is aggressive; where they point opposite ways it is divergent. A reading stays at its base when the cash tape is neutral or has nothing to say — never guessed. Thirteen states in all. quadrant
Share of readings
How common one of the thirteen positioning states was, over the same window and the same pool as the divergence base rate — shown beside every state on the constituents board. All thirteen carry it or none do: annotating only the divergent ones would make the number a badge, and a reader would infer that the annotated states are the interesting ones. 🔴 A rarer reading is not a more important one. Rarity is not significance, not conviction and not an edge: a state seen in 5.6% of readings is not a stronger signal than one seen in 20%, it is simply less common. A state the window never contained reads share unknown, never 0.0%. Nothing ranks, sorts or screens by it. source: /markets/constituents. /markets/constituents quadrant mep_state_smooth
Divergence base rate
How often, across the whole futures universe over a stated window, the futures book and the cash tape point opposite ways — the share of readings that came out divergent. Computed from the same join the states themselves come from, so the number and the thing it describes cannot drift apart, and always published with its denominator and window: a share cannot be judged without the pool it was drawn from. Below a floor of 500 joined readings it states no rate at all, because a percentage drawn from a dozen rows looks exactly like one drawn from thousands. Not a signal — a high divergence share is not bullish, not bearish, and not a trade. source: /markets/fno. /markets/fno quadrant mep_state_smooth
Futures OI change %
Day-over-day change in total stock-futures open interest. Blanked when a corporate action / lot-size change makes the comparison meaningless (never a fabricated jump). fut_oi_chg_pct
PCR — put/call OI ratio
Total put OI ÷ total call OI. >1 = more puts open than calls (hedging / contrarian floor); <1 = call-heavy. A sentiment read, not a verdict. pcr
Basis %
Near-month future vs spot, as a %. Positive (premium) = futures richer than cash (bullish carry); negative (discount) = bearish carry. basis_pct
Max-pain
The expiry price at which option writers pay out the least — often cited as a magnet into expiry. max_pain
Put wall / call wall
The strike with the most put OI (put wall = the support buyers defend) and the most call OI (call wall = the resistance sellers cap). sup_strike res_strike
Open interest beyond the front month
The share of a name's standing futures open interest sitting on any expiry later than the nearest one. A state, not a rate — it says where the book is today, not how fast it moved there; the rate would span the roll window, which is exactly where our own vintage measurements disagree most (median ~3.5%, p90 ~10%). fno_expiry_oi
Strike ladder
One name's option book on its nearest expiry laid out strike by strike, with call OI, put OI and their difference. Put OI minus call OI is the charted signed quantity — it describes where the written book sits, and never who holds it (every contract has a long and a short). fno_option_strikes
OI percentile (own history)
Today's total stock-futures open interest ranked 0–100 against the stock's own history — the crowdedness of the futures book. The missing context behind a build-up tag: a short-covering day on a 90th-percentile book means the shorts merely trimmed a still-huge position (rolled, not left), so a squeeze is unlikely; the same tag on a 20th-percentile book is a genuine exit. source: /markets/fno. /markets/fno fut_oi
PCR percentile (own history)
Today's put/call OI ratio ranked 0–100 vs the stock's own history — how extreme the hedging/fear is for THIS name, not a fixed threshold that treats every stock alike. The one F&O read the Phase-0 gate found a small forward edge in (contrarian; forward-test-only). source: /markets/fno (derived from pcr). /markets/fno pcr
Max-pain distance (signed)
The signed % gap of spot from max-pain: (spot − max-pain) ÷ max-pain. Positive = spot ABOVE max-pain (the level often cited as an into-expiry magnet pulling price down); negative = below. Ranked against its own range so you see whether today's stray is unusual for this name. source: /markets/fno. /markets/fno und_price max_pain
Build-up streak
How many consecutive trading days the stock has stayed in the same positioning quadrant — persistence, not a one-day blip. A day-3 short-buildup streak on a crowded book reads very differently from a single red-OI day. source: /markets/fno (derived from quadrant). /markets/fno quadrant
At-the-money implied volatility
Annualised implied volatility in percent, inverted from the traded premium of the listed strike nearest the matched forward for one expiry. Inverted from traded rows only — an exchange theoretical price is barred from it, because a price nobody paid is not evidence of what uncertainty cost. A reading is meaningless without its expiry: the same name prices differently three days from expiry and thirty. atm_expiry
IV percentile (own 2 years)
The share of this name's own at-the-money IV observations over the trailing two years that sat below today's, as a percent of the observations counted: 100 × (observations below today) ÷ (observations). So 90% means only a tenth of that history was higher. Left blank below 250 observations rather than computed on a short denominator, and the observation count ships beside the value. 🔴 This is a percentile, not "IV Rank" — see the next entry; the two are different formulas on the same 0–100 scale. iv_percentile_2y_pct
IV Rank — the convention we do NOT publish
The measure most options products display under this name: (IV − two-year low) ÷ (two-year high − two-year low) × 100. It locates today's IV between its extremes; the percentile above locates it within the distribution. They agree only when that history is evenly spread, and diverge whenever it is skewed or has one outlying spike. Do not compare a Patearn IV percentile against a vendor's IV Rank — same scale, different question. Corrected on 13 September 2026: the estate computed the percentile while every label said rank.
Term slope (volatility points)
The next expiry's at-the-money IV minus the near expiry's, in volatility points — not percent of spot, and not rupees. Positive means further-out uncertainty is priced higher than near-term.
95% put skew (volatility points)
How much more (or less) implied volatility the market charged for a downside put than for the at-the-money strike, in volatility points, read at the listed strike nearest 0.95 of the reference rather than interpolated to exactly 0.95 — interpolation would land precisely where the skew is being read and would invent the tail it claims to measure. The column called Strike used publishes that nearest listed strike's strike-to-matched-forward ratio (K/F), not its rupee strike price: 0.95 means the strike is 95% of the matched forward. skew_strike_used
Variance risk premium (why it is absent)
The gap between implied volatility and the volatility that then actually occurred. It cannot be known on the day: it needs realised volatility over the next 21 days, so any same-day figure would be look-ahead. The column exists and is deliberately empty; only a lagged pass could fill it honestly.
Contract multiplier (lot size)
The number of underlying units one option or futures contract represents — the only thing that converts a per-unit option result into rupees. Patearn's record is forward-accumulating: it began on 2026-08-19 from the exchange's current contract file, so multipliers for earlier expiries are not held. A historical option result is therefore exact per underlying unit and its rupee conversion is unavailable, which is stated rather than filled in with today's lot. fno_lot_sizes
Replayable cycle
One (name, expiry) cycle for which every prerequisite of an end-of-day replay is present: a stored chain at the entry date, a forward to place at-the-money against, two same-type strikes that both traded with a usable premium, and an underlying close on the expiry date to settle against. A cycle missing any one of them is refused with its reason recorded, never dropped from the denominator — an archive gap is not a zero return.
Modelled end-of-day replay (evidence class)
A historical result computed from published closing premiums and a terminal payoff. It is simulated execution: a positive volume proves something traded that day at that strike, never that two legs were fillable together at the reported close, and a day's high and low do not reveal whether a stop or a target was reached first. Distinct from a quote-based backtest, which needs timestamped bid/ask evidence this estate does not hold. source: internal replay research, frozen in advance; no result from it appears on any page.

F&O positioning — per stock (futures build-up, option book, rollover) 20

F&O intensity (ordinary · aggressive · very aggressive)
The size of a futures open-interest change ranked against the SAME stock's own earlier changes of the same length: aggressive = 80th percentile or more, very aggressive = 95th or more; unknown below 60 earlier sessions (20 earlier windows for 5- and 20-session reads). A day is compared only with windows that end before it. Size only — whether the cash tape agreed is a separate field. fno_oi_signals fno_state_contract
Signed OI flows
Futures open interest added on up days, added on down days, cut on up days and cut on down days, shown as a share of today's open interest, for the last session, 5 sessions, the current expiry cycle and 21 sessions. Magnitude-weighted: a 3% day counts three times a 1% day. It describes where open interest changed, not who changed it. fno_oi_signals fno_carried_book
Roll pace
The share of the futures book already in later expiries today, ranked against earlier series at the SAME number of sessions before their expiry — like with like, because the share rises mechanically as expiry nears. Sessions ahead are counted as weekdays; exchange holidays ahead are not known. fno_expiry_oi
Rollover split (transferred · closed · fresh)
For one past expiry, over the five sessions ending on it: near-month quantity open before the window, and the rise in later-month quantity. The overlap is counted as transferred, the rest of the near quantity as closed or settled, the rest of the rise as fresh. A missing session makes the expiry unresolved rather than guessed. An inference from totals — individual contracts are not tracked. fno_expiry_oi fno_carried_book
Carried price range
The average price at which today's open futures (or one option strike's open interest) was opened, replayed from daily open-interest changes under four assumptions about which contracts closed: first-in-first-out, last-in-first-out, proportional, and price-sensitive (the entries farthest from that day's price close first). The spread between the four IS the uncertainty. The share already open before the replay window was opened at an unknown price and is reported as unresolved. fno_oi_signals fno_option_strikes fno_carried_book
Open-position breakeven
For an option strike: the strike minus (puts) or plus (calls) the carried premium range of its open interest, so it is itself a range. Premiums are the day's average traded premium, derived from the exchange's NOTIONAL traded value — (strike + premium) × quantity — falling back to the close or settlement price when nothing traded. It describes the open position as a whole; every contract has a buyer and a writer, and who holds which side cannot be identified. fno_option_strikes fno_positioning
Room to breakeven
Distance from today's price to a strike's open-position breakeven, in daily ATRs, as a range; positive = price has not yet reached the breakeven. source: computed on read.
Walls by money
Out-of-the-money option strikes within two expected-move bands of price, ranked by rupees at risk (open interest × premium) instead of by contract count. Many cheap far-away contracts can rank high by count and low by money; the two rankings are shown side by side because they answer different questions. fno_option_strikes fno_positioning
Money PCR
Put rupees at risk divided by call rupees at risk, out-of-the-money strikes only — an in-the-money premium is mostly intrinsic value, which measures how far price has moved, not money put at risk on a view. fno_option_strikes
PCR inside the ATR band
Put open interest divided by call open interest across strikes within one band of price, where the band is the stock's daily ATR (Wilder, 14 sessions, adjusted prices) × √(sessions to expiry), nearest expiry. Not the index-only near-money PCR, which uses a realised-volatility band. fno_option_strikes bhavcopy_rows
PCR vs peers
The stock's all-expiry put/call ratio divided by the pooled ratio of the F&O names in its own industry (or its sector when the industry has fewer than four F&O names), and that relative ratio ranked against its own history. A stock is compared only with itself and its own industry, never with the market's ratio or an unrelated company's. fno_oi_signals classification_reads
Flow observation (OI added · IV fell, and the other three)
At one strike, the day's open-interest change paired with the day's implied-volatility change, which strips out the underlying's own move. OI added while IV fell is consistent with option supply (writing); OI added while IV rose is consistent with demand. A hypothesis, never an identification: it needs a traded print on both days and an IV move of at least 0.25 points, and otherwise reads "not enough evidence". fno_option_strikes fno_option_iv
Near-money pressure
Cumulative call and put open-interest change for ONE expiry, counting only strikes whose option delta that day sat between 0.10 and 0.65 in absolute value; far out-of-the-money strikes and other expiries never enter, and rows without a delta are counted as unresolved. fno_option_strikes fno_option_iv fno_carried_book
Confluence zone
Price levels from four independent sources — floor pivots (daily, weekly, monthly), option walls ranked by money, the open-position breakeven of those walls, and the edges of the ATR and IV-implied expected move — grouped when closer than a quarter of a daily ATR, never straddling price and never wider than half an ATR. "Kinds" counts distinct sources in the zone; it is not a probability that the level holds. source: computed on read.
Books agreement
Whether the cash tape (the accumulation/distribution regime), the futures build-up (long-side minus short-side days over 20 sessions) and near-money option money added while IV fell (puts against calls) point the same way. A description of agreement; the ledger's tests of these inputs as predictors failed, so it is not a forecast. mep_signals fno_oi_signals fno_option_strikes
MWPL used
Futures-equivalent open interest as a share of the market-wide position limit. The exchange bans fresh positions above 95% and lifts the ban only below 80%, so a name can stay banned between the two. Raw open interest is not the ban measure. fno_mwpl
Index option book
For each index (NIFTY, BANKNIFTY, FINNIFTY, MIDCPNIFTY, NIFTYNXT50 and any other listed), the nearest expiry's options on the latest session: put/call ratio by open interest and by rupees at risk (out-of-the-money strikes only), max pain by the same formula every stock row uses, the two biggest put and call walls ranked by money and by contract count, contracts added today, and the futures action (price change against the change in total futures open interest). Index implied volatility is not in the estate yet, so no expected-move band is drawn. fno_index_option_strikes fno_index_futures
SLB open positions
Shares lent and still outstanding in the exchange's Securities Lending and Borrowing segment at the end of the day, summed across tenure series, with the change over five lending sessions (in lakh shares). Lent shares are commonly borrowed to deliver against short sales or to settle obligations; the exchange total cannot say which, or who borrowed. slb_open_positions
SLB (securities lending and borrowing)
The exchange-run segment where a holder lends shares for a fixed term against a fee, most often to a borrower delivering against a short sale or settling an obligation. The totals say how much is borrowed, not who borrowed it or why: borrowing also serves hedging and arbitrage. The shares are returned by the end of the term. Patearn stores the exchange's daily SLB files, and the F&O pages show the shares out on loan (SLB open positions, above). slb_open_positions slb_volumes
Contract value
One lot's worth at today's close: lot size (point-in-time for the expiry month) × the closing price. fno_lot_sizes bhavcopy_rows

Oscillators — momentum (RSI / MACD) 4

RSI-14 (0–100)
Wilder's 14-day Relative Strength Index. >70 = overbought; <30 = oversold; ~50 = neutral. rsi_14
MACD
The 12-day minus 26-day EMA of price — momentum as the gap between a fast and slow trend line. Above 0 = up-momentum. macd
MACD signal
The 9-day EMA of the MACD line — the smoothed reference it's compared against. macd_signal
MACD histogram
MACD minus its signal line. Positive = up-momentum building; negative = fading. A sign flip is the classic crossover. macd_hist

Credibility — management credibility from earnings calls 9

Guidance accuracy (0–100)
The resolved-promise hit-rate: of management's forward promises now come due, the share they MET (partials half). Higher = a better track record of doing what they said. guidance_accuracy_score
Quantification rate (0–100)
The share of forward statements that are falsifiable numbers rather than vague talk. Higher = more transparent, checkable guidance. quantification_rate
Credibility composite (0–100) + tier (A+/A/B/C/D)
(Called CCI until 2026-08-19; if you have seen that name here or in an older note, this is it. It was never the Commodity Channel Index — that collision is why the name went.) The blended measurable score (track record + quantification, penalised for recent disclosure deterioration; capped without a settled track record or when a forensic veto is active). Bands: A+ ≥80 · A ≥70 · B ≥55 · C ≥40 · D <40. composite_score tier
Credibility level / momentum (point-in-time)
The composite recomputed as of each past concall using only what was knowable then, plus its change vs the prior period. Rising = trust being earned; falling = eroding. level momentum
Credibility tape — EARNING_TRUST / DETERIORATION
A flagged series event: EARNING_TRUST when promises are met / the level jumps; DETERIORATION when disclosure flags appear or the level drops. tape
Credibility deterioration (avoid tape)
Objective story-decay flags from a deterministic diff of consecutive transcripts: a quantified target LOWERED (a guidance walk-back), a prior promise not reaffirmed (quietly dropped), or a metric that vanished (stopped disclosing). These CAN move the rank — unlike the soft LLM red-flags, which only inform. deterioration_score concall_redflags
Forensic veto (⛔)
An integrity gate IN FRONT of credibility: promoter pledge ≥20% or a hard disqualifier on the 14-point quality screen forces tier D no matter how good the call sounded — glib frauds run smooth, confident calls right up to collapse. An auditor resignation or qualification is not checked. Cash-flow/leverage vetoes are suppressed for lenders and heavy-capex cyclicals (structural, not fraud). On this site a veto's exchange-filing clauses stand: the promoter pledge, and a quality clause computed from exchange filings. A clause from the older 14-point screen, computed from a legacy third-party archive, is withheld, so a company whose only veto is one of those reads "quality check pending". veto_active
Promise track record — Met / Partial / Missed / Withheld / Unreviewed
A record of the past, never a forecast or a view on the share: each promise management made on an earnings call, with how it came out once the quarter it pointed to was filed. Met / Partial / Missed are set by fixed rules against the company's exchange-filed figures (a model only extracts the wording), and Δ vs promise is how far the filed figure landed from the promise (below zero = a shortfall). Withheld = a grade exists but rests only on a legacy vendor figure, so it is not shown and counts in nothing. Unreviewed = not settled yet, or nothing filed can measure it; it carries no outcome. concall_guidance
Expectations versus actual — In line / Beat / Miss / Understated / Overstated / Obscured
An unreviewed model read, never ranked and counted in no grade: where an earnings call discussed the quarter just finished against what management had said before, a language model's label for how it came out. Beat / Understated = delivered more than management had led people to expect; In line = about as said; Miss / Overstated = delivered less; Obscured = the model read the call as obscuring how the quarter compared. "Despite a headwind it had warned of" marks a quarter read as delivered after a warned headwind. Reads taken from a vendor's summary rather than the call are not shown. concall_expectations_vs_actual

Capital allocation — ROIIC quality (Dataset C) 5

ROIIC (%)
Return on incremental capital — extra operating profit per extra rupee of capital employed over the window. Higher = each new rupee deployed is productive (a compounder); low/negative = growth that doesn't pay. Read vs a ~12% cost-of-capital anchor. roiic
Dilution drag (pp/yr)
Profit CAGR minus per-share (EPS) CAGR. Positive = shares were issued to fund growth (owners saw less than headline growth); ~0 = clean, non-dilutive. dilution_drag
Debt-funding share (%)
The share of incremental capital that came from borrowings. High (>~50%) = growth leaned on debt (more fragile); low = self-funded. debt_funding_share
Growth efficiency (ratio)
Profit CAGR ÷ capital-employed CAGR. >1 = earnings grew faster than the capital base (efficient); <1 = the balance sheet outgrew profits. growth_efficiency
CA score / tier — EXCELLENT / GOOD / AVERAGE / WEAK / POOR
The weighted composite (plus ROCE level & trend), mapped to a cross-sectional percentile tier within its model. ca_score ca_tier

Ignition — DVPT crossing intensity 4

Intensity (×) + band
Today's delivery-per-trade vs the average of the stock's own peak-day baselines. "5×" = 5× the stock's own institutional peak-day norm. Bands: MILD (<1.5×) · MODERATE (≥1.5) · ELEVATED (≥3) · HIGH (≥5) · EXTREME (≥10). Against the stock's own history, not the market. intensity intensity_band
Ignition tier — CONFLUENT / PARTIAL / DISTRIBUTION
CONFLUENT = huge intensity + a full all-stars (SS) cross + clean accumulation character. DISTRIBUTION = distribution character (kept, flagged). PARTIAL = everything else that ignited (kept, browsable). Descriptive. tier
Ignition status — NEW / FRESH / CONTINUING / COOLING
NEW = first-ever full ignition. FRESH = ignited today, not ranked yesterday. CONTINUING = still ranked, intensity holding. COOLING = intensity dropped meaningfully off the prior day. status
Breadth (0–5)
How many of the 5 peak-day baselines today's delivery-per-trade beat. breadth

Launchpad — explosive-move precursors 6

MOM·CONT
Momentum continuing: up strongly over the last month while volume has not yet expanded and the trading range is wide — the move is running ahead of the crowd. Backtest "S1" core: net-positive in BOTH walk-forward windows (2012-19 / 2020-26), beta ~0.4.
COILED
Up ≥10% over the month while realized volatility is contracting — energy stored, not spent.
PULLBACK
The weaker mean-reversion leg (shaken in volatility after a flat month) — only the recent regime was net-positive; read as the diversifier, not the engine.
Fresh (age)
How many sessions the pattern has been on. age 0 = it switched on TODAY (off yesterday) — the backtest enters on this rising edge, not the 8th day of a run. The board counts age ≤ 2 as fresh.
⭐ Genuine buyer
A one-sided institutional net buyer in the same name's bulk/block deals the same day (non-churn category, net ≥60% one-way) — the research's high-conviction intersection.
Regime gate
The validated book only trades these when Nifty 50 is above its 200-DMA; the patterns are still shown when it isn't (regime is the timing gate, not a filter).

Wolfe — winner-profile wave scan 3

Side (BULL / BEAR)
BULL patterns carried the edge in testing (~+1.4% α to target); BEAR is tail-only (a few large winners, most don't work). Read the side, not just the shape.
Wave quality
A 0–27 Wolfe geometry score: point-1 strength, fractal strength at points 2–4, point 5's zone landing, zone width/depth, clean 1–4 touches, RSI divergence and distance to the projected line. For example, 19/27 meets more drawing rules than 10/27. It describes shape, not profit odds; read Side and the scan date too.
In-zone
Price currently inside the computed reversal zone (the actionable window); age = bars since the pattern completed.

The terms from the owner's own teaching 12

Reversal zone (a band, not a line)
The zone is the band between the two fib ladders at the same ratio, not a single level — its top and bottom come from the 1-2 and 3-4 ladders. The width of that band IS the risk, which is why nothing keys on hitting a chosen ratio exactly. Rules of record § E5.
Narrow zone
Narrow is relative, never an absolute percentage — a band is narrow when the risk it defines is small against the reward on offer. A band 10% wide is narrow at 17:1. Judged by risk:reward, never by a fixed tolerance. Rules of record § E4.
Point 5 (a travelling role)
Point 5 is a role that moves, not a one-off event. A swing low that reaches into a zone is a candidate; it is confirmed when price closes back above the zone top, held until price breaches below it, and cancelled when it does — at which point the role travels to the next zone down and the wave goes inactive. Rules of record § E6.
Reclaim
Price breaching below the zone and then closing back above its top. That reclaim is what makes a point 5. There is no limit on how many times a wave may do this. Rules of record § E6, § E9.
Stop (two phases)
Inside the band the stop is the band low plus a buffer; once price reclaims and settles above the band top the stop drops to point 5 itself — so the risk widens on confirmation, because price has already proven it can wick to point 5 and recover. Rules of record § E7.
EPA (ultimate)
The 1→4 line extended — the level the pattern's geometry projects to; a drawn line, not a price forecast. Rules of record § E12.
Minimum EPA
His own addition, in no textbook: the line from point 1 through the last touch of the 2-4 rail before point 5, where that touch must sit above point 3. The minimum guaranteed target. Drawn dotted. Rules of record § E12.
Touch (constitutive vs confirming)
A touch is a candle high or low meeting a line. Touches at the line's own defining pivots are constitutive and count for nothing — counting them is circular. Only later, confirming touches are evidence. A candle whose body contains the line was trading across it, so it reacted to nothing and does not count. Rules of record § E11.
Active / Inactive / Closed
A breach parks a wave, it does not kill it: unreclaimed = inactive, and reclaimed, ready, freshly formed or approaching = active. Rules of record § E9.
Recency (a filter, not just a score)
How live a rail is — stale / far / live, self-scaling on the wave's own span. A rail measured correctly but untouched for years is irrelevant, not merely low-scoring. Rules of record § E14.
EPA intersection
Where the EPA lines of the most recent and most ancient waves cross. His hypothesis, and he flagged it untested himself — carried labelled as a hypothesis, never as a finding. Rules of record § E13.
Wave multiplicity
A stock carries many waves at once, bull and bear. Multiplicity is the output, not noise to collapse — strength decides which dominates, and "which one is the real wave" is not a question. Rules of record § E1.

Harmonic shapes — five-point ratio patterns 1

Harmonic fit
A 0–1 score for how closely a confirmed five-point shape matches its ideal ratios. For example, 0.83 fits the ratios more closely than 0.45; it is not an 83% win chance. A forming shape has no fit because point D has not printed; its stored zero is withheld. Read with Side and the scan date. Only daily bull shapes had measured fit-graded selection evidence.

Momentum ensemble — the risk-adjusted scan 10

RISKADJ (risk-adjusted momentum)
Split-adjusted 6-month price return ÷ 66-day (≈3-month) return volatility — reward per unit of recent choppiness, anchor-invariant to corporate actions. The hero column of the momentum scanner; higher = a bigger move for the risk taken. Equity-only (ETFs/liquid funds excluded). Momentum here is a known risk-premium beta, not stock-selection skill (residual α failed t≥3) — a shortlister, never a buy list. stock_signals
Ensemble %ile (1–99)
The equal-weight blend of the four momentum sleeves, ranked cross-sectionally. ≥90 = top decile.
C-blend
50/50 mean of risk-adjusted-momentum percentile and the capital-allocation (C) percentile — the best paper overlay in the 2026-07 backtest (flat-cost only; not fundable at AUM, hence a descriptive column). (computed on read)
Return/vol
Mean return ÷ volatility, annualised — the ratio every backtest number on this site is quoted in. It is NOT a Sharpe ratio: a Sharpe subtracts the risk-free rate first (what you earn above cash), and we subtract nothing, so our ratio reads higher than a textbook Sharpe on the same book. It is still the honest way to rank OUR books against OUR benchmark, because the Nifty-500 hurdle is measured the same way — both sides carry the same omission, so the comparison and every verdict it drives are unaffected. Only a ratio quoted against someone else's Sharpe would mislead — ours is never a Sharpe. A textbook Sharpe would need a risk-free-rate feed from a primary source (NSE/RBI), which we have not ingested; it is queued. source: computed on read from each book's NAV.
Slow rotation (quarterly anchor)
The one momentum form that survived REAL participation costs (net return/vol ~1.02 @₹50cr, capacity ceiling ~₹100–150cr): large-cap gate (top turnover quintile) · low-volatility momentum score (half momentum percentile, half low-volatility percentile) · top-25 portfolio · rebalanced only when the calendar QUARTER turns. Shown at /strength/slow as data about the validated rule — a defensive beta tilt, never advice. slow_rotation
Hold band (≤35)
The turnover discipline that makes the slow rotation survivable: an existing member is kept while its live rank stays ≤35 even if it slips out of the top 25; slots refill from the top. Fewer forced swaps = less cost drag. Between rebalances rank moves are drift, not trades. slow_rotation
Factor league
The classic strategy families (momentum, quality, low-vol, value…) ranked at /strategies/library by the return/vol + alpha we measured on 14y of NSE data — flat-cost numbers labeled as such, failures shown WITH their numbers (value's alpha was negative here). Live rosters for the computable families; churn feed for every roster change. factor_league factor_league_churn
Model portfolios (automated)
The named portfolios at /strategies/books — STEADY-25 / PACER-25 / SPRINTER-25 — churned continuously by their own frozen rules since 1 Jan 2019 (reconstructed point-in-time; the engine is the only writer, no manual adds exist). Equal-weight 1/25 re-set each rebalance; entries = top 25; holdings persist to rank 35. Time-travel any past composition with ?asof=. NAV flat-cost, labeled. auto_portfolio_holdings auto_portfolio_nav
STEADY-25
The league's automatic portfolio = the net-cost champion (low-volatility momentum over large caps, rebalanced quarterly). PACER-25 = risk-adjusted momentum roster (best flat-cost return/vol, gross lens); SPRINTER-25 = classic 12-month momentum roster (highest CAGR, deepest drawdowns). Named rosters, not advice. slow_rotation factor_league
Sector rotation
The research-stage V17 book at /strategies/sector-rotation: every NSE sectoral index beating Nifty 500 on 6-month relative strength is held (equal-weight, 30% cap), entries gated on an RSI-green recovery, weights tapered as a sector nears its own historical RS peak, and the un-invested residual parked in a Nifty ETF only while the index holds its 200-day average (else cash). Quarterly rebalances; time-travel any past book with ?asof=; each rebalance shows what entered/exited. Long-only — the short leg, monthly churn and whole-book kill-switch were tested and rejected (ledger). Research-CONDITIONAL, never a recommendation. sector_rotation_book sector_rotation_nav

Growth-intent — concall forward proposals 3

Statement type
capex / expansion / debt_reduction / new_product / volume. The Phase-3 content-scan showed these carry a modest historical forward tilt (debt-reduction and volume strongest, ~+2-3% at 3m, de-marketed) — historical content reads, not a validated signal.
₹ crore
The normalized amount when the statement was monetary; capacity/other statements carry none.
Polarity
+1 grow/expand · −1 pullback ("no capex this year" is information too) · 0 neutral.

Insider activity — SEBI PIT disclosures (skin in the game) 7

Principals
Promoters, promoter group, directors, KMP — the informed control persons. Designated persons / employees are tracked but weighted as "other".
Principal purchase (signal class)
A principal buying on the open market with their own money — the strongest insider read. The card counts names where principals are net-buyers over 90d AND bought within the last 30d.
Principal sale (signal class)
A principal selling on the open market. One sale is noise (tax, diversification); persistent net selling is the read.
Plumbing
ESOPs, gifts, inheritance, inter-se (within promoter family) transfers, allotments, conversions, scheme swaps — ownership motion that carries no market conviction. Classified out of every headline; visible in the tape. txn_class
Pledge risk / release
Pledge created or invoked = a distress tell that DOMINATES the symbol verdict (a promoter buying while pledging is not conviction). Release is relief, not auto-bullish.
Cluster buy
≥2 distinct principals buying the same name inside 30 days — historically the more interesting shape than one large purchase. person_name_hash
Net 90d (₹)
Principal open-market buys minus sells over 90 days, in rupees. The SIGN drives the symbol verdict (relative, no rupee threshold — house principle).

Credit-rating transitions (quality migration) 7

Transition (deduped)
One (company × broadcast day × direction) upgrade or downgrade, max notch kept across that issuer's instruments. The card counts distinct companies with a transition in the trailing 90 days (true actions run ~2/month — a 30d window would be noise-thin).
Notch
Steps moved on the long-term scale (D=1 … AAA=20). "▲2" = a two-notch upgrade — rarer and stronger than two single-notch moves. notch_delta
Fresh default vs re-affirmed D
Only a fresh move into D counts as a DEFAULT event; quarterly re-affirmations of already-defaulted debt are classified out (else the default count inflates ~5×). action_class
Fell below IG (fallen angel ✦)
A downgrade that crosses under BBB− (investment-grade floor) — the institutionally-forced-selling threshold. below_investment_grade
Watch ◉
Agency placed the rating under watch — direction pending, not yet a transition; tracked separately from the headline. watch_flag
Reaffirmations
The bulk of the raw feed (~85%); zero-information for transitions, visible in the tape, never in the headline.
Unmapped rows
Rating rows on debt-only issuers with no listed equity — disclosed in the census tile, excluded from company counts (mapping widens conservatively; see E-02's mapping notes). source: symbol IS NULL.

Stake & pledge confluence (SAST) 10

Confluence name
A symbol where BOTH a stake event and a pledge event landed inside 90 days — the board's population. The crossing itself is the read.
Shape (descriptive)
constructive = holders added stake while encumbrance fell or held · distress = an invocation, or stake selling into rising encumbrance · mixed = both feeds present, neither pattern. A label for what already happened, never a forecast.
Stake net (90d)
% of diluted capital acquired minus sold by substantial holders in the window — Reg 29(2) transaction deltas only. Reg 29(1) initial-crossing filings disclose the whole HOLDING as the "acquired" figure (a level, not a flow) and are counted separately as crossings, never summed (else a hyperactive filer sums to an impossible ±185% of capital — caught live). pct_acq pct_sale
Crossing (29(1))
A new or re-disclosed ≥5% position — "a substantial holder appeared here." A fact about ownership structure, not a flow.
Control transfer ⚡
A single filing moving ≥25% of capital (the SEBI takeover-code open-offer trigger) — an M&A / promoter-restructuring event, not accumulation, and persons-acting-in-concert co-filings would double-count it (caught live: one ~50% block filed by two entities). Badged and counted, never summed into flows.
Pledge net (90d)
% of equity pledged (created) minus released — positive = encumbrance rising (adverse). event_pct event_type
Invocation
The lender seized the pledged shares and may dispose of them — always adverse, and it dominates the shape.
Encumb now
The TOTAL % of equity encumbered after the latest pledge filing — the stock (level), where the flow columns are the delta. Complements the quarterly SHP pledge level. encumb_pct
Pledge stock vs flow
The quarterly shareholding pattern (SHP) gives the pledge level per quarter; this feed gives the flow between quarters — the same distinction as holdings vs trades. shareholding_history sast_pledge_events
Filing
The link to the disclosure document itself, on the exchange's archive: the primary source behind the row, to read before relying on it.

Holdings QoQ (shareholding-pattern deltas) 9

Δ Prom / Δ FII / Δ DII / Δ Public (pp)
The change in that holder class's % of equity between the symbol's two latest quarters. The flag = |Δ| ≥ 1.0 pp on promoters, FIIs or DIIs (unit-honest: points of capital, no rupee constants). shareholding_history
Adjacent-only flagging (◌)
Deltas only FLAG when the two quarters are consecutive; a reporting gap (◌) is shown but never counted as a QoQ shift. source: quarter-bucket adjacency.
Structural event (⚡)
Any holder class moving ≥25pp in one quarter — a new promoter appearing via acquisition, a delisting-scale restructure (live example: RBLBANK 0→60pp promoter when its acquirer completed). An ownership TRANSFORMATION, kin to the SAST board's control transfers — badged and shown, never counted in the material-shift cohort.
Mixed pair (ⓧ)
One quarter from the frozen archive, one from NSE XBRL — near-consistent by the 1pp continuity gate, still marked so you know which numbers cross the provenance seam. source: source column per row. source
Pledge stock (vs flow)
Promoter Pledge here is the quarterly level (sparse until the Reg-31 flood completes each quarter); the SAST board's pledge columns are the flow between quarters. Same distinction as holdings vs trades. shareholding_history sast_pledge_events
Quarterly cadence
SHP filings are due ~21 days after quarter-end — the latest-quarter column FILLS during that window (June-quarter flood lands through ~Jul-21); the census tile shows coverage honestly rather than pretending completeness.
Promoters now
The promoter group's holding in the latest quarter's shareholding pattern, as % of equity.
Free float (Free float %)
100 minus the promoter-group holding in that quarter's shareholding pattern: the share of equity outside the promoter group, the part of the register that can change hands. Structural context about the company, not a timing signal: it barely moves within one company over time. It is simpler than the free-float factor index providers publish, which also leaves out other locked-in and strategic holdings, so it can read higher than an index's figure for the same company. Tested as a demand signal (flow divided by float), it added nothing over plain delivered volume, because the float hardly changes from quarter to quarter. shareholding_history
Δ Pledge (pp)
The change in the promoter pledge, in percentage points, between the two latest quarters. Sparse until each quarter's pledge filings arrive, so a blank is "not filed yet", not zero.

Corporate-actions calendar (ex-dates) 5

Ex-date
The first trading day the stock trades WITHOUT the entitlement — buy on/after it and the dividend/bonus/split isn't yours. The calendar groups by this date.
Record date
The bookkeeping cutoff — you must be a holder ON this date (T+1 settled) to receive the entitlement; it trails the ex-date mechanically. record_date
Ratio (from:to)
Bonus/split terms as filed — a 1:1 bonus doubles share count and halves the price; the value doesn't move, which is why every cross-time metric on this site is in rupees, never share counts. These events feed the adjusted-price engine. ratio_from ratio_to
Details (as filed)
The exchange's own purpose string ("Dividend - Rs 6.70 Per Share") — shown verbatim, amounts are information, never thresholds. details
Restructure context
Demergers / schemes / amalgamations from security_events — the identity-level events that explain why a series breaks or a symbol vanishes. security_events security_events

Surveillance transitions (ASM / GSM / bands) 4

Restriction UP (▲) / DOWN (▽)
Entered a framework or band tightened = restriction up; exited or band relaxed/removed = down. Directional bookkeeping, not sentiment.
Stage Δ
The name stayed listed but its stage moved (e.g. ASM Stage I → II — margins escalate by stage). Shown as old → new, no ordering guessed.
Band tightened / relaxed
The daily move limit changed (20 → 10 → 5 → 2): tighter bands + close-at-band streaks are a queue-imbalance tell. NULL semantics kept honest: first appearance = "band set", dropped from the file = "band removed". price_band_events
Under now
Membership (the latest lists), distinct from the tape (events). T2T names show no delivery metrics site-wide by rule — excluded, not polluted. surveillance_flags price_bands_current

Band-lock streaks 4

Upper / lower lock (▲/▼)
The close sat at the day's extreme AND within 0.1% of the theoretical limit (±band% of the previous close — tick-rounding tolerance). Unbanded names (F&O, "No Band") can never lock and are excluded, not approximated.
Streak
Consecutive same-direction locked trading days ending at the latest bhav date; ⚑ flags streaks ≥ 2 days (the persistence cohort — page == card == pillar == board gate).
The honest window
Bands are reconstructable only back to the feed's first captured day (2026-07-07, band_lock.FEED_BIRTH) — streaks cannot exceed the window and earlier locks are invisible by construction; the board deepens every trading night.
Move over streak
Cumulative % from the previous close before the first locked day to the latest close — bookkeeping of the pin, not a forecast.

Results reactions — the season war room 3

SUE (earnings surprise)
The size of the earnings beat/miss vs the name's own history — "high" = the big-surprise cohort.
Deliv ×
Day-0 delivered value vs the stock's normal day — "3.2×" = three times its ordinary delivery. High SUE and high delivery = the confirmed cell (the historically interesting one).
CAR 22/60
Cumulative abnormal return 22/60 sessions after the report — the descriptive drift fan. ● settled = the full window has elapsed; ◔ fresh = drift still accruing. The PEAD lens is real; every tradeable wrapper on it failed net-of-cost gates — this page describes, it does not recommend.

Attention queue — the signal-event bus 5

Signal event
One typed state-change for one name on one day: accumulation phase flip, credibility step, F&O quadrant flip, index RS-band flip, or a bulk/block deal print. The raw before → after states are kept beside the verdict (data-first), and events are idempotent — one per (symbol, lens, type, day). signal_events
Attention queue
The current batch's events ranked by impact (magnitude), then recency, hard-capped on Home (6) so it stays a queue, not a firehose. The full tape with lens filters and replay lives at /markets/attention. /markets/attention
Impact / magnitude (bus)
Normalized within each lens: a phase/quadrant flip is 1.0 by construction; a credibility step is \|Δlevel\|/50 (capped 1); a percentile breach is its depth into the band; a deal print is the symbol's within-day deal-value percentile (relative, never a rupee constant). It ranks attention inside a batch; it is not a return forecast — no study exists on event follow-through.
as_of vs detected (bus PIT)
as_of = the trading/period day the change is computed for (the batch key); detected_at = when the bus observed it. Replaying ?as_of= serves the last computed batch on-or-before the requested day (the /v1/attention resolver — a weekend/holiday miss must not read as an empty tape). The bus went live 2026-07-10 and never fabricates earlier events. as_of detected_at /v1/attention
Since you last looked (the brief)
The strip at the top of /markets/attention (live view only): every event detected since your last visit, newest first, across batches — distinct from the impact-ranked current-batch queue below it. "Last visit" is a browser cookie holding a detected_at timestamp (no server-side per-user state); a first visit shows a gentle intro, not a fake "0 new". /markets/attention detected_at patearn_bus_seen

Seasonality — the seasonal tape (calendar residual) 12

Idiosyncratic residual
A name/sector's return with the market (Nifty 500) move regressed out, so only its own tendency remains. Index entities strip nothing (their own level is the baseline); sectors strip the market; stocks strip market + orthogonalised-sector.
z_pit (point-in-time z)
The day's residual expressed in standard deviations of the entity's own prior-years residual distribution (expanding window, so no future leaks in).
Script
The cross-year average z for one calendar cell — a positive script = that month/week ran systematically hot after market-adjustment.
Break
The latest year's cell-z versus the script — how far this year departed from the historical calendar tendency. seasonal_breaks
Certified vs reported-not-gated
A cell is coloured (certified) only if it clears two placebo nulls (block-bootstrap + cyclic-rotation), family-wide FDR, ≥15 years, out-of-sample sign-stability, and a pledged India mechanism. Otherwise it is greyed — reported but not gated.
Placebo null (banned: year-label shuffle)
The observed cell mean must sit outside the 95th percentile of a null that keeps the calendar labels fixed and resamples/rotates the residual values. A year-label shuffle is banned — it is a zero-width (permutation-invariant) null that would pass everything.
Pledged mechanism
A named India calendar cause (FY-end window-dressing, Budget run-up, monsoon, festival demand) registered before any number was computed; a cell may carry a signed read only if a mechanism backs it. Flow/timing anchors (expiry, SIP) license variance-only reads, never a sign.
Outlook light
🟢 = reliably positive with a mechanism, 🟡 = leans one way, ⚪ = the 95% CI includes a coin-flip → treat as noise. Base-rate history, not a forecast; nothing here is tradeable net of costs (PEAD, the closest cousin, net-failed 0.10 return/vol vs 0.85 buy-and-hold).
Monthly F&O expiry
The monthly derivatives expiry trading day — the last trading day on or before a month's last Thursday; a holiday on expiry-Thursday rolls it to the prior trading day (the precise expiry date the coarse all-Thursdays seasonal proxy lacks).
Expiry week
The trading days within five sessions before a monthly F&O expiry.
Holiday adjacency (pre / post)
The last trading day before, and the first after, a market-holiday gap — detected from a calendar gap wider than the normal weekday (1-day) / Fri→Mon (3-day) spacing.
Return delta vs all-days
Context, never a signal or a sign — calendar effects were largely 0-certified against the seasonal null prior, so this is descriptive conditioning and nothing more. A name's mean daily return in a calendar window (expiry day · expiry week · pre / post-holiday) minus its mean across all days, shown in basis points.

Event cadence — corporate-event timing 4

Event cadence
A company's own historical spacing between occurrences of an event type — the rhythm from which the next window is projected (PAST-ONLY, leak-free).
Overdue (vs own cadence)
The expected window has passed with nothing filed — the name is past its own typical timing. A rhythm flag, not a confirmed delay (schedules legitimately shift); bounded to ≤~1 year on the lens (longer = "stopped", not late, and hidden).
Expected-by-cadence (projection)
The next occurrence a name is due by its own spacing — an estimate from rhythm, not an announcement. anchor_basis='declared' (a real exchange board-meeting intimation) is the confirmed variant, surfaced on Results reactions, not here.
Times seen
How many prior occurrences the cadence is built from — higher = a more established rhythm.

Reversal context (descriptive — falsified as a signal) 5

Band state
where the 5-EMA typical-price trigger sits vs the 13-EMA high/low banks: above / in band / below, plus today's crosses. ⚠ reclaim (trigger back above the lower bank after a spell below) is a caution, not a buy: tested 2012-26, those reclaims underperformed random days (22d median excess −1.25%). band_state below_run reversal_context
Stretch %
signed % gap between the trigger and the bank it has violated (0 inside the band). Positive = extended above the upper bank; negative = stretched below the lower. stretch_pct reversal_context
Stretch percentile
today's stretch ranked against the SAME stock's own trailing ~3 years (per-stock, in percent, never an absolute threshold — small-caps naturally stretch wider than large-caps). p90+ = unusually extended for this name; p10− = unusually depressed. stretch_pctile reversal_context
Floor gap
distance above the latest CONFIRMED 10-bar (fallback 5-bar) down-fractal low, with the floor's age; "✗ broken" once a close prints below it. A degree-N fractal is only knowable N bars later — no look-ahead. Useful as a risk / invalidation level (how far above well-defined support you sit), not as a bounce predictor (the breakout entry tested inert). floor_gap_pct floor_age floor_alive reversal_context
Ceiling gap
the bearish mirror: distance below the latest CONFIRMED 10-bar (fallback 5-bar) up-fractal high (negative = under it), with its age; "↑ cleared" once a close prints above it. Same confirmation lag, same role: a known overhead-resistance level for context, never a short signal. ceil_gap_pct ceil_age ceil_alive reversal_context

What a book costs to run — the amount-sized cost lens 6

Net CAGR — the compound annual return AFTER the cost of running the book
Gross CAGR minus that book's own annual trading cost. Costed from the book's OWN recorded churn (n_churned, the members the engine actually swapped at each rebalance), never a flat haircut applied to every book alike — a book that rebalances 171 times pays 171 times, a quarterly book pays 58 times. This distinction is load-bearing: a flat-cost model is what the ledger already recorded as falsified (C-BLEND, 2026-07-05c). source: computed on read. n_churned
Round-trip cost per trade
What entering AND exiting one position costs, as a percentage of that position. Bid/ask spread + brokerage + STT + exchange charges + SEBI turnover fee + GST + stamp duty, plus market impact — the part that grows with your size.
Market impact
The price moving against you because your own order is large relative to the stock's daily volume. Modelled as a square-root law on participation (order ÷ daily traded value), capped at 10% of a day's volume, with an extra timing charge once a clip needs more than one day to fill. Small at personal amounts, dominant at institutional ones.
Book turned over
How much of the book is replaced per year, from the engine's own record — 528% means the book is bought and sold over five times a year. This is the number that decides the cost, which is why it sits beside it. n_churned
Would be worth
What your starting amount would have grown to over the book's reconstructed history, net of cost at the amount you chose. A notional reconstruction, never a broker account, and never shown for a book with under five years of history. source: computed on read.
Gross CAGR
The same return before trading costs. Not wrong — incomplete. It is the upper bound nobody could have kept, shown quietly above the net figure so the gap between the two is visible rather than argued.

Classic Screens — public strategies 20

Magic Formula — Greenblatt's ranking
Combines high return-on-capital with high earnings yield. Our run uses ROCE for ROC and E/P for earnings yield (the true EBIT/EV yield needs point-in-time enterprise value — phase 2). classic_roster
CANSLIM — O'Neil's growth-leader screen
Strong earnings acceleration + price near a 52-week high + relative-strength leadership. classic_roster
Coffee Can — Mukherjea's compounders
ROCE ≥15% and revenue growth ≥10%, held for years; our run uses 3-yr-avg ROCE ≥15 and 5-yr sales CAGR ≥10. classic_roster
GARP — Growth at a Reasonable Price (Lynch)
Growth that is priced cheaply: the lowest PEG among quality names. classic_roster
Graham — deep-value screen (low P/E, low P/B)
Benjamin Graham's classic low-multiple caps. Deep value is HARD-REJECTED on our data — shown as a caution, never a buy list. classic_roster
Quality (QMJ) — quality-minus-junk
Profitable, stable, low-leverage names: high ROCE + high margin + low D/E. A filter, not a standalone ranker. classic_roster
Low-Volatility — min-variance screen
The lowest realised-volatility liquid names; buys smoothness, not return. classic_roster
Acquirer's Multiple — Carlisle's EV/EBIT screen
Ranks the cheapest enterprise-value-to-EBIT; reference-only until point-in-time enterprise value lands (phase 2). classic_roster
Return on Capital Employed (ROCE)
Operating profit as a % of the capital (equity + debt) deployed to earn it; a core quality/efficiency gauge. Higher and steadier = better capital allocation. roce
OPM — Operating Profit Margin
Operating profit as a % of sales; how much of each rupee of revenue survives to operating profit. opm_latest
Debt to Equity (D/E)
Total borrowings ÷ net worth; balance-sheet leverage. Lower = safer. Measured on the same point-in-time panel as interest cover, 2012-2026: names at 0.8 or below fell more than 50% over the following year 682 times in 29,808 observations (2.29%); names above 0.8 did so 578 times in 12,893 (4.48%) — a relative risk of 0.51, with a 95% interval of 0.40 to 0.68 across 1,105 companies. So it separates, but less sharply than interest cover, and that ordering is itself measured: the interval on the ratio of the two relative risks is 0.54 to 0.94 and does not cross 1. Two further findings travel with it and are easy to misread without. First, once you know interest cover, D/E adds nothing you can demonstrate — among names already at 3× cover, the leverage bar moves the blow-up rate only 1.95% → 2.41%, an interval that crosses 'no effect'. Second, which bar is missed matters far more than how many — thin cover with low debt broke 4.76% of the time, while ample cover with high debt broke 2.41%. Same "one of two", nearly double the risk. Same source caveat as interest cover: the borrowings and net-worth lines are ~98% legacy vendor archive, not primary filings. Descriptive, never a ranker. debt_to_equity
Interest cover
Operating profit (EBIT) ÷ the interest bill — how many times over a year's profit pays a year's interest. It is the difference between a bad year and a fatal one: a company at 8× can absorb a slump, one at 1.5× cannot. Measured on our own point-in-time panel, 2012-2026: names at 3× or above fell more than 50% over the following year 601 times in 29,280 observations (2.05%); names below 3× did so 489 times in 8,562 (5.71%) — a relative risk of 0.36, i.e. about 2.8× less often, with a 95% interval of 0.27 to 0.49 after allowing for repeat observations of the same 1,026 companies. It is the single strongest fragility marker we have measured. It is ahead of D/E — the interval on the ratio of the two relative risks is 0.54 to 0.94 and does not cross 1 — and ahead of the full 14-pattern score, which we cannot distinguish from these ratios either way. The confounder ladder, in full, because the raw number is the flattering one: industry 0.37 (0.28 to 0.50) · company size, on a point-in-time turnover quintile, 0.37 (0.28 to 0.49) · both together 0.38 (0.29 to 0.52) · filing staleness 0.36 (0.27 to 0.49) · volatility 0.55 (0.42 to 0.72) · volatility within each date 0.67 (0.53 to 0.87). So it is real under every control we can apply, and about half as large as the headline once volatility is held fixed — part of what thin cover marks is simply a jumpier share. Two further honesty notes. A within-date label shuffle centres at 0.85, not 1.00, so "below 1" is not by itself evidence; the observed 0.36 sits below all 200 shuffles. And the panel contains only companies still listed today — 9 of its 1,026 names are dead, against 2,326 of 5,956 in the full price archive — so genuinely delisted failures are absent from both arms and the true blow-up rates are understated by an amount we cannot measure. The cost of the filter, which the headline hides: the thin-cover group also doubled more often — 939 of 8,562 (10.97%) against 1,951 of 29,280 (6.66%), a relative risk of 0.61 (0.52 to 0.72) — and earned more on average (+24.7% vs +18.3%). This is risk compensation, not a free filter: avoiding fragility costs upside. Descriptive evidence, not a prediction, and never a ranker: it says what has broken companies before, not what a price will do next. Computed point-in-time from filed results, so it only ever uses what was public on the date shown. Source caveat: ~91% of the operating-profit and interest lines behind it come from a legacy vendor archive, not from official filings — NSE XBRL only begins in 2022, so this fourteen-year history cannot be re-derived from filings and that limitation is permanent. interest_coverage
Price to Earnings (P/E)
Price ÷ trailing earnings per share; rupees paid per rupee of annual profit. pe
Price to Book (P/B)
Price ÷ book value per share; rupees paid per rupee of net worth. pb
PEG — Price/Earnings-to-Growth
P/E ÷ the earnings-growth rate; lower = cheaper for the growth you are buying (Lynch's GARP metric). peg
Earnings yield — E/P
Earnings per share ÷ price (the inverse of P/E); the value leg of our Magic Formula proxy. ey
F-Score — Piotroski financial-strength score
A 0–9 count of fundamental-health signals; we compute 5 of the 9 (F5: ΔNet-profit, ROCE>0, ΔROCE, Δmargin, leverage-safe) — the cash-flow trio needs the XBRL cash-flow feed. f5
Sales growth — revenue CAGR
Compound annual growth of sales over the window (e.g. 5-yr); a demand/scale gauge. sales_growth_5y
Profit growth — earnings CAGR
Compound annual growth of net profit over the window (3-yr or TTM). profit_growth_3y
Volatility (66-day) — realised risk
Standard deviation of ~3 months of daily returns; the Low-Volatility screen ranks the calmest names. vol_66

Rule lab — the gauntlet vocabulary 5

Placebo p95
The 95th percentile of the null distribution: the same book rebuilt N times with RANDOM picks (same universe, same size, same costs). A rule must beat this, not merely beat zero — luck has a high bar. source: the placebo machinery. the rule lab
Capacity breakpoint
The AUM (₹ cr) at which participation-cost impact kills the edge — the largest AUM whose net return/vol still beats the benchmark. A rule with no stated capacity is not a result. cost_participation
Both halves
Walk-forward split 2012-18 vs 2019-26: a rule must beat the benchmark in BOTH halves or it is noise.
Prereg gate hash
sha256 of the frozen rule text, recorded BEFORE the run; first registration wins. Tamper-evident: re-deriving the hash must match. source: prereg discipline. rule_lab_prereg
Flat cost only
A qualifier warning that a result survives only under flat per-trade cost assumptions, not participation-real impact (the C-BLEND lesson: 1.32 flat became 0.17 at ₹50cr). Travels with the verdict forever. rule_lab

Lenders — asset quality, capital & the Doctrine-D model 9

Gross NPA % (GNPA)
The share of a lender's loan book that has stopped performing — bad loans, before provisioning is netted off. Lower is better; under ~1.5% is strong for an Indian bank. A rising GNPA is the earliest honest sign the book is souring. source: Gross NPA %.
Net NPA % (NNPA)
Gross NPA minus what the lender has already provisioned — the bad loans still exposed to shareholder capital. Under ~0.5% is strong. The GNPA-to-NNPA gap is the cushion: wide means the pain is absorbed, narrow means it is still ahead. source: Net NPA %.
Return on Assets % (RoA)
Profit per rupee of assets — the honest profitability read for a lender, since RoE flatters anyone who simply borrows more. About 1% a year is healthy for a bank, 2-4% for an NBFC. Stored PER QUARTER: 0.47% a quarter is ~1.9% annualised. source: Return on Assets %.
CET1 % (Common Equity Tier 1)
The purest loss-absorbing capital — ordinary shares and retained earnings — against risk-weighted assets. It decides whether a lender survives a bad year without diluting shareholders. Higher is safer; ~13%+ is comfortable. No total-CRAR tag exists quarterly. source: CET1 %.
Additional Tier 1 % (AT1)
The capital layer after CET1 — perpetual bonds that can absorb losses. Reported separately; CET1 plus AT1 approximates Tier-1 / CRAR where a total capital figure is wanted. Many banks genuinely carry none, so an absent AT1 is not a red flag. source: Additional Tier 1 %.
NII — Net Interest Income
Interest earned minus interest paid: a lender's true top line, the equivalent of "sales" for a normal company. Growth in NII — not revenue — is what operating leverage is measured against for a lender. source: derived, Revenue minus Interest from the bank P&L. Revenue Interest
Cost-to-income
Operating expenses as a share of income (NII plus other income) — how much a lender spends to earn a rupee. Lower is better; under ~45% is efficient. Excludes provisions, which are credit cost and a separate thing. source: derived from the stored bank P&L.
Credit cost
Provisions as a share of revenue — what bad lending is actually costing this period. It is the bridge between asset quality (GNPA) and reported profit. source: derived, Provisions over Revenue. Provisions Revenue
Doctrine D
How Patearn scores a lender: profitability on RoA/RoE against sub-type bars, operating leverage on NII not sales, balance sheet as asset quality plus capital (GNPA / Net NPA / CET1), generic Debt-to-Equity disqualifier OFF. Unmeasurable names get NO tier. Concept slug: doctrine_d. doctrine_d

Familiar scans — the Scan Shelf 51

Scan shelf
The card grid of familiar scans: each card is one question, the count of names answering it on the latest tape, the one-sentence rule that decides, and a click that opens exactly the names it counted (scan-computed cards land on their own constituents page; screener-cut cards open the identical cut in the screener). The screener remains one labelled click away from every constituents page as the liquid slice. scan_reads
At 52-week high
Closed within 2% of its highest price of the last 365 days. Only names with a full 365 days of history are counted — a stock listed four months ago is not at a 52-week high, it is merely at the high of everything it has. price_extremes
At 52-week low
Closed within 2% of its lowest price of the last 365 days, under the same full-window rule. price_extremes
At a window high
The same measure over a shorter or longer window — 1-month, 2-month, 3-month, 6-month or 24-month — each with its own full-history fence. The window is always named on the card; "at a high" without a window is not a statement. price_extremes
Sales YoY (filed quarter)
Reported sales for the latest filed quarter against the SAME quarter one year earlier — the only like-for-like comparison for a seasonal business, since quarter-on-quarter compares Diwali with the monsoon. Read only from NSE XBRL filings, never from a scraped vendor page: of the 837,022 rows in the fundamentals archive on 2026-08-06, 776,382 carry no source and are the Screener legacy being retired, so the scans read the 60,640 that are filings. The price of that is coverage — a year-on-year cut is measurable on roughly 862 names against a 2,078-name tape — and every card publishes the number it could measure. fundamentals_history
Profit YoY (filed quarter)
The same comparison on reported net profit, under the same filings-only rule and the same published coverage. "Loss to profit" is its special case: positive this quarter, zero or negative a year ago. source: as above.
Sales TTM growth (filed quarters)
Sum of the four most-recently-filed quarters' sales against the sum of the four before those — trailing-twelve-month, not a single filed quarter, so a seasonal spike or dip in any one quarter cannot flip the reading the way it can for the plain YoY cut above. Filings-only, same source rule; needs eight filed quarters, so the pool is narrower than the two-quarter YoY cut (measured 2026-08-25: 140 names against the same ~2,078-name tape — this narrows or widens as the XBRL backfill runs, re-measure before quoting it). The prior-year TTM must be a positive base — a near-zero or negative denominator turns a growth percentage into noise, so those names are excluded from the pool rather than shown a wild ratio. fundamentals_history
Profit TTM growth (filed quarters)
The same trailing-four-vs-prior-four comparison on reported net profit, under the same filings-only rule, the same positive-prior-base gate, and the same re-measure caveat (measured 2026-08-25: 169 names). source: as above.
Interest cover (filed quarter)
🔴 A risk-WIDTH read, never a ranking key. Hold volatility fixed within date and icov >= 3 suppresses blow-ups at relative risk 0.667754 and suppresses DOUBLING at 0.683004 — statistically indistinguishable, so it carries no evidence about the DIRECTION of the next twelve months, only about how WIDE the range of outcomes is. Definition: operating profit for the latest filed quarter divided by that quarter's interest cost, measured on 1,009 symbols that file both tags. The separation is real on 37,842 point-in-time observations (1,026 symbols, 2012–26) and it is risk compensation, not skill: the entire raw asymmetry (0.3594 down against 0.6076 up) is a volatility artefact that vanishes under the control (paired symbol-clustered bootstrap, 1,000 draws: Δ +0.0153, 95% CI [−0.1720, +0.1944], P(Δ<0)=0.450). Legitimate for position sizing and risk budgeting; not an alpha screen. A rendering that shows only the downside half is the recorded defect, not the finding. Lenders self-exclude — a bank has no computable interest cover, and 73.8% of financial rows are NULL here. icov_q ICOV_FREE_FILTER
Profit vs sales growth
Whether net profit grew faster than sales did over the same year — the plain expression of operating leverage. Both year-ago bases must be positive, since a swing off a negative base produces a growth rate that is arithmetic rather than meaning. Descriptive: it says costs grew more slowly than revenue in one filed quarter, which one-offs, cost timing and genuine efficiency all produce identically. sales_yoy np_yoy
Margin squeeze
Sales rose against the year-earlier quarter while net profit fell. Named for what was filed, not for a verdict about why: input-cost inflation, a one-off charge, a growth push funded through the P&L, and genuine margin loss all print the same way here. sales_q np_q
Other income share
Descriptive — treasury income at a cash-rich company and a one-off asset sale raise it identically, so a high share is a question to ask, never a verdict. Other income as a percentage of profit before tax for the latest filed quarter: how much of pre-tax profit came from somewhere other than operations. Pooled only where PBT is positive (the share is meaningless against a loss) and other income is non-negative (a negative line is a write-back, not a prop). oi_share
Promoter holding
The promoters' percentage of the company in the latest filed shareholding pattern. Read only from NSE XBRL SHP filings, never from the scraped legacy half of the same archive. Point-in-time, and that is a data fact: of the 1,450 symbols with primary SHP rows, 1,372 have exactly ONE filing (measured 2026-08-27), so a year-on-year comparison has no second leg to stand on — ownership change is a feed item, not a scan. Descriptive: a high promoter stake is alignment to some readers and concentration risk to others, and this number takes no side. prom_q
FII holding
The foreign-institutional percentage of the company in the latest filed shareholding pattern, under the same filings-only rule and the same point-in-time limit as promoter holding. Descriptive: it says who owns the company today, never what happens next — the estate's flow work is descriptor-only after failing its out-of-sample gate. fii_q
DII holding
The domestic-institutional percentage (mutual funds, insurers, banks) on the same basis, from the same filing. Descriptive, for the same reason. dii_q
Institutional holding
The two legs summed. It pools narrower than either alone, because a symbol that filed only one of them cannot answer a combined question and must not be counted as a miss. inst_q
Promoter pledge
🔴 Nil is not zero: a symbol with no filed pledge tag is unmeasured and stays out of the pool — it has not told us it is unpledged — while a symbol that filed 0.0 genuinely has none. The percentage of the promoter holding pledged against borrowing, as filed. A rising pledge is one of the few widely-agreed governance warnings in Indian equities and is still descriptive here: it is a disclosure, not a prediction. Read only from NSE XBRL SHP filings, never the scraped legacy half of the same archive. pledge_q
Borrowings (filed FY)
🔴 A single filed year, never a trend — 830 of the ~997 symbols with annual XBRL hold exactly TWO filed financial years (153 hold one, 14 hold three or more), and the extractor cannot read instances before ~2022-07, so this deepens one year at a time and not by waiting. Total borrowings as reported on the latest filed annual balance sheet. Read only from NSE XBRL filings, never the Screener archive that goes back to 2002. Nil is the filer's own judgment: a balance sheet filed with no borrowings tags counts as genuinely debt-free, which is the ingest's recorded convention, not this card's guess. debt_a
Debt to equity (filed FY)
Borrowings divided by net worth (equity capital + reserves) on the latest filed annual balance sheet. Both legs of net worth must be filed — a company that filed one and not the other has not told us its net worth, and treating the missing leg as zero would flatter every ratio built on it. Descriptive, and point-in-time for the reason above: this says what the balance sheet looked like once, not which way it is heading. de_a nw_a
Return on capital employed (filed FY)
(Profit before tax + Interest) ÷ (net worth + borrowings), in percent, for the latest filed financial year — the same arithmetic the house capital-allocation layer uses, not a second definition of it. Derived, not filed: ROCE is not an XBRL tag, so all five inputs must be present or the symbol is unmeasured rather than assumed. Guarded on a positive denominator: negative net worth exceeding debt produces a ratio whose sign is arithmetic rather than meaning. Quality does not rank returns — on 2012–26 NSE data a quality factor scored return/vol 0.76 with alpha ~0.0% and failed both halves, so it is a veto and filter layer, never a ranker. roce_a
Cash from operations (filed FY)
🔴 A narrower pool than the balance-sheet cards — this reads the cash-flow statement, which this estate could not see until 2026-08-27, so it covers only companies whose annual filing has been re-read since. Every card publishes the number it could measure; comparing a count here with a count there without reading both denominators compares two different universes. The cash the business generated running itself over the latest filed financial year, taken from the duration context of its annual XBRL filing (a flow is measured over a year, not at a year-end). Validated against published figures before shipping — RELIANCE FY24 ₹73,998cr, TCS ₹44,338cr, INFY ₹20,787cr, all within 1%. cfo_a
Cash versus profit (filed FY)
🔴 Both legs filed and profit POSITIVE — "cash beats profit" is not a compliment when the profit is a loss, and an unguarded ratio would make every loss-maker a hit. Cash from operations against the net profit reported for the same year. Profit is an opinion about timing and cash is a fact about the bank account; a company reporting profit it has not collected shows profit above cash, and this is the other side of that. Descriptive — it says the cash arrived, never that the shares will follow. cfo_over_pat
Free cash flow (filed FY)
🔴 Both legs must be filed. Cash from operations minus capital expenditure. A missing capex line is a filer that did not tag it, never a company that spent nothing — coercing it to zero would report such a name as maximally cash-generative, the direction an error must never take. Lenders are absent by construction: a bank files no capital-expenditure tag at all, so free cash flow is uncomputable for one rather than zero. fcf_a
Free cash flow margin (filed FY)
Free cash flow as a percentage of the year's sales — how much of each rupee of revenue survived both running the business and paying for its capital spending. Guarded on positive sales. Descriptive, and a single filed year rather than a trend: most companies carry only two filed years on this source. fcf_margin
New high (breakout)
Today's close finished ABOVE the highest price of the whole window before it — today excluded, so it is a genuine break of prior ground rather than a restatement of today's own range. This is the rule that survives short windows: "within 2% of the 1-week high" matched 723 of 2,067 names on 2026-08-05 (35% of the market), while "cleared the prior week's high" matched 304. Only names with history predating the window are counted. Descriptive: clearing a level is a condition, not a direction.
New low (breakdown)
The mirror: today's close finished BELOW the lowest price of the window before it, under the same full-history fence.
At a window low
The mirror of the above: closed within 2% of its lowest price over the named window, under the same full-history fence. Every window on the shelf carries both sides, because "which names are at a six-month low" is a question the same arithmetic already answers and the count is rarely the mirror image of the high count — on 2026-08-05, 124 names sat at a 6-month high and 25 at a 6-month low. price_extremes
RS trend state
The nightly label on the stock's relative-strength line against the market: uptrend, downtrend, consolidating, breakout or breakdown. It describes the RATIO's own trend, so a breakdown here can happen while the share price rises — it means the market rose faster. rs_vs_broad_trend_state
RS phase
The nightly weather word for relative strength — tailwind, headwind, neutral, recovery (lagging but no longer falling further behind) or rolling over (leading but losing the lead). A state label read off the RS line, never a forecast of the next one. rs_phase
RS term structure
The shape of the relative-strength slope across horizons — 1-month, 3-month, 6-month and 12-month read together. "Stacked" means each shorter horizon is steeper than the next longer one, describing strength that has been building rather than fading; it says nothing about the level, so a stacked name can still be lagging the market outright. rs_vs_broad_slope_1m/_3m/_6m/_12m
Sector-relative leader
Strong on BOTH benchmarks at once: the relative-strength line is above its own 50-day average against the market and against the stock's own sector index. Measured only on names carrying a primary_sector — 245 of 2,078 on 2026-08-05 — so its count is read against that pool, never the whole market. primary_sector rs_vs_broad_above_50ma rs_vs_sector_above_50ma primary_sector
Delivery shocker
Delivery percentage today is at least 1.5 times this stock's own one-month average delivery percentage. Measured only on days the exchange actually published delivery data; on a day without it every name reads unknown, which is not the same as "not confirmed". Screener column Deliv × own norm. deliv_vs_norm
Traded value shocker
Traded value today is at least three times this stock's own one-month average traded value. Normalised against the stock itself, never against other stocks — three crore is not a number that means anything on its own. turnover_surge_1m
Delivery value shocker
Delivery value today is above this stock's own one-month peak delivery level — the institutional-peak bar, not the average one. ratio_today_vs_power_1m
RS top decile
Composite relative-strength rank of 90 or higher (scale 1–99) against the whole market, blended across multiple horizons so one hot week cannot buy the badge. The top tenth, a stricter cut than a relative-strength leader (80 or higher). stock_rs
RS bottom decile
Composite relative-strength rank of 10 or lower (scale 1–99): trailing the market across multiple horizons at once. The bottom tenth, a stricter cut than a relative-strength laggard (20 or lower). stock_rs
Relative-strength leader
Composite relative-strength rank of 80 or higher (scale 1–99): the top fifth of the market. The one leader cut across the site; the top decile (90 or higher) is named as such wherever it is used. stock_rs
Relative-strength laggard
Composite relative-strength rank of 20 or lower (scale 1–99): the bottom fifth of the market. The bottom decile (10 or lower) is named as such wherever it is used. stock_rs
Sustained value surge
Traded value has run at least twice this stock's own three-month average — a persistent shift in traded money, not one day's spike. turnover_surge_3m
Quiet delivery
Delivery well above its own one-month norm while price barely moved either way — heavy taking-home without a price move that announces it. deliv_vs_norm
Delivery confirmation
The house §7 tier read for a name at its 52-week high: delivery value measured against this stock's own one-month baselines — CONFIRMED means above its flat average, STRONG means above its institutional-peak bar.
NR7
Today's high-low range is the narrowest of this stock's last seven sessions — a compression description used since Toby Crabel named it; it says nothing about direction. source: computed on read from the bhav tape.
Volume dry-up
Up over the last month while traded volume contracted against its own two-month base — advance on thinning supply, from the nightly launchpad flag; the launchpad family is recorded in the ledger as a validated screen with no fundable edge net of cost.
Long buildup
Cash price up on the day while summed stock-futures open interest also expanded — fresh positions entering on the rising side. A positioning state on the latest F&O tape, never a signal: the house phase-0 record found no fundable edge in this channel.
Short buildup
Cash price down on the day while summed stock-futures open interest expanded — fresh positions entering on the falling side. Same descriptor-only fence.
Short covering
Cash price up on the day while summed stock-futures open interest contracted — existing short positions closing, not new buying.
Long unwinding
Cash price down on the day while summed stock-futures open interest contracted — existing long positions closing, not new selling.
OI value
The standing stock-futures book valued in rupees: summed open interest × the day's underlying close. Open interest is already cumulative — every day's figure is the net of all positions still open — so the value series shows what that standing book is worth, not a flow. Every contract has a long and a short; the value says how big the book is, never which side holds it.
Rollover %
On the near series' last trading day, the share of a stock's whole futures book already sitting in later expiries — how much of the position was carried forward rather than let die. Read beside the stock's own prior-cycle average: 85% means different things for a name that usually rolls 60% and one that usually rolls 95%. Refreshes once per expiry cycle. fno_expiry_oi
Roll-and-cover
The conversion sequence: short buildup in the sessions into an expiry, then short covering or fresh long buildup in the sessions out of it — positions built under pressure, rolled, then closed or flipped. Matched verbatim on the stored day quadrants, never inferred. A description of the book's path, not a signal.
Book carry
The whole futures book on the first post-expiry session versus five sessions before expiry, as a percentage. At or above 100 the position survived the roll intact; well below it, the book shrank through the expiry. fno_expiry_oi

Price shapes — the cheap deterministic patterns 27

NR4 — narrowest range in four
Today's high-low range is the narrowest of the last four sessions. price_patterns
NR7 — narrowest range in seven
Today's high-low range is the narrowest of the last seven sessions. price_patterns
NR21 — narrowest range in twenty-one
Today's high-low range is the narrowest of the last twenty-one sessions. price_patterns
Inside bar
Today's high is below yesterday's high and today's low is above yesterday's low. price_patterns
Two inside bars
Two consecutive inside bars: each of the last two sessions held inside the range of the one before it. price_patterns
NR7 that is also an inside bar
Narrowest range in seven AND held inside yesterday's range — Crabel's compound pattern. price_patterns
Tightest two-day range in twenty
The last two sessions together span the narrowest two-day range of the last twenty. price_patterns
Tightest three-day range in twenty
The last three sessions together span the narrowest three-day range of the last twenty. price_patterns
Outside bar
Today's range engulfs yesterday's: a higher high AND a lower low. price_patterns
WR7 — widest range in seven
Today's high-low range is the widest of the last seven sessions. price_patterns
Gap up
Today opened above the whole of yesterday's range, leaving an untraded band of price between the two sessions. price_patterns
Gap down
Today opened below the whole of yesterday's range, leaving an untraded band of price between the two sessions. price_patterns
Doji
Open and close sit within a tenth of the day's range of each other: the session finished where it started. price_patterns
Marubozu up
Closed within a tenth of the high and opened within a tenth of the low: one-way session. price_patterns
Marubozu down
Opened within a tenth of the high and closed within a tenth of the low. price_patterns
Hammer
Lower shadow at least twice the body, body in the top third, little upper shadow. price_patterns
Shooting star
Upper shadow at least twice the body, body in the bottom third, little lower shadow. price_patterns
Engulfing — up
Today closed higher than it opened and its body fully covers the previous session's down body. price_patterns
Engulfing — down
Today closed lower than it opened and its body fully covers the previous session's up body. price_patterns
Harami
Today's body sits entirely inside the previous session's body, and the previous body was the larger of the two. price_patterns
Ascending triangle
Flat resistance over rising support — the highs stall while the lows climb into them. price_patterns
Descending triangle
Flat support under falling resistance — the lows stay level while the highs step down. price_patterns
Symmetrical triangle
The swing highs are falling and the swing lows are rising, converging on each other from both sides. price_patterns
Rectangle / box
Both boundaries of the recent swing structure are flat: the range has neither risen nor fallen. price_patterns
Pennant
A converging triangle immediately after a sharp move — a pause inside the impulse. price_patterns
Bull flag
A sharp advance, then a shallow drift DOWN inside a narrow parallel channel. price_patterns
Bear flag
A sharp decline, then a shallow drift UP inside a narrow parallel channel. price_patterns

Scan blocks — scans that compose 4

Scan block
One named, testable condition — a shape, a breakout, a delivery threshold, a size-normalised value surge — that answers which symbols satisfy this on the tape date. Blocks never re-derive a number: each delegates to the reader that owns its dataset. scan_blocks
Combination scan
Two or more blocks read together; a symbol qualifies only if it satisfies every one. An unrecognised term is reported back rather than dropped — a combination that quietly ignores a term answers a different question. scan_blocks
Size-normalised value shocker
Today's traded value against this stock's own trailing average, never an absolute rupee figure: Rs 300 crore means one thing for a large-cap and another for a small-cap, and comparing each name to itself puts them on one axis. Traded value as a percent of market cap is the preferred form and is blocked — market_cap_cr covers 105 of 2,463 traded names (4.3%) and needs a primary shares-outstanding source. market_cap_cr value_surge
Delivery confirmation
The share of the day's traded quantity actually taken for delivery, used as a second condition beside a shape or a breakout. Available for the whole EQ tape, unlike market cap. delivery_confirmation

Pat voice co-pilot (the talking research dock) 4

Voice co-pilot
Pat's talking research dock (a Pro feature, the 🎙 button). Every descriptive-only fence ("that's a descriptive read, not a ranking signal") is spoken as well as shown, so hearing an answer never drops the qualification that reading it would carry. It speaks answers aloud sentence-by-sentence as they stream, listens to voice or typed questions, researches over Patearn's OWN data through local tools (never the open web), and drives the site — navigation and filters applied as plain URL changes you can see. Interrupting Pat mid-sentence stops the speech; the mic toggle mutes listening entirely.
Research quota (co-pilot)
The per-day cap on the co-pilot's research-engine calls — the engine key is shared with other Patearn jobs, so the budget is real. Past 80% used, the dock's status line shows "research quota: N left today"; when it is spent Pat says so out loud and switches to replaying playbooks it already verified, until the quota resets.
Playbook (co-pilot)
A research recipe Pat saved after a past answer for the same kind of ask was well-rated (👍 or unchallenged for a week): the tool sequence plus the on-screen steps, replayed at zero engine cost and re-checked against live data on each use. An answer marked "Replayed from a verified playbook" came from here, not from fresh research.
Research steps (co-pilot)
The numbered trace in the dock listing each data tool Pat consults while researching — the work shown, not just the conclusion. When a question needs more than two steps, Pat says "You can wait until I complete my research; I'll get back to you." and keeps going; the steps keep appearing as they run.

Pipeline health — did the scheduled work run 3

Job run
One execution of a scheduled job, from the moment its schedule fired to the moment it
Run outcome
How an execution ended, as the operating system saw it: ended cleanly · *ended
Open run
An execution that started and never recorded an ending. Neither a success nor a

How to read Patearn (concepts) 6

The four pillars
Patearn reads a stock through four independent lenses — POSITIONING (DVPT: is a strong hand active?), RELATIVE STRENGTH (is the market voting for it?), QUALITY (pt14: is the business any good?) and STRUCTURE (CPR: is the chart set up?). No single pillar is a verdict; conviction is several lining up on the same name. Concept slug: pillars. pillars
Value, not quantity
Share counts break across corporate actions (a 1:1 bonus doubles quantity overnight with no new money in), so every cross-time metric here is in RUPEES — delivery value, not share count. It makes the numbers corporate-action-invariant: a "record delivery day" is record MONEY, not a split artefact. Concept slug: value_not_quantity. value_not_quantity
Financials & the pt14 score
(Updated 2026-07-15 — Doctrine D superseded the manual workaround.) The generic pt14 thresholds ARE structurally wrong for a lender (leverage is 6–8× by design; D/E >2 used to trip a hard disqualifier and auto-fail every bank). That is no longer how a financial is scored: Doctrine D now reads banks/NBFCs/HFCs on their own numbers — RoA/RoE against sub-type bars, operating leverage on NII, balance-sheet quality as GNPA / Net NPA / CET1 — and disables the D/E disqualifier for them. (Updated again 2026-08-20 — the bar was raised and the wording made honest.) A bank or NBFC gets a quality grade only where the lender model can actually read it — meaning all three of the things it replaces have been filed: profitability (return on assets), the top line (net interest income growth), and balance-sheet quality (bad loans or capital). Where they have not, nothing is shown at all — no score, no tier — and the page says so: not scored for banks and NBFCs, because this score is built for operating businesses. That blank is the scope of the score, not a gap in our data and not a poor result about the company. There is no "provisional" grade any more: a grade resting on one filed number and eight abstentions was withdrawn rather than labelled, because a caveat is what a reader discounts, and that is the wrong response to a number that should be absent. Credibility and human judgement remain the complement, not the substitute. Concept slug: financials_adaptation. See doctrine_d. financials_adaptation doctrine_d
Review inbox
the one queue where everything the machine proposes (a theme label for a company, an AI-drafted note on a results event) waits for a person to approve or reject it. Nothing counts until it has been checked: an approved proposal becomes a stored fact, a rejected one leaves a marker so the same suggestion is never made twice. Browsable at /proof/inbox; the queue itself is private because it holds drafts nobody has checked yet. Concept slug: review_inbox. /proof/inbox review_inbox
Judgment corpus
the kept record of every approve/reject ever made in the Review inbox. It is what turns "a human checks the machine" from a claim into something measurable: each decision is stored with what was proposed, who proposed it and when it was judged — the wrong calls as much as the right ones. Concept slug: judgment_corpus. judgment_corpus
Agreement rate
of the proposals a generator made, the share a person approved. Read it as how often that generator turns out to be right. Two caveats that are shown on the page rather than hidden: a rate over a handful of decisions means little, and the history imported from before the inbox existed cannot separate "approved a proposal" from "added the tag by hand", so the imported rate flatters the machine and is reported separately from decisions made since. Concept slug: agreement_rate. agreement_rate

Cross-sectional ratios — the Valuation and Financials sections 16

Operating margin (OPM)
what is left from a rupee of sales after the costs of running the
Net margin
what is left from a rupee of sales after everything: depreciation, interest and
Return on equity (ROE)
profit for the year per rupee of shareholders' own money (share
Price / sales
the market value of the company per rupee of annual sales. Its one real
Cash conversion
check the denominator in the row name. Operating cash / net profit
BSE basic-industry comparison
a fixed list sharing all four verified exchange taxonomy tiers,
Market quartiles
four portions of a measured population separated at its 25th, 50th and
Accruals
the part of reported profit not yet turned into cash, measured against sales. The
Effective tax rate
the share of pre-tax profit actually paid in tax. It is on the page
Depreciation, per rupee of sales
what wear on the asset base takes out of each rupee of
Operating margin after depreciation
operating margin once the asset base has been charged
Pre-tax margin
what is left per rupee of sales after interest as well. The gap between this
Operating share of pre-tax profit
how much of pre-tax profit came from the business itself
Free cash flow yield
free cash per rupee of market value. Context only, never ranked:
Interest cover before depreciation
operating profit per rupee of interest, without charging
Enterprise value / operating profit
and Enterprise value / sales — what the whole company

When the company is a bank or a lender 8

Interest income after costs
interest earned, less the interest the bank itself pays, less
Interest burden
interest paid per rupee of income. For a lender this is the single largest
Provisions / income
what the bank set aside for loans it expects to go bad, as a share of
CET1 ratio
common equity tier 1 as a share of risk-weighted assets: the regulator's core
Gross bad loans
loans that have stopped performing, as a share of lending, before any
Net bad loans
what remains of those after provisions. The gap between gross and net is how
Return on equity (for a lender)
profit for the year per rupee of shareholders' own money,
Return on assets
profit per rupee of assets, as filed. Read this one against the bank's

Status 17

Self-funding
cash generated by the operation per rupee spent on new assets. Above 1.0× the
Capital expenditure vs depreciation
what the company spent on assets, per rupee of the
The reference frame
the two-leg comparison behind every market panel: the market's median,
The spine
the chart the market panels use. A vertical line at the market median, one
The inverted scale
on the ratios where a lower number is the better one (debt to equity,
The percentile ladder
what a market panel falls back to when this company's peer group
Excluded by a denominator guard
companies dropped from a ratio's population because the
P/E (annual filing basis)
the share price per rupee of the year's profit, taken from the
Earnings yield %
profit for the year per rupee of market value, the reciprocal of P/E
P/B
the share price per rupee of the company's own book value (share capital plus reserves).
Gross EV / EBITDA
enterprise value per rupee of operating profit before depreciation.
Gross EV / sales
enterprise value per rupee of annual sales, on the same gross basis and
Why the valuation multiples are compared against the SECTOR and never the market
a pharma
Share of sector sales
this company's sales as a percentage of the sales of every peer in
Share of the profit pool
the same company's operating profit as a percentage of the sector's
The gap between the two shares
the finding, and it is invisible in either number alone. A
Sector aggregate
the denominator behind both shares: the sum across every peer that filed

Open questions in a theme — what we cannot yet answer about its companies 3

Research priority
A 0–100 count of how much of a company's open question is still unanswered — the number that orders the list, shown on the page as "41 of 100 unanswered" and never as a rank beside a ticker. Built from four non-return parts that sum to exactly 100: how far its recent delivery behaviour sits from its own normal (32), whether an insider filing landed recently (16), whether management spoke recently (11), and how little we have on it at all (41). The gap part is the largest deliberately — a name we know least about outranks a name whose record is completely fresh and whose behaviour is unremarkable, because not knowing is what a researcher should look at first — which is why the line at the top of that page is usually the company we know the least about, and therefore the one nobody could act on. Every recency is measured against the tape's own latest date rather than the wall clock, so the same database always produces the same list. What it is not: a return estimate, a shortlist to hold, or a ranking of companies in which position one is better than position ten — it is how open a question is.
Delivery abnormality
How far the last 30 days of a stock's delivery value per trade sit from its own 6-month average of the same measure, as a ratio — 1.55× means the recent per-trade delivery is 1.55 times this stock's own six-month normal, and 0.62× means it is well under. Scored on size only: the page uses the absolute log of the ratio, so a fall of the same magnitude scores exactly like a rise, and the direction is printed inside the question as a fact that never moves a row — "Why is delivery value per trade at NAVINFLUOR running at 1.52× its own six-month normal over the 30 days to 28 Aug 2026?" A ratio at or beyond 1.67× (or at or under 0.60×) saturates the axis. Blank when either average is missing — and when it is blank the name gains gap points instead, because being unable to say what its normal looks like is itself a reason to look. The 365-day baseline is deliberately not used: measured on 2026-08-28, the 365-day delivery column was NULL for all 2,629 symbols on the latest tape date while the 180-day one carried 2,098, so a ratio built on it returned an empty page that looked like a working one. avg_dvpt_30d avg_dvpt_180d
Evidence gap
The part of a research priority that comes from what we do not hold on a name, out of 41: how stale the management record is (22 points, saturating at 18 months with no earnings call, full marks if there has never been one), how stale the filing record is (8 points, saturating at 540 days with no insider disclosure), and whether there is even enough history to measure the name's own normal delivery (11 points). A high number is not a missing value and not an error state — it is the page saying the record here is thin, which is a first-class reason to look, and it is what the "What do we not know about X?" question is built from. This is also why the page is not a change-feed: its highest-weighted axis is the absence of events, which an event tape cannot carry by construction. source: the earnings-call record and the SEBI insider-disclosure record.

Commitment evidence and document receipts 13

Commitment case
A continuing issue or promise with its own subject, evidence and deadlines. Imported statements are provisional cases until identity is reviewed; their count is not a count of distinct promises.
Fulfilment progress
Open, partial, fulfilled or not met against all reviewed conditions. Funding relief does not itself resolve an operating problem. Descriptive only; this is not a return forecast.
Evidence status
Whether matching primary observations are verified, partial, conflicting or absent. News remains a corroboration lead. Unknown evidence never becomes a failure merely because time passes.
Deadline evidence
Original deadlines survive revised rules. Overdue and unverified is different from demonstrably late; a reporting date alone does not prove the delivery date.
Document receipt
A dated capture record containing original-file hash, byte count, parser outcome and text/page integrity. A verified receipt covers that document, not every transcript a company might have published.
Current ratio
Current assets / positive current liabilities. Compare only matching statement scope and periods; missing inputs or unverified sector applicability remain unavailable. The value and every used tag/context are retained. Source: original exchange financial documents.
Quick ratio (inventory exclusion)
(Current assets - inventories) / positive current liabilities; prepaid expenses are not excluded. Compare only matching statement scope and periods; missing inputs or unverified sector applicability remain unavailable. The value and every used tag/context are retained. Source: original exchange financial documents.
Cash ratio
Cash and cash equivalents / positive current liabilities; restricted balances are not added. Compare only matching statement scope and periods; missing inputs or unverified sector applicability remain unavailable. The value and every used tag/context are retained. Source: original exchange financial documents.
Net working capital
Current assets - current liabilities; includes financing balances. Compare only matching statement scope and periods; missing inputs or unverified sector applicability remain unavailable. The value and every used tag/context are retained. Source: original exchange financial documents.
Trade working capital
Current trade receivables + inventories - current trade payables. Compare only matching statement scope and periods; missing inputs or unverified sector applicability remain unavailable. The value and every used tag/context are retained. Source: original exchange financial documents.
Receivable days (sales basis)
Average opening/closing current trade receivables / revenue from operations * actual days; total sales proxy, not disclosed credit sales. Compare only matching statement scope and periods; missing inputs or unverified sector applicability remain unavailable. The value and every used tag/context are retained. Source: original exchange financial documents.
Inventory days (cost of sales basis)
Average opening/closing inventory / cost of sales * actual days. Compare only matching statement scope and periods; missing inputs or unverified sector applicability remain unavailable. The value and every used tag/context are retained. Source: original exchange financial documents.
Payable days (purchases basis)
Average opening/closing current trade payables / purchases * actual days. Compare only matching statement scope and periods; missing inputs or unverified sector applicability remain unavailable. The value and every used tag/context are retained. Source: original exchange financial documents.

Research workbook — your own work, and what it costs 18

Monthly research activity
Distinct authenticated members with eligible recorded search or open activity in one frozen calendar month and timezone. A company's or theme's people count is the numerator; members with any eligible recorded research activity of that action form the denominator. Repeated activity by the same member counts once per item and action. Explicit automation, promotion and test activity are excluded. These counts do not represent all platform members, transactions or ownership. Sparse samples and incomplete collection are unknown. workbook_attention_people
Research participation share
Eligible distinct members who researched one company or theme divided by eligible members with any recorded research activity of the same action and month, expressed as a percentage. Search and open activity stay separate. A missing, suppressed or incomplete denominator produces unknown, not zero. This is observed research activity, not buying pressure or investment quality. workbook_attention_share
Prior research baseline
The equal-weight mean of an item's own eligible monthly participation shares across the policy's declared prior calendar months. Each month has its own participant denominator. Incomplete or suppressed history stays unknown; the baseline does not borrow another company's rate or treat a missing month as zero. workbook_attention_baseline
Relative research attention
The current monthly participation share divided by that item's prior research baseline, expressed in times. One times means the same recorded participation rate as its prior average. A missing or zero baseline leaves the comparison unknown. This is descriptive activity and implies neither future returns nor profitability. Private workbook exclusions do not change the shared frozen figures. workbook_attention_relative
Workbook float preference
An explicitly chosen percentage bound on dated free float or public shareholding; the two definitions are not interchangeable. A compatible verified source, unit and period are required. Small tradable supply can amplify moves in either direction and does not establish traded value, narrow spreads, market depth or the ability to exit. Missing source or liquidity evidence remains unresolved. The criterion records the researcher's preference and acknowledgment, not a safety threshold. workbook_float
Workbook market capitalisation
The market value of a company's outstanding equity, expressed in INR crore. A range includes both endpoints; it is a size criterion chosen by the researcher, not a quality or return forecast. The workbook uses a frozen, verified value with its period, unit and source version. It does not replace missing primary evidence with a vendor estimate or a newer price. workbook_market_cap
Workbook frozen value
A value retained inside the selected research snapshot together with its unit, financial period, statement basis where applicable, source version and evidence availability time. A missing or incompatible receipt leaves the metric unknown; unknown is never zero. Downloading the snapshot does not refresh its facts. workbook_frozen_metric
Workbook scoped relationship
A private claim connecting one canonical company to a theme through a specific role and activity stage. Recording it creates a candidate. An explicit review can verify an exact retained primary passage, while the business interpretation remains the researcher's own. A missing tag is a coverage gap. A capability or product reference does not prove broad sector exposure or revenue significance. Later source corrections are shown separately from the original frozen snapshot. workbook_relationship
Workbook thematic materiality
A reported percentage of a named denominator in a stated period, supported by an exact retained primary passage. For example, a product accounting for 25% of revenue in FY2026 establishes only that stated proportion, denominator and period. Product capability, orders, delivery and revenue recognition are different facts; one does not establish the others. An absent or incompatible proportion remains unknown and cannot be inferred from a theme tag. workbook_materiality
Workbook criteria status
A saved preview evaluates the researcher's explicit conditions on one frozen snapshot. AND requires all conditions to pass; OR requires at least one. Missing compatible evidence remains unknown unless another condition determines the result. Only a definite failure becomes an exclusion when the researcher applies the preview; unknown companies remain. A stale preview reflects an earlier workbook version, while current exclusions are labelled separately. workbook_criteria
Workbook interest coverage
Operating earnings divided by interest expense for the declared comparable financial period, expressed in times. The workbook requires a compatible verified receipt and an explicitly selected nonfinancial-company basis; it does not apply this servicing measure to lenders. The minimum is a user-entered research condition, not a universal safety threshold. workbook_interest_coverage
Workbook debt growth
Percentage change in consistently defined debt across the declared comparable periods. An absent or unusable comparison base leaves the value unknown. The workbook compares a verified receipt with the researcher's maximum; it does not infer debt growth from a debt-to-equity ratio. workbook_debt_growth
Workbook capital adequacy
A regulated financial company's reported capital-adequacy measure, expressed as a percentage and kept with its period and source basis. Different capital definitions are not interchangeable. The workbook requires a compatible verified receipt and a user-entered minimum; it does not assume one threshold fits every lender. workbook_capital_adequacy
Workbook NPA growth
The change in a consistently defined non-performing-assets percentage, expressed in percentage points rather than percentage growth. A change from 2% to 3% is one percentage point. Gross and net NPA measures must not be mixed. Missing comparable evidence remains unknown; the maximum is the researcher's explicit condition. workbook_npa_growth
Research units
The monthly allowance for NEW interpretation in the workbook — the only thing there that can cost anything. Reading, opening a workbook, quoting a source, writing notes, filtering and resuming are free and make no model call at all. Units are quoted before the work starts and only then held; what you actually used is settled afterwards. Units are not rupees and there is no published conversion between them. Source: workbook usage ledger.
Available / reserved / used
The three parts of the meter, which always mean different things. Used is work that finished. Reserved is an amount set aside before work started, counted at the maximum you agreed to — not a charge, and released if the work does not happen. Available is the allowance minus both. A reservation you can see is deliberate: it is how work that crashed mid-flight stays visible instead of silently becoming a charge or silently vanishing. Source: workbook usage ledger.
Source admitted
Whether a document met the workbook's primary-source rule: exchanges, the regulator, the central bank, depositories and official government publishers. A document you supply yourself is admitted too, and is labelled as yours — recorded as your assertion, never presented as independently verified. A source outside both is refused with the reason shown, not quietly accepted at lower confidence. Source: workbook source admission.
Source revised since you read it
The document has been re-published since you quoted it. Your quote still shows the exact words you read, pinned to that version; this flag says the current version differs. Both facts are true at once, and neither replaces the other. Source: workbook passage version.

F&O Lab — user-directed calculations 7

F&O Lab
The separate stock/index evidence and scenario workspace at /markets/fno/lab. The user chooses an underlying, date, expiry, legs, premiums, quantities and costs. It calculates hypothetical expiry outcomes and preserves private assessments. It does not select a strategy, infer a recommended hedge, publish an unvalidated win rate or establish a trading track record. Initial access is owner preview; paid release requires separate admission.
Near-money PCR
Put open interest divided by call open interest across matched call/put strikes within a declared expiry-scaled log-price band. For admitted index observations, the band is spot times exp(plus or minus trailing realized volatility times sqrt(calendar days to expiry/365)). It requires 20 log returns from 21 consecutive recorded archive sessions and reports the strikes and both denominators. Missing prices, OI or archive coverage refuse the value. Stock adjusted-price coverage is not yet admitted. This band is descriptive, not a confidence interval, and open interest identifies no investor's intent.
OI value percentile
The selected stock's total futures open-interest rupee notional (open interest times underlying price) ranked against its own prior observations, excluding the selected date. The available sample size and dates are displayed. Index comparisons refuse unverified source-unit conversion. A high percentile describes a large standing book, not a direction or expected return.
Delivery window
The equal-weight mean of recorded daily delivery percentages over the last 20 observed stock sessions, with valid, missing and stale observations counted explicitly. It is not pooled share volume across dates, and it does not identify which side an institution took. Indices have no stock delivery percentage.
Expiry payoff
Sum over explicit option legs of signed units times intrinsic value minus premium, less the user-supplied total costs charged once. Breakevens are roots of this piecewise-linear function on nonnegative underlying prices. Unlimited tails remain labelled unbounded even if a chart shows a finite range. It excludes interim valuations, margin calls and unentered funding, taxes and delivery costs.
Frozen F&O assessment
A member's immutable record of calculator versions, inputs, context, evidence and results, with payload and metadata hashes. Saved exports read that record rather than recomputing it. Saving an assessment is neither a forecast nor proof of an executed trade or realized outcome.
Portfolio shock scenario
Hypothetical portfolio value times user-specified beta times the same underlying percentage shock used for explicit option legs. Both unhedged and combined outcomes are shown; impossible negative projected holdings values are unavailable. It is a linear sensitivity calculation, not actual historical holdings performance or hedge sizing.

Saved company reviews 7

Company review
saved, cited findings shared across stock, portfolio and watchlist. Source passages selected by scripts remain unassessed; guidance, ambitions and interpretations retain their attribution. A review is not a guarantee or recommendation. Concept slug: company_review. company_review
Reading coverage
analyst-read pages versus imported pages, with extraction gaps separate. Script-scanned pages do not count as verified reading. Neither measure proves discovery or understanding of all relevant sources. Concept slug: review_reading_coverage. review_reading_coverage
Evidence cutoff
the latest collection timestamp among a review's linked sources. It is not a promise that every source is fresh through that time. Concept slug: review_evidence_cutoff. review_evidence_cutoff
Company-review input selection receipt
the append-only record of which saved analyst, accepted-span, scan, relevance or scenario input became current, which input it replaced and when. New choices carry a trusted UTC selection time and stable order. A migrated legacy pointer keeps an unknown selection time; its migration observation is never backdated into history. Concept slug: review_input_selection. review_input_selection
Conditional parent PAT / EPS
an arithmetic bridge from separately cited historical parent-attributable profit to an explicitly assumed target-period parent baseline, plus the parent's share of incremental after-tax entity earnings. Every observed number references an immutable receipt created by the authenticated owner's explicit acceptance of its issuer entity, consolidation scope, metric, period, value/unit, transformation and one exact source span; ordinary scenario saving cannot create that trust, and a nearby matching number or auxiliary citation is insufficient. Observed ownership has its own date; target ownership is an assumption and is applied once only. EPS divides target parent PAT by target weighted-average diluted shares. Incremental units exclude activity already included in the target baseline; margin, fixed cost, depreciation and finance scopes are declared separately. Unsupported loss tax relief is zero. Grant eligibility, sanction, cash and profit recognition remain separate, and grant amounts do not enter this formula's profit. Missing calculation inputs remain visible and withhold only the affected output. Concept slug: conditional_parent_pat_eps. conditional_parent_pat_eps
Conditional forward P/E
a dated spot share price divided by conditional earnings per share for a named future period. Inputs carry units, periods, observed-versus-assumed status and exact evidence. It is unavailable when EPS or the dated spot price is missing or nonpositive, and it never forecasts a price, an event probability or a chosen multiple. Concept slug: conditional_forward_pe. conditional_forward_pe
Private thesis interpretation
an attributed reading of one user's notes against one saved company-review version. An interpretation must cite evidence and disclose assumptions and failure conditions. Notes or source changes invalidate its reuse. Without a reviewed interpretation, the section explicitly stays pending. Concept slug: private_thesis_interpretation. private_thesis_interpretation

Market internals — the whole tape's vital signs 4

Stocks advancing (market breadth)
The share of the NSE cash universe that closed up on the day: adv ÷ (adv + dec + unch). Shown with the raw counts beside it, always, because a bare percentage is read as a verdict. Ranked against every session since 2004. Not the same metric as Breadth (0–5), which is a per-stock DVPT ignition count — they share a word and nothing else.
Dispersion (cross-sectional)
How far apart stocks moved from one another on the day — the winsorised cross-sectional standard deviation of daily returns, ×100. High dispersion means selection can pay; low dispersion means almost everything moved together, so picking stocks earns little however good the picking is. It says nothing about direction.
Coil (market-wide)
The mean range compression across the universe — the market-level average of the per-stock coil idea, so below 1.00 is a tape trading in a narrower range than its own recent normal. A conditioner, never a signal: compression says a move may be larger when it comes, and nothing about its direction or timing.
Own-history percentile (market)
Every number in the state band carries one: the share of sessions since 2004 whose value was at or below today's. It is the difference between "74%" and "74%, broader than 94% of the last 22 years" — the same fact with its meaning attached. n is printed beside it so the reader can see how much history the rank is drawn from. Computed on read in breadth_now(); not stored. n