The Analyst's Path

Phase 0Orientation and foundationsFinance trackM0.0417,752 words1 h 39 min of readingabout 14 hours of study2 concept pagesfree

The Analyst's Toolkit & Knowledge System

You are three weeks into an 80-week program and have not yet debited anything. That is deliberate. An analyst's output is judgment, and judgment is manufactured from three raw materials: numbers you can trust (data sources), calculations you can audit (the…

Phase: 0 · Orientation & Foundations · Week: 3 (begin late in week 2 if the bootcamp is done) · Estimated hours: ~14 of module work

Where it sits. Behind you now are the map and the five questions, how markets, exchanges, and regulators fit together, and the numeracy bootcamp. Ahead is your first full annual report and 10-K, read using the tools you install today. This week isn't like any other in the program. It produces almost no new finance knowledge. It produces infrastructure. That means spreadsheet skills and data-source fluency, plus the personal knowledge system that the next 76 modules will deposit into. Treat it like moving into a workshop. By Sunday the benches are built and the filing cabinet is labeled, and for years afterward you only add to it.


Learning objectives

You will be able to:

  1. Build a clean analyst spreadsheet in Excel, Google Sheets, or LibreOffice Calc: inputs, calculations, and outputs separated; every assumption entered exactly once; no hardcodes inside formulas; correct relative, absolute, and mixed references.
  2. Use the core function kit fluently: SUM/AVERAGE/COUNT, IF/AND/OR/IFERROR, SUMIFS/COUNTIF, INDEX-MATCH, and XLOOKUP, and explain why INDEX-MATCH beats VLOOKUP.
  3. Work at keyboard speed: execute at least ten core shortcuts (navigation, selection, fill, anchor-toggling, paste-values) without touching the mouse.
  4. Navigate the data sources cold: read a screener.in company page block by block; retrieve annual reports and announcements from BSE/NSE; find any US 10-K on SEC EDGAR in under three minutes and run a full-text search; pull a 10-year view from stockanalysis.com or TIKR, industry benchmarks from Damodaran's library, and macro series from RBI and FRED.
  5. Operate a Zettelkasten: convert reading into atomic permanent notes, each one idea in your own words and linked, filed in the standard folder tree in plain markdown.
  6. Run the four-part knowledge system: permanent notes, company files, a mistakes-derived checklist, and a decision journal written before outcomes and never edited after.
  7. State and apply the AI policy: what AI may draft, what it may never do, and the verification rule keeping every number traceable to a primary source.

Advertisement

Prerequisites & connections

Builds on. The five questions, which your first permanent notes will capture. The market map, so you know what NSE, BSE, SEC, a ticker, and a filing are, and the data tour has somewhere to land. And M0.03, where you computed compound interest by hand. Today you automate it, which is the program's standing rule: by hand first, then the tool.

Feeds into everything. The guided annual-report read uses screener.in, BSE/NSE, and EDGAR tomorrow. Phase 1 hand-spreads filings into the workbook layout you learn here. Phase 2's common-size and ratio work extends today's build-alongs. Phase 3's models live and die on keeping inputs apart from the calculations that use them. Every module from here on ends by asking you to write permanent notes and, from Phase 6, checklist items. The decision journal you seed today is graded as a deliverable in M9.04 and is the raw material of the calibration scores in the app. The master map calls this system the analyst's real compounding asset. You install it once, today. Then you feed it forever.


Core teaching content

4.1 Why tools come before accounting

You are three weeks into an 80-week program and have not yet debited anything. That is deliberate. An analyst's output is judgment, and judgment is manufactured from three raw materials: numbers you can trust (data sources), calculations you can audit (the spreadsheet), and accumulated thinking you can retrieve (the knowledge system). Most self-taught investors bolt these on haphazardly over years, with insights evaporating in browser tabs. You will install all three properly in one week, while the cost is low, so the next 77 weeks of work lands in a structure built to hold it.

Carry one framing with you: a spreadsheet is an argument, not a calculator. When you eventually hand someone a valuation, you are claiming "if you accept these inputs, these conclusions follow." Nobody can check that claim unless the inputs sit visibly apart from the logic and every number can be traced. Keep that in mind through everything that follows. Section 4.2 is built around that idea.

Excel for financial analysis

Excel for financial analysis is using a spreadsheet to build models that someone else can audit. Every assumption is typed once in an input block, and formulas point back to it instead of containing hardcoded numbers. About a dozen functions cover 90% of analyst work, and Google Sheets and LibreOffice Calc run the same formulas. A stranger should be able to trace any number to its origin within a minute.

12 min read, on its own page

4.3 The data-source tour: where the numbers live

There are two categories of source and one iron rule. Primary sources are the legal record, meaning what the company filed with an exchange or regulator: BSE/NSE/MCA for India, SEC EDGAR for the US. Aggregators such as screener.in, stockanalysis.com and TIKR re-arrange filed numbers for speed. You use aggregators for looking and primary sources for citing. Any number entering a memo, model, or note must trace to a primary source you personally opened, which is working agreement 7. Aggregators standardize and occasionally get things wrong, so reconcile before you rely on them. Bookmark everything below into a browser folder called analyst-sources today. Interfaces drift, so each entry gives the durable menu path as well as the URL (all URLs as of mid-2026).

4.3.1 screener.in: the Indian analyst's home page

URL: https://www.screener.in. Free registration unlocks watchlists and exports, and the paid tier adds more saved screens and columns (limits change).

Walkthrough: read a company page. Search "TCS" and you land on https://www.screener.in/company/TCS/consolidated/. Note the URL's last segment. Consolidated covers the whole group, subsidiaries included, while standalone covers the parent entity alone, and the toggle sits atop the page. Default to consolidated. Phase 1 treats the distinction fully, so don't worry about the finer points yet. Walk the page top to bottom:

  1. Summary strip: market cap, current price, 52-week high/low, stock P/E, book value, dividend yield, ROCE, ROE, face value.
  2. Pros / Cons: auto-generated from ratios, with zero context. It's machine output, and you shouldn't mistake it for analysis.
  3. Peer comparison: the company beside its sector, with medians, your first cross-sectional glance.
  4. Quarterly results: the last ~12 quarters of sales, expenses, OPM and PAT. Trend breaks show here first.
  5. Profit & loss (annual): ~10–12 years on one screen, with compounded-growth mini-tables beneath giving sales and profit CAGR over 10/5/3 years/TTM. This block is why the Phase-8 teardown starts here.
  6. Balance sheet / Cash flows: the same annual sweep.
  7. Ratios: debtor days and inventory days, plus the ROCE trend.
  8. Shareholding pattern: promoter %, FII/DII and public, quarterly. Promoter stake and pledging are India-critical governance signals you'll use from Phase 2 onward.
  9. Documents: annual reports for multiple years and credit-rating reports. Concalls are here too, with transcripts, notes and presentations. This is your transcript source for Indian companies.

Build your watchlist now. On any company page, click "Add to watchlist", which requires login. Add the ten Indian starter-bank names from the master map: Asian Paints, Pidilite, DMart, TCS, Titan, ITC, HDFC Bank, Bajaj Finance, Divi's Labs, InterGlobe Aviation. Screener emails you when they announce results, which is your first automated information flow.

Query screens. The "Screens" tab accepts queries with AND/OR, for example Market Capitalization > 5000 AND Return on capital employed > 20 AND Debt to equity < 0.5, with market cap in ₹ crore. "Show all ratios" lists every variable. Screens generate candidates, never conclusions.

Two more sites are worth knowing. Trendlyne does alerts and analyst data. Tijori does business-mix breakdowns. Both are freemium, and nothing in the program requires them.

4.3.2 NSE & BSE: the primary record for India

Under SEBI's LODR regulations, listed Indian companies file results, annual reports, and material announcements with the exchanges. So the exchange websites are the legal record, and the place to verify anything an aggregator shows.

NSE (https://www.nseindia.com): search a symbol such as TITAN in the top search bar → the quote page (/get-quotes/equity?symbol=TITAN), which carries tabs for announcements, financial results, shareholding and annual reports. For all-company sweeps, use the menu Market Data / Companies Listing → Corporate Filings → Announcements or Annual Reports (/companies-listing/corporate-filings-annual-reports).

BSE (https://www.bseindia.com): search the company in the "Get Quote" box → the company page → left menu Corp Information → Annual Reports / Announcements / Shareholding. On the company page, note the six-digit scrip code, for example 500325 for Reliance Industries. The all-company archive is at Corporates → Corporate Filings → Announcements (/corporates/ann.html). BSE's annual-report archive is the deepest free one for India, with many companies back into the 1990s. You'll be glad of that when Phase 8 has you reading ten years of reports oldest-first.

Results season floods the announcement pages. Filter by company and by category, such as "Result" or "Investor Presentation", and download the actual PDF. For unlisted companies, a promoter's private entity for instance, the record lives at MCA (https://www.mca.gov.in → "View Public Documents," small fee), which is relevant to governance work in Phases 2 and 8.

4.3.3 SEC EDGAR: every US filing since the 1990s, free

URL: https://www.sec.gov/edgar. There's no login and no fee, and it's the primary record for all US-listed companies.

Walkthrough. Find Apple's latest 10-K in under three minutes.

  1. Go to https://www.sec.gov/edgar/search/, or click "Company Filings" from sec.gov.
  2. Type "Apple" or the ticker AAPL in the company box. Autocomplete resolves it to Apple Inc, CIK 0000320193. The CIK is EDGAR's permanent company ID. Tickers change. CIKs don't.
  3. On the company's filing page, filter by ticking "Annual & quarterly reports" or by typing 10-K in the form-type box.
  4. Open the newest 10-K. You land on the filing index page, because a filing is a bundle of documents. Click the primary document (e.g., aapl-20240928.htm). That bundle also holds exhibits and XBRL data files.
  5. Save it into your filings folder (4.4.4). Time yourself. Under three minutes is the bar, and it gets easy after the third try.

The form-type glossary you need this week, one line each (the guided read and Phase 1 go deeper): 10-K annual report · 10-Q quarterly · 8-K material events between reports · DEF 14A the proxy statement (pay, board, governance) · 20-F the annual report of foreign private issuers, which Infosys's US listing files.

Full-text search, EDGAR's superpower. The same page (https://www.sec.gov/edgar/search/) searches the text inside filings from 2001 to the present. Exact phrases go in quotes, as in "material weakness", and then you filter by form type (10-K), date range, or company. It has three uses. (a) Take one company and find every "going concern" mention across a decade. (b) Search across companies to see who else writes "take-or-pay". (c) Run the Phase-8 Ctrl-F list ("related party", "restated", "pledge") at archive scale. EDGAR also serves a company-facts API and quarterly Financial Statement Data Sets, which are XBRL extracts. Our app builds its real-company snapshots from these, so know they exist.

4.3.4 stockanalysis.com & TIKR: the fast ten-year view

For US companies, stockanalysis.com (https://stockanalysis.com) is the quickest free long-history view. https://stockanalysis.com/stocks/COST/financials/ gives Costco's income statement with roughly a decade visible free, and you can toggle to balance sheet, cash flow, and ratios. Paid unlocks ~30 years and exports, and free-tier limits change, so verify. It's clean and fast and needs no login. International coverage exists via /quote/ URLs but is thinner. For India, screener.in remains your tool.

TIKR (https://app.tikr.com, free signup) covers global markets including India on one interface. It has financials and estimates, and transcripts too. Its free tier is delayed and feature-limited (limits change). Its value to you is one consistent layout for an Indian and a US company side by side, which you will exploit from Phase 2's benchmarking onward. Koyfin (https://www.koyfin.com) is a similar freemium terminal, strongest on charts and macro dashboards.

All three are for speed. The 1–2 hour teardown uses them to see ten years in one glance. Whatever you publish still reconciles to filings.

4.3.5 Damodaran's data library: free industry benchmarks

URL: https://pages.stern.nyu.edu/~adamodar/ → Data → Current Data (page datacurrent.html). Aswath Damodaran of NYU publishes, free, the industry-benchmark tables that analysts elsewhere pay terminals for. They cover margins, ROE/ROIC, betas, costs of capital, debt ratios and working-capital norms by sector, plus equity risk premiums by country. There are cuts for the US, Europe, emerging markets (with India in the EM and global cuts) and the world. Damodaran updates the tables each January, and the archive keeps prior years.

Here is the concrete use. Phase 2 computes a company's operating margin and asks "against what?", and Damodaran's sector table supplies the answer. On Current Data, open the table (e.g., "Margins by Sector (US)"), find the industry row, and note the sample size, the "number of firms", before trusting any average. Do one pull now for the mini-project. Whenever a module cites an ERP or sector margin, the standing instruction is pull the live number here; never freeze one.

4.3.6 Macro: RBI and FRED

You'll build a full macro dashboard in Phase 7. Today you install the two taps it drinks from.

RBI (https://www.rbi.org.in): the homepage's Current Rates panel shows the repo rate, SDF/MSF rates, and CRR/SLR. Whenever the program says "check the policy rate," this is where you look. The Database on Indian Economy (DBIE) portal at https://data.rbi.org.in serves downloadable time series for CPI, money supply, bank credit growth, FX reserves and exchange rates. Know two publications by name. One is the Weekly Statistical Supplement. The other is the annual Handbook of Statistics on the Indian Economy. For GDP and CPI at the statistical source, MOSPI is at https://www.mospi.gov.in, and Phase 7 walks it.

FRED (https://fred.stlouisfed.org, St. Louis Fed) is the world's friendliest macro database. It holds 800k+ series. Each one has a chart and a permanent series ID, and you can download it as a CSV. Search naturally, or go direct with IDs worth memorizing: DGS10 (10-yr Treasury yield), FEDFUNDS (Fed policy rate), CPIAUCSL (US CPI), UNRATE (unemployment) and T10Y2Y (10y–2y curve spread, the recession-signal series). FRED mirrors many international series, including Indian CPI and GDP from IMF/OECD sources, though RBI/MOSPI remain the primary Indian record.

4.3.7 Earnings calls and presentations

Transcripts are Phase 8 fuel, so know the taps now. In India, use screener.in's Documents block, the exchanges' announcement pages (transcripts are mandatory LODR filings), and company investor-relations pages. In the US, use company IR pages, plus The Motley Fool's free transcript library (https://www.fool.com/earnings-call-transcripts/). Seeking Alpha's deep archive sits behind a partial paywall. File the transcripts you use into the company's filings folder like any other document.

4.3.8 The routing table

You need…Go toPath/URL
Indian company, 10-yr numbers fastscreener.in/company/<TICKER>/consolidated/
Indian annual report (recent)screener.in Documents, or NSE/BSEcompany page → Annual Reports
Indian annual report (old, pre-2010)BSE archiveCorporates → Corporate Filings → Annual Reports
Indian announcement/result/transcriptNSE or BSECorporate Filings → Announcements
Unlisted Indian company recordsMCAmca.gov.in → View Public Documents
US 10-K/10-Q/8-K/proxySEC EDGARsec.gov/edgar/search → company → form filter
Phrase search across US filingsEDGAR full-text searchsec.gov/edgar/search (2001–present)
US company, 10-yr numbers faststockanalysis.com/stocks/<TICKER>/financials/
India + US on one interfaceTIKR (free tier)app.tikr.com
Industry benchmarks (margins, betas, ERP)Damodaranpages.stern.nyu.edu/~adamodar → Data (January refresh)
India policy rate / macro seriesRBI / DBIErbi.org.in (Current Rates) · data.rbi.org.in
US/global macro seriesFREDfred.stlouisfed.org (DGS10, CPIAUCSL, …)

Decision journal

A decision journal is a written record of a decision or prediction, made before the outcome is known. Each entry states the decision as one falsifiable sentence, with a confidence percentage and a review date, and is only ever appended to. It protects you from hindsight bias, which rewrites what you believed once the outcome arrives. Over time it shows whether your 70% calls come true about 70% of the time.

10 min read, on its own page

4.5 AI as tool, not crutch

You can work through this whole program with zero AI. Every explanation is written out and every problem is solved. Every source is primary and public. That's deliberate, because your value as an analyst is the judgment that survives when the convenience layer goes away. The standing policy for every module after this one:

Three sanctioned uses. (1) An accelerator for work you've already done by hand at least once, such as formatting a table, drafting prose you will rewrite, or recalling function syntax. (2) A sparring partner. Ask it to "attack this thesis" or "what am I missing?", and treat the output as questions you then investigate yourself. (3) A drill generator for extra practice problems, which you solve and verify independently.

Three absolute bans. (1) Never a source of record. No number enters your model, memo, or notes from an AI. Language models generate plausible figures. Ask for a company's FY24 revenue and you may get a confident wrong number, or the right number on the wrong fiscal-year basis, or standalone when you needed consolidated. None of that is lying. It's fluent approximation, and that's worse, because it reads just like knowledge. Every number comes from the filing, which you opened. (2) Never your memory. The knowledge system is your memory. Outsource recall and the latticework never forms, and the latticework is the analyst. (3) Never your reps. Working agreement 2 says every core skill is performed by hand before automation touches it. An AI-drafted DCF you lightly edited teaches you approximately nothing, and Phase 8's timed, closed-book certification will collect the debt.

Once a quarter, run the dependency test and answer it truthfully: if every AI vanished tomorrow, would your workflow degrade in speed only, or in capability? Speed-only is the acceptable answer. When you do use AI within policy, note it ("summary draft: AI, verified against 10-K pp. 34–41"). It's the same traceability you demand of every number.

4.6 The toolkit completion checklist (this is the gate)

The gate for the week is this checklist at 100%, plus five permanent notes, plus the mastery check. Print it, and tick a box only when it's literally true:

  • [ ] Spreadsheet chosen and configured (Indian number format tested; blue-input convention set)
  • [ ] Build-along 1 complete: compounding table + check column ties to (1+r)^n + sensitivity grid from one mixed-ref formula
  • [ ] Build-along 2 complete: HUL common-size statement, all percentages correct
  • [ ] No-mouse hour done (table rebuilt keyboard-only); ten shortcuts performed cold
  • [ ] screener.in account live; ten-company starter watchlist created; one query screen saved
  • [ ] Can pull an annual report from BSE or NSE unaided (done at least once)
  • [ ] Found a 10-K on EDGAR in under 3 minutes; ran one full-text search with a form-type filter
  • [ ] stockanalysis.com and TIKR opened; ten-year view located for one US company
  • [ ] One Damodaran industry table pulled; noted sample size and January cadence
  • [ ] RBI Current Rates panel and one FRED series (with series ID) located and downloaded
  • [ ] analyst-brain/ folder tree created; all four templates saved in 90-templates/
  • [ ] Five permanent notes written (three from the mini-project + two from the practice set), each atomic, own-words, linked
  • [ ] Company files opened for one Indian + one US company (snapshot + open questions filled)
  • [ ] Checklist seeded (six program items + at least one of your own); mistakes-log created
  • [ ] One decision-journal entry written, all eight fields, review date on the calendar
  • [ ] Backup running: cloud sync + a dated zip archived somewhere else

Common mistakes & how experts think differently

1. Hardcoding assumptions inside formulas. =B7*1.12 works today and lies tomorrow. The 12% is invisible. Nobody can audit it, and nobody will remember to update it. Experts treat every constant inside a formula as a defect. Build the reflex: if a number can change, it gets a labeled input cell, in blue, in the input block, once.

2. Trusting the lookup defaults. VLOOKUP without FALSE and MATCH without ,0 both silently return approximate matches. On unsorted data that means confidently wrong numbers flowing downstream with no flag on them. Experts write exact-match arguments every time, and they prefer XLOOKUP/INDEX-MATCH partly because those defaults are safe.

3. Formatting first, structure later. Beginners spend an hour on borders and colors around a broken layout. Experts build the structure first (inputs/calcs/outputs, time across, items down, check cells) and then format for five minutes. A plain sheet that traces beats a beautiful sheet that doesn't.

4. Treating aggregator numbers as the record. screener.in and stockanalysis.com standardize. They reclassify line items and move other income around. They show "adjusted" figures without their footnotes. A novice pastes. An expert reconciles against the filing before any number matters, and when the two disagree, the filing wins, always.

5. The collector's fallacy. Hoarding PDFs, highlights, and bookmarks feels like progress and produces nothing you can retrieve. An expert asks a different question to decide whether they've learned something: can I write the idea from memory, in my own words, and connect it to something I know? That's a permanent note, so the gate counts notes and ignores highlights.

6. Folder-perfectionism and system-tinkering. Redesigning taxonomies and trialing a fourth note app is procrastination wearing a productivity costume. Luhmann used paper slips in wooden boxes. Our system is boring on purpose, and experts pour their creativity into what the notes say.

7. Journal entries written after the verdict, or too vague to be wrong. Nobody can score "IT looks good, confidence high", and an entry written after results is hindsight cosplay. Experts write falsifiable predictions with percentages and review dates before outcomes, then let the record embarrass them into calibration. The never-edit rule exists because everyone feels the urge to "clarify what I really meant".

8. Copying someone else's checklist wholesale. A 60-item borrowed checklist gets skimmed and never used, because items carrying no scar tissue get no attention. Experts keep checklists short, personal, and mistake-derived, and every line is a tombstone with a name on it.

9. Using AI to skip the reps. This one is subtle. "I'll have it draft the summary and just review." Reading to review builds a tenth of the understanding that writing does, and none of the retrieval strength. Experts automate what they have mastered, never what they're still learning.


Worked examples

Worked example 1: common-size x-ray of Apple (US)

Figures illustrative, modeled on ~FY24 scale (actual FY24 revenue ≈ $391bn); pull the real 10-K via the EDGAR walkthrough. Everything is in $bn, and every percentage is the line ÷ revenue.

Line$bnComputation% of revenue
Revenue390390/390100.0%
Cost of sales210210/39053.8%
Gross profit180180/39046.2%
R&D3131/3907.9%
SG&A2626/3906.7%
Operating income (EBIT)123123/39031.5%
Tax (and net other items)2929/3907.4%
Net income9494/39024.1%

Read it top to bottom. After building the device, Apple keeps 46 cents of every revenue dollar as gross margin. It spends under 8 on R&D and under 7 on everything else corporate, and 31.5 cents of operating profit are left. That's roughly ten times the net margin of a typical grocer.

Now set it beside build-along 2. HUL's structure (23% EBITDA, 16.5% PAT) and Apple's (31.5% EBIT, 24.1% NI) are different shapes of excellent. One is built on advertising-fed brands and distribution, the other on a hardware-software ecosystem. It's the same x-ray showing two economics. Phase 2 teaches you to judge these. Today you can produce them, and that comes first.

Worked example 2: lookups and flags on the demo watchlist (India)

This uses the 4.2.4 table (A1:D7). There are three tasks, each traced in full.

(a) Pull Pidilite's D/E with INDEX-MATCH. =INDEX($D$2:$D$7, MATCH("Pidilite", $A$2:$A$7, 0)) MATCH scans A2:A7 for "Pidilite" with exact match and finds it at position 5. INDEX returns the 5th value of D2:D7, which is 0.1. ✓

(b) Do the same with XLOOKUP, protected. =XLOOKUP("Pidilite", $A$2:$A$7, $D$2:$D$7, "not on list") returns 0.1. Misspell the name and you get "not on list" instead of #N/A, because the if-not-found argument is a built-in IFERROR.

(c) Add a quality flag column. In E2, enter =IF(AND(C2>=20, D2<=0.5), "Pass", "Check") and fill it to E7:

CompanyROCE %D/EFlagWhy
TCS640.0Passboth tests clear
Asian Paints310.1Passboth clear
ITC370.0Passboth clear
Titan250.7CheckROCE fine; D/E 0.7 > 0.5
Pidilite300.1Passboth clear
Avenue Supermarts190.0CheckD/E fine; ROCE 19 < 20

Count the passes with =COUNTIF(E2:E7,"Pass"), which gives 4. Then look at what the flags are. They're questions, and none of them is a verdict. "Check" on Titan means "go find out what that leverage is". In Titan's case it's gold-on-lease, a fact you'd only learn in the filing. Spreadsheets sort, and you do the inquiring.

Worked example 3: a complete decision-journal entry (week-3 grade)

Here's an entry that suits where you are now. It's a study prediction, cheap to be wrong about, and good for calibration:

Decision: Predict HUL's FY25 disclosures before reading them. Date: 2026-07-14 Decision. Before opening HUL's FY25 annual report (scheduled read: 2026-07-18), I predict: (a) underlying volume growth for the year was between 2% and 6%, and (b) advertising & promotion spend was at least 8.5% of revenue. Thesis. Large Indian FMCG rarely escapes low-to-mid single-digit volume growth in a soft rural-demand year; HUL's scale makes double digits implausible. And HUL has historically defended brand spend even in weak years, because cutting A&P is margin-borrowing from the future. Disconfirming evidence. Recent-quarter commentary flagged weak mass-segment demand, so volumes could undershoot 2%. Competitive pressure from D2C brands might have forced A&P above my range while margin pressure argued below it; my (b) could be right for wrong reasons. Base rate. Of the last ~10 years of large-cap Indian FMCG annual volume prints I've seen referenced, the large majority sat between roughly 0% and 7%; double-digit years are rare and usually post-shock rebounds. Confidence: 70% that both (a) and (b) hold. What would change my mind. If the AR shows a demerger/portfolio reshuffle that redefines "volume growth," the prediction is void rather than wrong, so journal the definitional lesson instead. Review date: 2026-07-18 (after the guided annual-report read).

Look at the machinery working. The numbers are falsifiable, the reference class is stated, the counter-evidence is fairly put, the percentage can be scored, and the review date is fixed in advance and happens to be your next module. It's the habit at miniature scale. By Phase 9 the same eight fields will carry position-sized decisions.

Worked example 4: the all-in cost of one trade (India)

You buy 200 shares of Bharat Ispat (synthetic) at ₹1,500 and, some weeks later, sell all 200 at ₹1,575. That's a clean ₹15,000 (5%) gross gain. Your discount broker charges zero brokerage on equity delivery. So the trade was free? Build the contract note and see. All rates below are illustrative, mid-2026; SEBI, the exchanges, and the GST Council revise them; verify against your broker's tariff sheet and the current circulars. The arithmetic, given these rates, is exact.

The illustrative delivery rate card.

  • STT: 0.10% on the buy and on the sell.
  • NSE transaction charge: 0.00297% each side.
  • SEBI turnover fee: ₹10 per crore (0.0001%) each side.
  • Stamp duty: 0.015% on the buy side only.
  • Depository (DP) charge: ₹13.50 per scrip on the sell.
  • GST: 18% on brokerage + transaction + SEBI + DP.
  • Brokerage: ₹0.
ChargeBuy (₹3,00,000)Sell (₹3,15,000)Basis
Brokerage0.000.00discount broker, delivery
STT300.00315.000.10% each side
Exchange txn8.919.360.00297% each side
SEBI fee0.300.32₹10/crore each side
Stamp duty45.00—0.015%, buy side only
DP charge—13.50flat, sell side only
GST (18%)1.664.17on brokerage + txn + SEBI + DP
Side total355.87342.34line items rounded to the paisa

All-in cost = 355.87 + 342.34 = ₹698.21.

Read it like an analyst, and three facts jump out.

(1) "Zero brokerage" doesn't mean zero cost. ₹698 of statutory and exchange charges survived the free brokerage, and STT alone (₹615) is 88% of the bill. Stamp duty (₹45) and the DP charge (₹13.50) are almost all the rest, while exchange, SEBI, and GST together come to under ₹25.

(2) The stack is asymmetric. Stamp duty hits only the buy and the DP charge only the sell.

(3) Scale it to the decision that matters. ₹698 is 0.23% of the ₹3,00,000 you committed, so the stock must rise about a quarter of a percent before you break even, and the frictions eat 4.7% of your ₹15,000 gain. On a single, patient delivery round trip that's a rounding error. Run it fifty times a year, though. By then you've handed over 11% of your capital to costs before the market has done anything. So turnover is a risk, and Phase 9 comes back to it.

Build this stack once in your analyst-toolkit workbook as an inputs-driven mini-calculator, with rates in blue, one formula per charge and the total isolated. It's the 60-second audit test turned on your own trading.

Worked example 5: what zero-commission trading really costs (US)

A US brokerage advertises $0 commissions. You buy 500 shares of Coastal Foods (synthetic), quoted at $79.98 bid / $80.02 ask. You take the ask at $80.02 and later, with the quote unchanged, sell at the bid of $79.98. Commission really is $0 both ways. So what did the trade cost? Fee rates below are illustrative, mid-2026; the SEC resets its Section 31 fee periodically and FINRA's activity fee changes; verify current values. The arithmetic is exact given these rates.

  • Bid–ask spread, the real toll. You bought at $80.02 and can only sell at $79.98. That 4-cent gap is a cost you pay the market, (80.02 − 79.98) × 500 = $20.00 round-trip.
  • SEC Section 31 fee, on sells only, at ~$27.80 per $1,000,000 of proceeds: 0.0000278 × (500 × 79.98) = $1.11.
  • FINRA Trading Activity Fee, on sells only, at ~$0.000166 per share: 0.000166 × 500 = $0.08.
  • Commission: $0 buying + $0 selling.

All-in round-trip cost = 20.00 + 1.11 + 0.08 = $21.19 on a ~$40,000 position, about 0.05%. Now look at the composition. The spread is $20.00, roughly 94% of the entire cost. Statutory fees are loose change, and the commission really is zero.

Read it beside Worked example 4. The two markets have opposite cost structures and teach one lesson. In India the visible statutory charges (STT, stamp duty, GST) dominate and brokerage can be zero. In the US the invisible spread dominates and commission is zero. In both, "free" trading is a marketing claim and not an accounting fact. Spreads yawn widest where beginners trade most, in thin, volatile small-caps. For a fund investor the recurring analogue is the expense ratio, compounding against you every year, and Phase 9 treats turnover and cost as first-class risks. Your habit is the same in both hemispheres. Before any trade, know the all-in cost and what price move merely gets you back to zero.


Practice set

Work every problem before you open its solution (working agreement 3). Problems 1–5 are guided, 6–10 independent, 11–12 timed.

P1 (guided). Reference prediction. Cell D2 contains =B2*C2. (a) You copy it to D7. What formula results? (b) Cell E5 contains =$B$2*C5, and you copy it to F5. What results? (c) Cell C10 contains =$B$3*(1+C$9)^$B10, and you copy it to D11. What results?

Solution. (a) Both references are relative and the copy moves 5 rows down and 0 columns, giving =B7*C7. (b) $B$2 is fully locked, and C5 moves 1 column right and 0 rows, giving =$B$2*D5. (c) Take it one reference at a time. $B$3 is locked, so it stays unchanged. C$9 has its row locked and its column free, so it moves 1 column right to D$9. $B10 has its column locked and its row free, so it moves 1 row down to $B11. The result is =$B$3*(1+D$9)^$B11, the same sensitivity-grid behavior you saw in build-along 1.

P2 (guided). Kill the hardcode. A colleague's sheet computes year-n value as =B4*1.12^A7, where B4 is the principal and A7 the year. List two concrete failure modes of this formula, then rewrite it properly, assuming you add the rate as an input in B2.

Solution. The first failure is that the 12% is invisible. An auditor reading outputs can't see the assumption, and answering "what rate did we use?" means opening formulas cell by cell. Second, updating the rate means editing every formula that embeds it. Miss one and the sheet silently mixes 12% and the new rate. A third answer is also fair: sensitivity analysis is impossible without restructuring. For the rewrite, put 12% in B2 as a blue input, then use =$B$4*(1+$B$2)^A7. One change in B2 now updates every dependent cell.

P3 (guided). Table by hand, then by formula. On paper, compute the first three rows of a compounding table for ₹2,00,000 at 10%. Then verify year 3 with the closed form.

Solution. Y1: interest 2,00,000 × 0.10 = ₹20,000 → closing ₹2,20,000. Y2: 2,20,000 × 0.10 = ₹22,000 → ₹2,42,000. Y3: 2,42,000 × 0.10 = ₹24,200 → ₹2,66,200. Closed form: 2,00,000 × 1.10³ = 2,00,000 × 1.331 = ₹2,66,200. ✓ The table and the formula are the same mathematics wearing different clothes, so a check column can catch errors in either.

P4. Lookups. Use the demo watchlist (A1:D7 in 4.2.4). (a) Write INDEX-MATCH to fetch ITC's ROCE, and state what MATCH returns. (b) Write the XLOOKUP equivalent with a not-found guard. (c) Why does =VLOOKUP("ITC",A2:D7,3,FALSE) break if someone inserts a new column between A and C, and why doesn't your (a) break?

Solution. (a) =INDEX($C$2:$C$7, MATCH("ITC", $A$2:$A$7, 0)). MATCH returns 3 (the third position). INDEX returns 37. (b) =XLOOKUP("ITC", $A$2:$A$7, $C$2:$C$7, "not found") → 37. (c) VLOOKUP's 3 is a hardcoded column count, and inserting a column makes the third column something else. VLOOKUP still returns a value, just the wrong one, which is the worst kind of error. INDEX-MATCH references the ROCE range itself. On insertion $C$2:$C$7 shifts to $D$2:$D$7 automatically, so it keeps pointing at the data.

P5. Conditional aggregation. Use the same table. (a) Write the formula for how many companies have ROCE ≥ 30, and give the answer. (b) Write the formula for the average ROCE of all six, and give the answer. (c) Write a formula counting companies that pass both ROCE ≥ 20 and D/E ≤ 0.5 (hint: COUNTIFS), and give the answer.

Solution. (a) =COUNTIF(C2:C7,">=30") picks up TCS 64, Asian Paints 31, ITC 37 and Pidilite 30, so the answer is 4. (b) =AVERAGE(C2:C7) = 206/6 = 34.33. (c) =COUNTIFS(C2:C7,">=20",D2:D7,"<=0.5") excludes Titan (D/E 0.7) and DMart (ROCE 19), leaving 4.

P6. Common-size a synthetic retailer. This is a synthetic drill company. Revenue ₹8,000 cr, COGS ₹6,000, employee costs ₹480, rent ₹320, other opex ₹400, D&A ₹240, interest ₹80, tax ₹120. Build the P&L down to PAT and common-size every line. What single line most defines this business's economics?

Solution. EBITDA = 8,000 − (6,000+480+320+400) = ₹800 (10.0%). EBIT = 800 − 240 = ₹560 (7.0%). PBT = 560 − 80 = ₹480 (6.0%). PAT = 480 − 120 = ₹360 (4.5%). The full common-size: COGS 75.0%, employees 6.0%, rent 4.0%, other 5.0%, EBITDA 10.0%, D&A 3.0%, EBIT 7.0%, interest 1.0%, PBT 6.0%, tax 1.5%, PAT 4.5%.

COGS at 75% is the defining line. This is a thin-gross-margin reseller that buys at 75 and sells at 100, so tiny moves in purchase terms or pricing swing profit violently. A 2-point gross-margin slip would erase 44% of PAT (160/360). Compare HUL's 50% materials line. It's a different business with different physics.

P7. Route the request. Name the source, and the path, you'd use for each. (a) An Indian company's FY2008 annual report. (b) Every 10-K since 2010 mentioning the exact phrase "vendor financing". (c) Today's repo rate. (d) Average operating margin for US apparel companies. (e) Ten years of Costco's financials on one screen inside two minutes. (f) The transcript of an Indian company's latest earnings call.

Solution. (a) The BSE archive: bseindia.com → Corporates → Corporate Filings → Annual Reports. It's the deepest free Indian AR archive, and screener's Documents block rarely reaches that far back. (b) EDGAR full-text search (sec.gov/edgar/search), with "vendor financing" in quotes, form type 10-K and date range 2010–present. FTS covers 2001 onward, so 2010 is inside coverage. (c) The RBI homepage's Current Rates panel (rbi.org.in). (d) Damodaran's data library: Data → Current Data → Margins by Sector (US) → Apparel row. Note the number of firms and the January refresh. (e) stockanalysis.com/stocks/COST/financials/, the free ~decade view. (f) The screener.in company page → Documents → Concalls. The NSE/BSE announcements page also works, since transcripts are mandatory LODR filings, and so does the company's IR page.

P8. Write the screen. In screener.in query syntax, screen for market cap above ₹20,000 crore, ROCE above 25%, and debt-to-equity below 0.3. Then say briefly what a screen's output is and is not.

Solution. Market Capitalization > 20000 AND Return on capital employed > 25 AND Debt to equity < 0.3. Market cap is denominated in ₹ crore on screener, and the variable names follow its "Show all ratios" list. A screen's output is a list of candidates for investigation, companies whose standardized numbers matched three filters on one day. It is not a judgment about quality, honesty, or value, none of which live in three ratios.

P9. Write two permanent notes. From the bootcamp's material, write one atomic note on inflation as compounding in reverse and one on the rule of 72. Use the full template: claim-title, ID, your own words, one number, source, at least one link. These two count toward your five-note gate.

Solution. These are model answers. Yours must be in your own words, and you grade them on atomicity, not phrasing. Note 1: # Inflation is compounding running against you, with the body "The same exponential arithmetic that grows an investment shrinks a currency's purchasing power. At 6% inflation, prices double in roughly 12 years (72/6), meaning a rupee held as cash loses half its real value over that span while nominally unchanged. This is why 'safe' cash is only nominally safe, and why every return in this program gets a real-vs-nominal check. Example: ₹1,00,000 under a mattress for 24 years at 6% inflation buys what ≈ ₹25,000 buys today (two halvings)." Source: the numeracy bootcamp. Links: [[rule-of-72]], [[real-vs-nominal-returns]]. Note 2: # The rule of 72 estimates doubling time from a growth rate, with the body "Years to double ≈ 72 ÷ growth rate in percent. It works because ln(2) ≈ 0.693 and 72 is a divisor-friendly stand-in for 69.3 that stays accurate within tolerance across ordinary rates (roughly 4%–15%). At 12%: 72/12 = 6 years/doubling, so 30 years ≈ 5 doublings ≈ 32×, close to the exact 29.96× from build-along 1. Use it to sanity-check any compounding claim in seconds." Source: the numeracy bootcamp. Links: [[inflation-compounds-in-reverse]], [[compound-interest-table]].

P10. Repair the journal entry. A learner writes: "2026-07-14. I think TCS will do well because IT is recovering. Feeling quite confident." List every field that's missing or defective, then rewrite the entry properly, inventing reasonable specifics.

Solution. Start with the defects. There's no falsifiable decision, because "do well" doesn't say how well or by when. The thesis is an assertion without a mechanism. There's no disconfirming evidence and no base rate. "Quite confident" is not a confidence %. There's no what-would-change-my-mind and no review date. And "IT is recovering" is itself unsourced.

A model rewrite:

  • Decision: "Before TCS's next quarterly results (review date: the announcement day), I predict constant-currency revenue growth of 2–5% YoY and attrition below 15%."
  • Thesis: sector commentary and peer prints suggest stabilizing demand, and TCS's scale makes extreme prints unlikely.
  • Disconfirming: recent peer calls say discretionary spend remains weak, and a large-deal ramp-down could undercut the range.
  • Base rate: over the past ~8 quarters, TCS's CC growth has mostly printed low single digits, so the range brackets the recent distribution without assuming acceleration.
  • Confidence: 65%.
  • Change-my-mind: peer results this cycle materially below expectations, or a profit warning.
  • Review: results day, when you score both predictions and log calibration.

P11 (timed, 10 minutes). Sprint build. Start from a blank sheet. Build inputs ($10,000 principal; 7% rate), a 10-year compounding table, a check cell against (1+r)^n, and a one-row sensitivity for 5%/7%/9% at year 10. Stop at 10 minutes.

Solution. Lay it out as in build-along 1. The year-10 closing is 10,000 × 1.07¹⁰ = $19,671.51, and the table and check cell must agree. For the sensitivity row, copy the formula =$B$3*(1+C$8)^10 across. You get $16,288.95 at 5%, $19,671.51 at 7% and $23,673.64 at 9%. If you finished inside 10 minutes with zero hardcodes and a working check cell, log it in the toolkit checklist. If you didn't, run the no-mouse hour again and retry in two days.

P12 (timed, 5 minutes). EDGAR sprint. (a) Find the filing date of Costco's most recent 10-K. (b) Construct a full-text search for the exact phrase "membership fee" restricted to Costco's 10-K filings, without going past the results page. (c) In a sentence, why might you search a phrase across all companies' filings?

Solution. (a) sec.gov/edgar/search → type "Costco" or COST in the company box → company filing page → filter form type 10-K → the top entry's filing date. Costco's fiscal year ends around end-August, so its 10-Ks file in the autumn. Your answer is whatever the page shows, because the skill is the sixty-second retrieval. (b) At sec.gov/edgar/search, query "membership fee" in quotes, set the company filter to "Costco Wholesale Corp" and the form type to 10-K. (c) A cross-company phrase search shows which other businesses share an economic feature. Membership models, take-or-pay clauses and related-party language are examples. It's pattern-hunting across the whole archive, and it's how Phase 8's Ctrl-F list scales beyond one document.

P13 (guided). The all-in cost of a delivery trade (₹). Use the illustrative delivery rate card from Worked example 4: STT 0.10% each side, exchange 0.00297% each side, SEBI ₹10/crore each side, stamp duty 0.015% buy-side only, DP ₹13.50 on the sell, GST 18% on brokerage + exchange + SEBI + DP, and brokerage ₹0. You buy 150 shares of Nandan Cements (synthetic) at ₹800 and sell all 150 at ₹840. Compute (a) the all-in cost, and (b) that cost as a percentage of your gross gain.

Solution. The buy value is ₹1,20,000, the sell value ₹1,26,000 and the gross gain ₹6,000. Buy side: STT 120.00 + exchange 3.56 + SEBI 0.12 + stamp 18.00 + GST 0.66 = ₹142.35. Sell side: STT 126.00 + exchange 3.74 + SEBI 0.13 + DP 13.50 + GST 3.13 = ₹146.49.

(a) All-in ≈ ₹288.84, with paise rounded. (b) 288.84 ÷ 6,000 = 4.8% of the gain. Nearly a twentieth of your profit goes on one round trip, and STT (₹246) is again the dominant line. The break-even move is 288.84 ÷ 1,20,000 ≈ 0.24%, so the stock must rise about a quarter-percent before you're even. It's the same structure as Worked example 4 at a smaller size, and the percentages barely move, because the dominant charges are proportional to turnover, not fixed.

P14 (guided). The review-load arithmetic of spaced repetition. Your knowledge system's daily loop schedules each new flashcard for review at 1, 3, 7, 14, and 30 days after you first learn it. That's five reviews, after which the card is "mature" and leaves this window. Suppose you add 10 new cards every day and have done so long enough to reach steady state. (a) How many review cards come due on a typical day, and how many total cards (reviews + new) do you face? (b) At about 8 seconds per card, how long is the daily loop? (c) Say what this predicts about the danger of skipping days.

Solution. (a) On any steady-state day, the cards due are those learned 1, 3, 7, 14, and 30 days ago. That's five cohorts of 10, or 50 reviews, plus the 10 new cards, for 60 cards/day. Notice that the load is bounded. Spaced repetition doesn't grow without limit, because each card graduates after five reviews, whereas re-reading everything grows forever. (b) 60 × 8 s = 480 s = 8 minutes, comfortably inside the ~30-minute daily budget the knowledge system assumes. (c) Skipping is the failure mode. Miss three days and ~180 cards avalanche into one session. Your loop blows past its budget. You abandon it, and the whole system dies. So protecting the daily loop ranks above almost everything. Little-and-often beats a heroic weekend.

P15. Route the request. Name the source, and the path, you would use for each, and flag whether it's a primary source or an aggregator. (a) The STT rate currently in force on equity delivery. (b) Costco's latest 10-K. (c) An Indian company's investor presentation from last quarter. (d) The average operating margin of US retail companies. (e) Today's RBI repo rate. (f) A US company's latest earnings-call transcript, for free.

Solution. (a) The statute or the exchange, never an aggregator. STT is fixed by law, and your broker's tariff sheet or the exchange circular states the operative rate. It changes, so verify at the source and never from memory. (b) SEC EDGAR (sec.gov/edgar/search → COST → form filter 10-K), which is primary. (c) screener.in Documents, the NSE/BSE announcement pages under the Investor Presentation category, or the company IR page. The exchange filings are mandatory under LODR and therefore primary. (d) Damodaran's data library → Data → Current Data → Margins by Sector (US) → Retail row. Note the number of firms and the January refresh. It's a curated benchmark and not a filing. (e) The RBI homepage's Current Rates panel (rbi.org.in), which is primary. (f) The company IR page or Motley Fool's free transcript library, since Seeking Alpha's archive is partly paywalled. The habit underneath all six is aggregators for speed, primary filings for anything you cite.

P16. References, a lookup, and a buried rate. (a) Cell C45 contains =$B$3*(1+C$44)^$B45. Copied to E47, what formula results? (b) Using the demo watchlist (A1:D7 in the demo table above), write an XLOOKUP that fetches Avenue Supermarts' ROCE with a not-found guard, and state what it returns. (c) A colleague's trade-cost sheet computes GST in the total row as =0.18*(D5+D6+D7). Name the defect and rewrite it, assuming the GST rate lives in input cell $B$1.

Solution. (a) $B$3 is fully locked, so it's unchanged. C$44 has a locked row and a free column, so it shifts two columns to E$44. $B45 has a locked column and a free row, so it shifts two rows to $B47. The result is =$B$3*(1+E$44)^$B47, the sensitivity-grid behavior from build-along 1. (b) =XLOOKUP("Avenue Supermarts", $A$2:$A$7, $C$2:$C$7, "not found") returns 19. (c) The defect is a hardcoded 0.18 buried in a formula. An auditor can't see it, and if the GST rate ever changes you must hunt down every cell that embeds it, which breaks rule one of the spreadsheet rules. The rewrite is =$B$1*(D5+D6+D7), with 0.18 typed once into blue input cell B1. Now the rate is visible and auditable, and you update it in one place.

P17. Which checklist items may be added? A learner proposes three items for the master checklist. Under the checklist's governing rule, decide whether each qualifies. Say why: (a) "Buy only companies with ROCE above 20%." (b) "Did I check the percentage of promoter holding that is pledged?", added after I lost money in 2024 when a pledged-promoter mid-cap collapsed in a forced-sale spiral." (c) "Never invest in a business you don't understand, because Warren Buffett says so." Then give the one rule that decides all three.

Solution. (a) No. It's a screening platitude and points at no mistake. It guards no specific logged failure. If it belongs anywhere, it's a screen, which generates candidates, whereas a checklist item guards against a scar. (b) Yes. It points at a real, dated mistake and names the failure it guards against, the forced-sale spiral, which is the form the template requires. (c) No. It's borrowed authority and isn't your scar. A checklist of admired quotes gets skimmed and never used, and this item gets no attention because it carries no tombstone. The rule: an item earns its place only by pointing at a real mistake, yours or a documented disaster, with the failure named and the date added; review quarterly, merge, never delete.

P18 (timed, 6 minutes, stretch). The zero-commission trap, quantified ($). Use the illustrative US rate card from Worked example 5: commission $0, bid–ask spread paid round-trip, SEC Section 31 fee ~$27.80 per $1,000,000 of sell proceeds, and FINRA activity fee ~$0.000166/share on sells. You buy 1,000 shares of Kestrel Media (synthetic) at the $25.03 ask and later sell at the $24.97 bid. Compute (a) the round-trip spread cost, (b) the SEC fee, (c) the all-in round-trip cost, and (d) the percentage the position must rise just to break even.

Solution. (a) Spread = (25.03 − 24.97) × 1,000 = $60.00. (b) SEC fee = 0.0000278 × (1,000 × 24.97) = 0.0000278 × 24,970 ≈ $0.69. (c) Add the FINRA TAF 0.000166 × 1,000 ≈ $0.17 and $0 commission, and the all-in cost is ≈ $60.86, of which the spread is 98.6%. (d) Buy principal = 1,000 × 25.03 = $25,030, so the break-even rise = 60.86 ÷ 25,030 ≈ 0.24%. Getting all four right in six minutes shows fluent cost awareness. The trap is answering "$0" to (c) because the broker advertised zero commission. The spread is the cost, and here it's roughly 70× the statutory fees. If you missed it, add "compute all-in cost before trading" to your workflow notes and re-run in two days.


Applied mini-project: install the system, run it once

Task. Stand up the complete toolkit and knowledge system, then push one Indian and one US company through it end to end. Pick Titan (NSE: TITAN) and Costco (Nasdaq: COST), or swap in any pair from the master map's starter bank you haven't used yet.

  1. Workshop. Finish both build-alongs in analyst-toolkit, meaning the compounding sheet with its check column and sensitivity grid, and the HUL common-size sheet. Complete the no-mouse hour.
  2. Sources. For Titan, open the screener.in page (consolidated) and add it to your watchlist. Download the latest annual report PDF from screener's Documents or BSE/NSE and save it to 25-filings/titan/. For Costco, retrieve the latest 10-K from EDGAR and time yourself, aiming for ≤3 minutes. Run one full-text search on a phrase of your choice within its filings, and save the document to 25-filings/costco/. Then pull one Damodaran table relevant to either company (e.g., US retail margins) and one FRED series (e.g., DGS10), and note the current repo rate from RBI. Log each source URL and access date as you go.
  3. Knowledge system. Create the analyst-brain/ tree with all four templates. Open 20-companies/titan and costco. Fill the snapshot line, tickers and filing links. Then write at least three open questions each. These are things you really can't answer yet, such as "why does Titan carry gold-on-lease debt and what does it cost?" Seed the master checklist with the six program items plus ≥1 item from a mistake of your own, from any part of your life, with its story. Then create the mistakes-log.
  4. First three permanent notes. Write three atomic notes from the material so far. Good candidates are the five questions, ROIC > WACC as the master test, and compounding's exponential shape, but choose your own phrasing and pick at least one topic yourself. Link them to each other where the link is real.
  5. One journal entry. Fill all eight fields, about a real current decision or a falsifiable study prediction. Worked example 3 is the pattern, but don't reuse its subject. Put the review date in your actual calendar.
  6. AI-policy statement. Write three sentences at the bottom of your toolkit checklist. Say where AI touched this project, if it did, and how each number stayed traceable.

Deliverables: the workbook, the folder tree, two company files, the seeded checklist + log, three notes (+ two from P9 = the five-note gate), one journal entry, the completed toolkit checklist from 4.6.

Rubric (score 0 = missing/wrong, 1 = present with gaps, 2 = meets the bar):

Criterion012
Workbook: both build-alongs correct, check cell ties, zero hardcodes, mixed-ref grid works
Keyboard: no-mouse rebuild done; ten shortcuts demonstrated cold
Source retrievals: all seven pulls done, saved, each with URL + access date logged
Traceability: filing PDFs in 25-filings/, company files link to primary sources
Permanent notes ×3: atomic, claim-titled, own words, ≥1 link each, correctly filed
Company files ×2: snapshot honest, ≥3 genuine open questions each
Checklist + log: 6 seeds present, ≥1 personal mistake-derived item with its story
Journal entry: all 8 fields, falsifiable, % confidence, calendared review date

Pass: ≥13/16, with no criterion at 0. Score yourself fairly and log your weakest row in the mistakes-log. That's the system eating its first real meal.


Reading & resources

  • Sönke Ahrens, How to Take Smart Notes (2nd ed., 2022), the Zettelkasten source text. The front half, with the three note types and the slip-box workflow, is the required core. You can skim the writing-focused back half. [Paid] [Beginner]
  • Tiago Forte, Building a Second Brain (2022), the alternative philosophy, project-oriented and built on the PARA method. It's an optional contrast read after Ahrens, not instead. [Paid] [Beginner]
  • Atul Gawande, The Checklist Manifesto (2009), on why simple checklists beat expert improvisation in aviation and surgery. It's the intellectual basis of your 40-checklist folder, and the full treatment returns in Phase 6. [Paid] [Beginner]
  • Zerodha Varsity, Module 3: Fundamental Analysis, at varsity.zerodha.com. Its chapters on reading an annual report pair well with your new source fluency, and preview M0.05. [Free] [Beginner]
  • ExcelJet (exceljet.net), the cleanest shortcut lists and function write-ups on the web, INDEX-MATCH and XLOOKUP included. Keep it bookmarked as your syntax reference. [Free] [Beginner]
  • Corporate Finance Institute / Wall Street Prep free Excel crash courses, signup-gated but free, with 2–3 hours of drills that cement 4.2. Pick either one. You don't need both. [Free] [Beginner]
  • Google Sheets function list, at support.google.com/docs → "Google Sheets function list". It's the authoritative syntax reference if Sheets is your tool. [Free] [Beginner]
  • SEC, "How to Search EDGAR", at sec.gov/edgar/search-and-access, the official guides to company search and full-text search. Fifteen minutes buys a permanent capability. [Free] [Beginner]
  • Damodaran's data library, at pages.stern.nyu.edu/~adamodar → Data, along with his short "data update" posts each January explaining what changed. [Free] [Beginner→Intermediate]
  • FRED + FRED Help, at fred.stlouisfed.org. Its help center's "Getting to Know FRED" tutorials cover series search, graphing, and downloads. [Free] [Beginner]
  • RBI DBIE portal, at data.rbi.org.in. Browse the Statistics section once now so Phase 7 isn't your first visit. [Free] [Beginner]
  • Obsidian, at obsidian.md, free for personal use. It keeps markdown local and gives you wikilinks plus a graph view. Any text editor is acceptable, because the folder is the system. [Free] [Beginner]
  • Anki, at apps.ankiweb.net, free on desktop and Android, with a paid iOS app. The program's flashcard decks import here if you prefer it over the app's built-in scheduler. [Free/Paid] [Beginner]
  • Michael Mauboussin, The Base Rate Book (Credit Suisse, 2016), a free PDF that's easy to find. Skim the introduction now to see what "outside view" means with real distributions. Full use comes in Phases 3 and 6. [Free] [Intermediate]
  • Going deeper: Zerodha Varsity, "Markets and Taxation," plus the Zerodha brokerage calculator, at zerodha.com/varsity and zerodha.com/brokerage-calculator. It's the clearest free walk-through of STT, stamp duty, GST, and exchange/SEBI charges on Indian trades, and its live calculator reproduces Worked example 4's stack. Rates change, so use it to verify the current numbers instead of memorizing them. [Free] [Beginner]
  • Going deeper: Peter Brown, Henry Roediger & Mark McDaniel, Make It Stick: The Science of Successful Learning (2014). It makes the cognitive-science case for the retrieval practice and spacing behind the daily loop. Testing yourself with flashcards beats re-reading, and spaced review beats cramming. Read it as the "why it works" to Ahrens's "how to file it." [Paid] [Beginner]

The Modern Analyst's Addendum

Everything above teaches this skill from first principles, by hand. That is how you learn it, and the mastery check still tests it that way. This addendum shows how a working analyst amplifies the same skill today. It adds; it never replaces. (R1/R10)

AI-Augment this skill

{
  "skill": "The spreadsheet as a workshop — references, lookups, common-size structure and the check cell; the data-source routing table for India and the US; the plain-text knowledge system with atomic linked notes; the checklist; and the decision journal with a stated confidence and a review date",
  "use": "§4.5 already sets the policy for the whole program — three sanctioned uses, three absolute bans, and the quarterly dependency test. This callout does not amend it; it makes it operational and adds the one move §4.5 does not name. (1) THE MOVE §4.5 DOES NOT NAME: a syntax and structure assistant for the workshop itself. 'Why does XLOOKUP need a fourth argument and what happens without it?', 'give me the mixed-reference pattern for a two-way sensitivity grid' — these are questions about a TOOL, not about a company, and the tool's behaviour is deterministic, documented and instantly testable in the cell next door. This is the safest AI use in the program precisely because the verification is free. (2) THE SPARRING PARTNER, made specific: paste your own decision-journal entry and ask what would have to be true for the prediction to fail. The output is a list of things to go check, which you then check. (3) THE DRILL GENERATOR, per §4.5: more reference-prediction and lookup problems in the practice set's shape, solved and verified by you. (4) THE GLOSSARY DRAFT: a first pass at a term's definition, which you then REWRITE in your own words, because §4.4.2's whole design rests on the claim that writing-as-if-explaining is the test of understanding — and a pasted definition fails that test whatever its source.",
  "tools": ["Chat assistants — Claude, ChatGPT — for spreadsheet and notebook syntax, for sparring against a journal entry, and for drill generation", "Your spreadsheet (Excel, LibreOffice Calc or Sheets) and later a notebook — where every formula gets tested in the cell next door", "Obsidian or any plain-markdown editor over the analyst-brain folder — the notes stay yours, in text, and no assistant writes into them", "The routing table's primary sources: screener.in, nseindia.com, bseindia.com, mca.gov.in, sec.gov/edgar, fred.stlouisfed.org, rbi.org.in, pages.stern.nyu.edu"],
  "prompt": "I am building a two-way sensitivity grid in a spreadsheet: growth rates across row 9 starting at C9, discount rates down column B starting at B10, and the base value in B3. Give me the single formula for C10 — using the correct mixed references — that fills the whole grid when copied right and down, and explain which dollar sign locks which axis and why. Then give me one deliberately broken version of the same formula and tell me what symptom I would see in the grid if I wrote it.",
  "verify": "§4.5's three bans, restated as things you do rather than things you avoid. NEVER A SOURCE OF RECORD: every number in a model, memo or note traces to a filing you personally opened, and the trace gets written down in the format §4.5 already gives you — 'summary draft: AI, verified against 10-K pp. 34–41'. A note without that line is indistinguishable, six months later, from a note you verified. NEVER YOUR MEMORY: the knowledge system is the memory; if a permanent note is a paste, the latticework §4.4.1 exists to build did not get built. NEVER YOUR REPS: automate what you have already done by hand at least once, which is working agreement 2 and also §4.5's own dependency test. Run that test the way you ran the no-mouse hour in §4.2 — pick one hour a quarter, close every assistant, and rebuild something ordinary. If what degrades is your speed, you are inside policy; if what degrades is your capability, the debt is real and Phase 8's timed closed-book certification is where it gets collected.",
  "diy": "The gate is unaided and it is the §4.6 checklist. You predict what a mixed reference becomes when copied; you write an exact-match lookup from memory and say why the default is unsafe; you build a common-size statement with a check cell that ties; you reach an Indian annual report from BSE or NSE and a 10-K from EDGAR in under three minutes each; you name which of the routing table's sources holds a given number; and you write a decision-journal entry with all eight fields, a percentage, and a review date. No assistant is in that room."
}

Modern Data Analysis

By hand first. You built the compounding table with a check column that ties to (1+r)^n, and drove a sensitivity grid from one mixed-reference formula. You x-rayed a common-size statement and walked EDGAR to a 10-K in under three minutes. You pulled a Damodaran table and noted its sample size, and you located a FRED series by its id. Keep every one of those. Your check cell in particular is the ancestor of every assertion you'll ever write in code. And noticing a sample size before you trust an average is what separates a benchmark from a rumour.

Today's workflow. The routing table above is correct, and it survives one layer down, where it stops being a set of bookmarks and becomes a set of addresses. On the US side, EDGAR's companyfacts endpoint returns every XBRL fact a filer has ever tagged. Each fact arrives carrying the accession number of the filing it came from. It also carries the period it covers and the tag it was reported under. In other words, a figure comes with its own citation attached. That's what the aggregators strip off, and it's what the iron rule of primary sources demands you put back. FRED does the same job for macro through its series ids, so you're told to memorise five of them. A series id is a permanent address. A screenshot isn't.

On the Indian side there's no free equivalent covering the annual report, and a truthful workflow admits it. screener.in and the exchange portals are PDF-and-page views, so the reconcile step there is still a human opening a document. Write that down in your notes. Once you've named an asymmetry it becomes part of your workflow. Leave it unnamed and it's a silent quality gap between your Indian and US work.

Tools & sources (IN + US). Use pandas for the tables and requests for the JSON endpoints. matplotlib draws the common-size chart. Everything that's prose goes in a plain markdown folder.

For India, you have screener.in company pages and the Documents tab for annual reports, credit-rating reports and concall transcripts. Then there are the NSE and BSE corporate-filings archives, where BSE's annual-report archive reaches furthest back and is free. Add the quarterly Reg. 31 shareholding-pattern filings, MCA21 at mca.gov.in for unlisted group entities, the RBI's Current Rates panel and the DBIE portal at data.rbi.org.in, MOSPI for CPI and GDP at source, and AMFI for fund flows.

For the US, there's SEC EDGAR full-text search at efts.sec.gov covering 2001 to the present, the EDGAR companyfacts API, and the quarterly Financial Statement Data Sets, the XBRL extracts this program's own app builds its snapshots from. Add FRED with DGS10, FEDFUNDS, CPIAUCSL, UNRATE and T10Y2Y, Damodaran's Current Data page refreshed each January, and stockanalysis.com for the fast ten-year view that you then reconcile.

# A common-size x-ray with the check cell promoted to an assertion — recomputed in-session (R3)
lines = {"Revenue":390, "Cost of sales":210, "R&D":31, "SG&A":26, "Tax & net other":29}
pct   = {k: v/lines["Revenue"] for k, v in lines.items()}
ebit  = lines["Revenue"] - lines["Cost of sales"] - lines["R&D"] - lines["SG&A"]
ni    = ebit - lines["Tax & net other"]
assert (ebit, ni) == (123, 94)                      # the check cell, as code — module's WE1
print(f"{pct['Cost of sales']:.1%} {ebit/390:.1%} {ni/390:.1%}")     # 53.8%  31.5%  24.1%
# the same discipline on the cost stack of one trade (module's WE4/WE5)
buy, sell = 200*1500, 200*1575
inr = sum([.0010*buy, .0000297*buy, .000001*buy, .00015*buy]) + .18*(.0000297*buy + .000001*buy) \
    + sum([.0010*sell, .0000297*sell, .000001*sell, 13.50]) + .18*(.0000297*sell + .000001*sell + 13.50)
usd = (80.02-79.98)*500 + .0000278*(500*79.98) + .000166*500
print(f"{inr:.2f} {inr/buy:.4%} | {usd:.2f} {usd/(500*80.02):.4%}")  # 698.21 0.2327% | 21.19 0.0530%

Verify. Check the code against the worked examples' own arithmetic. In Worked example 1, cost of sales is 53.8% of revenue, gross margin 46.2%, R&D 7.9%, SG&A 6.7%, EBIT 31.5% and net income 24.1%, and the subtraction chain closes on 123 and 94 with nothing left over. In Worked example 2, the exact-match lookup returns 0.1 for Pidilite, and the two-condition flag passes 4 of 6 names.

Worked example 4's Indian delivery round trip costs ₹698.21 all-in. Of that, ₹615.00, or 88.1%, is STT. The total is 0.2327% of the capital committed and 4.66% of the ₹15,000 gain, so fifty such round trips a year hand over 11.64% of capital before the market has done anything. Worked example 5's US round trip costs $21.19, of which the four-cent spread is $20.00, or 94.4%. That's 0.0530% of a $40,010 position.

Two markets, opposite compositions, one arithmetic. And here's what the code adds over the spreadsheet. The check cell was something you looked at. An assertion is something the machine refuses to proceed without.

Quantitative lens

Two questions came up earlier and got only qualitative answers. Both have exact arithmetic answers, and one of them changes what you should expect from the journal you're about to start.

How much journal does it take before a calibration number means anything? The decision journal asks for a percentage so that it can later be scored. Whether the score means anything depends on how badly you're miscalibrated and on how many entries sit in the bin. Take the scenario from earlier, where you write 80% and your true rate is 55%, and test it properly. With ten entries you'd reject "well calibrated at 80%" only on five or fewer hits, which happens 49.6% of the time when the truth is 55%. That's a coin flip. Twenty entries gets you to 74.8%, and 24 entries reaches the conventional 80% power.

That's the good news, and it's real. A gross miscalibration is cheap to detect.

Now the bad news, which is the gradient. Detecting a claimed 80% that is really 70% needs 137 entries in that bin, and one that's really 75% needs 528. Across five confidence bins at the ten-point standard, that's roughly 685 entries. That's years of a weekly habit. A single early result carries almost no information at all. Eight hits out of ten gives a 95% interval of [49.0%, 94.3%], forty-five points wide. You'd also see eight or better 10.0% of the time even if your true rate were only 55%.

Put together, these say something useful. They're a little freeing, too. The first ten entries can catch gross overconfidence, which is the most common and most expensive error and worth catching. They can't catch anything finer. So start the journal now, on cheap decisions, the way it's meant to be used, and expect the instrument to sharpen over years and not weeks. If you wait until the decisions get expensive, your first calibrated reading arrives long after your first costly mistake.

What does turnover actually cost, once it compounds? Earlier you computed two cost stacks and read each one as a single trade. Compound them and the picture looks different. Against a 12% gross return over thirty years, the Indian delivery stack at 0.2327% per round trip consumes 6.05% of terminal wealth at one round trip a year, 22.15% at four, and 53.12% at monthly. The US zero-commission stack at 0.0530% consumes 1.41%, 5.52% and 15.70% on the same schedule. The identity is the bootcamp's fee identity with a different input, and it says the same thing. Quote a recurring cost as a share of the terminal outcome, never as a share of this year's balance.

Composition matters as much as size, though. Here the two markets differ in a way that changes what you can do about it. 88.1% of the Indian bill is STT. It's statutory and unnegotiable, the same for a large order as a small one. 94.4% of the US bill is the bid-ask spread, and the order-book depth walk shows it growing convexly with size and shrinking with patience. In India the lever is frequency. In the US it's frequency and size. Both point the same way, to the conclusion drawn in the AI-and-tools practice, that turnover is a risk and never a virtue.

Both findings look more decisive than they are, so here are their limits. The calibration arithmetic assumes each prediction is independent of the others and that your true accuracy is a fixed number. Neither holds for a learner. Your judgment improves across the sample. That's the whole point of keeping the journal, and it's also why a single pooled test is the wrong final instrument. A better instrument segments by period, and segmenting costs you sample size you didn't have. Those power figures also assume you decide in advance which bin you're testing. Going looking for the bin that fails is a different and much weaker exercise.

Turnover figures like these hold both rate cards fixed, even though the data-source note says SEBI, the exchanges and the GST Council revise them. They assume the trading doesn't affect the gross return, which is generous to the trader, since most people trade more because they're chasing something. And they ignore taxes on realised gains, which for a high-turnover Indian portfolio would be a larger line than every charge computed here. Finally, neither finding says anything about whether any particular decision was right. Calibration measures whether your confidence tracks your accuracy. It says nothing about whether the accuracy is any good.

Do it in code. Promote the check cell to an assertion the routine can't run without. Pull one US figure through the companyfacts endpoint, so you see a number arrive with its accession number attached, and notice what the aggregator you were about to trust had removed. Log every journal entry as a row holding a date and a probability, plus a resolution field, so the calibration query takes one line instead of a project. And compute your own turnover drag once, as a share of terminal wealth, before you decide how often to trade. See G1/QM1.01, G2/QD2.04 and G2/CS2.05.

  • Probability, distributions, sampling and estimation (QM1.01). The statistics behind the calibration work: what a proportion's confidence interval is and what power means. It also shows how a small sample can be accurate and still tell you very little.
  • G2 · QD2.04 Reproducible research, deployment and the quant stack. This takes the knowledge system to its professional conclusion, an analysis whose every figure can be regenerated from its sources months later. That's what separates auditable work from work that is merely persuasive.
  • Version control with Git (CS2.02). The analyst-brain/ folder as a versioned repository. The backup rule is two copies, and version control is the same instinct with history, so you can see what you believed in week 3 without keeping a separate copy of it.
  • APIs, HTTP, JSON and web scraping (CS2.05). How EDGAR's companyfacts and FRED's series endpoints actually work, what a permanent address buys you over a screenshot, and where scraping is and is not appropriate against a source that publishes an interface.
  • The AI tool landscape, a living catalog (AI0.02). The tool-evaluation rubric that keeps the policy usable as the tools change: what is it, what is it good and bad at, where does the data go, how do I verify its output, and what does it cost.

Teach it back & journal

Feynman prompt. A smart 15-year-old cousin says: "You're studying spreadsheets and note-taking? I thought you were learning investing." In one page, explain why an analyst's edge is built from three boring things: auditable calculations, traceable numbers, and notes that compound. Use the 30-year sensitivity grid and the Satyam-derived checklist item as your two exhibits. Keep it free of jargon. If you have to use "base rate," teach it with the mid-cap example.

Journal reflection. Open a fresh entry, using the template, because that's a rep too. Ask yourself: Which component of the system installed this week am I most likely to abandon by week 20, whether the daily notes, the journal, the checklist discipline, or source traceability? What does that prediction imply I should design against right now? State a confidence %, a review date (week 20), and what evidence at review would count as "abandoned."


This module's flashcards and mastery quiz are wired into the app: see the node's Quiz and Reviews.

Advertisement

The gate

The module's flashcards and its quiz are in the app. The quiz is the gate: you need 85% to pass it, and the next module opens when you do.