VIGIL's Quarterly Results dataset is built from the quarterly financial results that listed companies file in structured XBRL format with NSE under SEBI LODR Regulation 33 (within 45 days of quarter-end, 60 days at year-end). Because XBRL is machine-readable - every line item carries a standardized SEBI-taxonomy tag - the same "Revenue from Operations" tag is used by Reliance and TCS alike, making automated extraction and cross-company comparison possible. This page documents how the data is sourced, standardized, and validated. Live counts (quarters, companies per format, data points) and the live lists of every treated anomaly are on the tool's Methodology & Validation tab, read from the database at render time; this page keeps to what does not change with a refresh.
Open the live VIGIL Quarterly Results view (beta) for the interactive YoY, trailing-12-month and cost-structure analysis.
Data source and coverage
Standalone (not consolidated) quarterly results in XBRL, downloaded from NSE's corporate-filings portal - the older Financial Results system and the newer Integrated Filing system (mandatory from Q4 FY2024-25 / Mar 2025). Universe: Nifty Total Market (about 750 companies = Nifty 500 + Nifty Microcap 250). Coverage runs from September 2022 to the latest reported quarter and is extended after each results season; an additional 16 historical quarters (Jun 2018 to Mar 2022) have been downloaded and are pending integration.
Company counts vary by quarter (IPOs, delistings, mergers, late filers). The "matched company set" filters address this by restricting analysis to companies present in every quarter of the selected range.
Three filing formats, three tabs
Companies file in one of three formats, detected from the tags in the file itself, and the format decides which tab a company appears on. Mixing them in one table would divide one group's profit by another group's income.
- Non-financial companies (Ind AS format): revenue (Revenue from Operations, Other Income, Total Income), costs (materials, purchases, inventory change, employee benefit, finance costs, depreciation, other, total), profits (PBT before exceptional items, exceptional items, PBT, tax, net profit including discontinued operations, OCI, total comprehensive income), per-share figures and coverage ratios.
- Financial companies that are not banks (NBFC Ind AS format): NBFCs, housing finance companies, asset managers, brokers and financial holding companies file the same Ind AS profit and loss plus finance-specific lines - interest income, fees and commission, gains and losses on fair value changes inside Revenue from Operations; finance costs and impairment on financial instruments among the expenses.
- Banks (RBI banking format): Interest Earned (on advances, investments, RBI balances, other), Other Income, Interest Expended, employee and other operating expenses, operating profit before provisions, provisions, profit from ordinary activities before tax, tax, net profit, plus asset quality (Gross and Net NPA amounts and percentages) and capital ratios.
A few derived fields are labelled with a "calc_" prefix: calc_Gross NPA % and calc_Net NPA % (individual bank percentages cannot be averaged, so Total Advances is back-calculated per bank as Gross NPA amount / Gross NPA %, then aggregated as sum of NPA amounts / sum of back-calculated advances), Cost of Goods Sold (materials + purchases + inventory change), and PBT Margin. PBT is Profit before Exceptional Items and Tax for Ind AS filers, financial and non-financial alike; the banking format has no pre-exceptional line, so banks use profit from ordinary activities before tax. The same definition is used on the aggregate page and on every company page.
Standardization and matched sets
All monetary values in XBRL are in rupees; VIGIL converts to Rs Crore (divide by 1 crore). The combined "All" view sums the three formats on the tags they share: Total Income and Tax Expense are identical tags across formats; Ind AS "Profit before Exceptional Items and Tax" and Banking "Profit from Ordinary Activities before Tax" are summed as PBT; Core Revenue is Revenue from Operations for Ind AS filers plus Interest Earned for banks only, since a financial company's interest income is already inside its Revenue from Operations.
When comparing aggregates across quarters, a new IPO would inflate YoY growth. Matched company sets fix this by including only companies that filed in every quarter of the selected window, which can be set from four quarters up to the full history; the company count and the share of the latest quarter's turnover they represent are shown next to the control. The filters compose with sector and index filters.
When a company changes its NSE symbol, its history is filed under the old symbol and its new quarters under the new one. VIGIL folds both under the current symbol after checking that the two symbols are the same legal entity; a demerger that leaves two listed companies is never merged.
Limitations
- Standalone only - not consolidated. For conglomerates and holding companies the numbers are lower than platforms that default to consolidated.
- Self-reported - values are as reported in the XBRL filings; VIGIL does not independently audit the underlying figures, and publishes filed values as filed. A defect earns a documented exclusion or note, never a silent edit.
- Insurance companies excluded - insurers follow a different reporting format lacking the standard P&L line items.
- Source filing errors - a small number of company-quarters were filed with incorrect unit declarations (values 50x-200x off); these are documented and excluded.
- Net profit includes discontinued operations - as filed; for rate-regulated utilities net profit also differs from PBT minus tax by the regulatory deferral line, which is not extracted.
- Balance sheet not included - quarterly XBRL carries only the income statement and a few ratios; balance-sheet data is annual-only.
Known anomaly classes and how each is treated
Filed data has recurring defect patterns. A class describes how a filing was treated, not a judgement about the company. The current membership of each class is listed live on the tool's Methodology & Validation tab.
| Class | How it is detected | Treatment |
|---|---|---|
| Unit error (lakhs or crores filed as rupees, or the reverse) | Topline more than 20x away from the company's own median; cross-checked against the BRSR annual turnover where available | Company-quarter excluded from every aggregate and company view; filed value kept in the database |
| Half-year document served as the quarter | The file's reporting period spans six months and the next quarter's year-to-date value equals the stored value plus the next quarter (a six-month period label alone is not enough - many filers label six months and file a normal quarter) | Quarter derived as filed half-year minus filed first quarter, both filed numbers, and marked as derived |
| Mis-scaled NPA filing (percentage filed 100x too small, or amount 10x too large) | Implied advances (Gross NPA / Gross NPA %) above 40x the bank's annualised interest income; real banks sit at 8x to 15x | Bank-quarter left out of the aggregate NPA percentage only; its own filed values unchanged |
| Financial company filed in the NBFC template | Ind AS revenue tag present together with interest income or finance lines; bank-only tags absent | Shown on the Financial (non-bank) tab with its full profit and loss |
| Ticker rename | The same company files under two symbols in different quarters; company name and filing continuity checked by hand | History folded under the current symbol |
| Missing or corrupt source file | A gap inside an otherwise continuous filing series, or a file NSE serves truncated | Re-fetched on each refresh; a persistently corrupt file is excluded and noted |
Validation
Standing accuracy battery (September 2026 onwards). About 70 checks in twelve layers run against a fresh copy of the production database after every quarterly refresh: structure (duplicates, formats, core tags), period identity (filed year-to-date equals the sum of the quarters), P&L identities (Total Income = Revenue + Other Income, PBT = Income minus Expenses, expense components never exceed the total, bank interest components sum to Interest Earned), magnitude (each company against its own median, share-capital stability, EPS back-solved from net profit and share count, index-member floor), bank NPA scale, cross-sectional margin and cost bands with a period-multiple detector, exclusion integrity, universe coverage, an independent recomputation of every published aggregate to the rupee, a join of every stored row back to its source XML file, a cross-source check of four-quarter revenue against BRSR annual turnover, and a rename scan. Anything flagged becomes a candidate reviewed by hand before it changes what is published.
Independent validation of 19 March 2026 (a dated event). Four phases: 72 company-quarters (4,176 values) re-parsed from the original XBRL and compared to the database, 100% match; 19 database-integrity checks, 15 passed outright and 4 issues remediated; filing-revision verification confirming the latest version for every company-quarter held at that date (42 revised filings in the older system, 199 in the Integrated Filing system re-processed, which also recovered 36 previously missing companies); and 25 published calculations re-computed from raw data, 100% match. One duplicate record set (CG Power, Sep 2024, two versions of one filing) was found and removed; the duplicate check now runs in the standing battery.
Review log
Every review that changed a published number, newest first. The entries describe what was found and what changed at that date; the live membership of each treated class is on the tool's Methodology & Validation tab.
11 to 12 September 2026: accuracy review and remediation. The standing battery was run for the first time against a fresh copy of the production database (17 quarters, Jun 2022 to Jun 2026, 551,473 rows), together with a re-parse of the archived source filings. Seven findings changed what is published; every change is either a filed number or exact arithmetic on filed numbers.
- Financial companies that are not banks were mis-read. 60 lenders, housing finance companies, asset managers and holding companies file a third template, the full Ind AS profit and loss plus an interest line. The parser had taken the interest line as "bank" and dropped the profit and loss, so these companies had no PBT or PAT anywhere and 29 of them moved between the Banking and Non-Financial tabs from quarter to quarter. Fix: three filing formats, 794 company-quarters re-parsed from the archived filings, and a fourth tab. The non-bank label follows the company's NSE sector, so a company never changes tab.
- Six-month figures stored as a quarter. 11 company-quarters held the half-year value; each was derived as filed half-year minus filed first quarter, gated on the year-to-date identity. Two candidates (Data Patterns Sep 2025, Symphony Mar 2025) proved genuine quarters by their own year-to-date and were left as filed.
- The banking NPA aggregate was one bank's ratio. Percentages filed 100x too small made the weighted average follow a single bank for ten quarters (Sep 2022 to Dec 2024). 28 bank-quarters across 6 banks are now left out of the aggregate; their filed values are unchanged.
- Renamed companies were split across two symbols. 41 renamed pairs and two single-filing typos folded under the current NSE symbol, which returns them to the matched sets and to full company pages. One double count removed: a Sep 2025 filing under a pre-rename symbol that was the half-year document, exactly the same company's Jun plus Sep under its current symbol.
- Exclusions revised. One lifted (a filer whose "too few tags" were the parser's doing under finding 1); one added after review (a Jun 2023 magnitude error).
- PBT on the company page brought onto the same definition as the aggregate page: before exceptional items for Ind AS filers, after them for banks. The two had differed by up to 1.7 points.
- The Methodology & Validation tab now reads every count and list from the database at render time, and the battery is re-run after every quarterly refresh.
Result: the structural checks clear after the change - companies changing format across quarters 29 to 0, quarters at about twice their neighbours 41 to 0, companies split across symbols 41 to 0. What remains flagged is cross-sectional (margin bands, quarter-on-quarter jumps) and is reviewed by hand before anything changes.
19 March 2026: independent validation. The four-phase validation described above; it produced the first exclusion list (unit and magnitude errors, and the insurance filing format), the re-download of 199 revised filings, and the removal of the CG Power duplicate. What each phase covered:
- Source files: 72 company-quarters re-parsed from the original XBRL, 4,176 values compared, zero mismatches.
- Database integrity: 19 checks, 15 passed outright, 4 issues fixed.
- Frontend calculations: 25 published numbers recomputed from raw rows, all matched.
Open the live VIGIL Quarterly Results view on TIGZIG (beta), or see India XBRL filings and all VIGIL data sources.