TL;DR

tietiy is an analytical compute brain — a single Python engine that runs after every NSE close, computes a small set of honest, citable observations on 437 stocks and the indices, and surfaces them with explicit certainty tiers. Operator decides; system surfaces. Nothing on this site predicts price. Nothing here is a recommendation. The engine's job ends at "here is what is true today, and here is how sure we are." The decision is always yours.

What the cockpit is NOT

  • Not a prediction engine. No model on this site forecasts price. Every output describes a property of what already happened (where the index sits, which sectors moved, what the last pivot was). Statements like "the trend is up" are measurements of the present, not bets on the future.
  • Not a tip service. You will never see "buy X" or "target Y" anywhere on tietiy.in. We don't run a paid group and don't accept paid placements.
  • Not financial advice. We are not SEBI-registered advisors. Every page is educational market context — read, consider, then make your own decision (or talk to a SEBI-registered advisor).
  • Not a black box. Every number on the site is produced by code in the repo, with a named producer, a documented input list, and a JSON snapshot stored point-in-time. Click any verdict's "what made this?" link and you can trace it back to the exact data that produced it.

What each producer pillar does

The cockpit is built as a registry of small, independent "producers." Each one reads market data and emits a versioned JSON envelope. Six pillars carry the public-facing work today.

1. Primitives — pivots, support & resistance, structure

The structural skeleton of every chart. We detect swing pivots (turning points) using two parallel algorithms — a 5% reversal zigzag (the StockCharts / MetaTrader standard) and a 10-bar lookback fractal — and label every pivot with its algorithm. The last pivot on either family is always marked provisional because it can repaint when a new bar comes in. Support and resistance bands are computed from where price has historically stalled or held — descriptive zones, never promises.

2. Regime — trend × volatility

A traffic-light read of the overall market. We compute it two ways simultaneously: a 5-state legacy projection (bull / bear / choppy / volatile / quiet) that maps onto the familiar green / amber / red palette, and a 2-axis (trend × volatility) grid that's closer to how professional desks describe regime. Both run side by side so the page can show you whether the index is in a clean trend, a choppy mess, or a high-vol risk environment.

3. Drivers & narrative

Markets aren't 437 isolated symbols — they're a handful of active themes (defence buildout, capex cycle, CDMO export, capital-markets boom). The driver layer groups stocks into thematic baskets, tracks each basket's 7-day strength, and tags every basket with a lifecycle state (EMERGING / GAINING_STRENGTH / LEADING / LOSING_STRENGTH / BROKEN). Every stock page surfaces the drivers it sits inside.

4. Attention & lifecycle — which stories are alive

Not every move deserves attention. The attention layer tracks which stories actually have flow behind them (volume, breadth, cross-symbol confirmation) versus which are decaying. A story is "live" while it has measurable participation; once that fades, the system stops surfacing it. Same for events: an earnings beat that the market shrugged off doesn't earn front-page real estate.

5. Verdicts — discipline rules → enum output, never a score

The dashboard's verdict pill on each stock page is the output of a documented set of discipline rules, not a prediction. Rules look at a combination of regime, structure, S/R proximity, and multi-timeframe alignment, and resolve to one of six enum values — high_conviction_watch, actionable_if_confirms, watch_only, bull_trap_caution, caution_zone, or no_edge. These are descriptive classifications of the current state, never trade instructions. (See "The discipline-rule contract" below for what each enum means.)

6. Stories — WHY / BEST / TODAY / EXPLAINED / DEEP_DIVE

Generated explainers built on top of the producer JSON. Each story type answers a different question:

  • WHY — why is this stock / driver / event in focus right now? (mostly auto-generated, deterministic templates)
  • BEST — the best example currently of a named pattern (best leader, best breakout, best base)
  • TODAY — what changed today vs the previous close (event-driven, fires only when something actually moved)
  • EXPLAINED — long-form narrative for a complex situation (multi-driver setup, regime transition)
  • DEEP_DIVE — the slow read, with full context, base rates, and historical comparisons

Every story carries a citations block at the bottom listing the producer modules + keys that fed it. If a statement isn't citable, the engine refuses to make it.

Certainty tiers explained

Every observation the engine emits carries one of four certainty tiers. The tier travels with the data and is displayed wherever the data is. The honesty rule: if we don't know, we say so — out loud, in the field, not in a footnote.

  • deterministic — the value is a direct measurement of historical data. Examples: a closing price, a 20-day SMA, a confirmed pivot that's at least one bar in the past. Trust these the most.
  • fuzzy — the value is a classification with a threshold (e.g. "trend stack: stacked-up" requires EMA20 > EMA50 > EMA200). The math is exact, but the threshold is a choice; values right at the boundary can flip with one bar.
  • subjective — the value involves a human-tunable parameter that reasonable people would set differently (zigzag reversal pct, the boundaries of "leading" vs "gaining strength"). We document the parameter so you can reason about it.
  • provisional — the value can change as new bars arrive. The most important case: the last pivot of either pivot family is always provisional. It looks like a pivot now, but a new high or new low can wipe it. No scanner gate on this site uses a provisional pivot — that's enforced by a CI check, not by promise.

The discipline-rule contract

The verdict pill on a stock page is an enum, not a score, and not a prediction. Here's what each value means in plain English. The rules that produce them are deterministic — same input → same verdict, every time.

  • high_conviction_watch — multiple discipline rules fire together (regime supportive, structure clean, multi-timeframe aligned). System classifies the state as high-conviction watch — not "buy now." Still your call.
  • actionable_if_confirms — the setup is one trigger away from textbook. The system is saying: if X confirms (e.g. a breakout above the swing high on volume), the discipline rule would classify this as actionable. We surface the gap; you decide whether to wait for the confirm.
  • watch_only — interesting state, but at least one discipline rule is unmet. Don't act; observe. Common after a fresh trend change or during a noisy regime.
  • bull_trap_caution — the price looks like it's breaking out, but a counter-signal exists (volume divergence, regime weakening, S/R clustering above). The system isn't calling a top; it's flagging the failure-risk so you don't chase blind.
  • caution_zone — explicit risk environment (regime red, volatility spike, or the stock is in a known fragile state). System reduces the surface area of what it asks you to look at.
  • no_edge — no rule fires meaningfully. The setup is neither here nor there. The system stays quiet.

Notice the careful wording: every verdict describes the system's classification of the current state, never what you should do. That's the locked contract — see CLAUDE.md §5.4 if you want to read the architectural rule directly.

The Validation Gate — why we don't claim the cockpit "works" yet

Here is something most market sites won't tell you: we do not yet have proof that this cockpit improves trading outcomes. We have the architecture, the producers, and the certainty tiers — but the proof point is the operator's own journal, accumulated over enough post-cockpit trades to statistically compare against the pre-cockpit baseline.

The Validation Gate fires at n ≥ 30 post-cockpit trades, compared on regime-tagged windows, with expected-value (not win-rate) as the metric. Until then, every claim about the cockpit's edge is provisional — and the system is built so a null result is data, not failure. A null result tells us to redesign; a positive result earns the cockpit a permanent seat at the desk.

If you trade alongside the daily brief, you're effectively in the n. We log the outputs; the operator logs his decisions; in time we publish what we learned. That's why the disclaimer is prominent and the verdicts carry inline notices — the burden of "it works" sits with evidence, not with assertion.

Replayability — every verdict has a paper trail

Every producer's output is archived point-in-time, every day, in a database the cockpit calls the profile history. Pick any past date and the engine can re-emit exactly what it emitted that day — same regime read, same drivers, same verdicts — without re-running the math. The JSON is the truth; replay is a database lookup, not a recomputation.

This matters for two reasons:

  • Honesty — we cannot quietly rewrite history. A wrong verdict from last Monday stays wrong in the archive forever. When the engine finds a bug, we ship a fix and a note; we don't reach back and "correct" past pages.
  • Auditability — the journal layer (and the public stock-of-the-day cards) cite the exact PIT snapshot they referenced. You can challenge any past call by pointing at the snapshot that produced it.

Where to read more

Questions about the method? Write to us — the person who answers is the person who wrote the code.