Methodology · Lens volume & coverage · updated every 5 minutes

How much we publish, by lens.

Coverage isn't equal across all 42 lenses — and pretending it is would be dishonest. This page shows the truth: where we have depth, where we're thin, and which lenses we're actively scaling.

42
Active lenses
GLOBAL · 4 national · IN states + UTs
0
Stories · 7d
rolling window
0
Lenses thin
< daily threshold × 7
0
Lenses critical
< 40% of weekly floor · banner shown

The 42 lenses, by group

§5.1 launch list · 4 nationals + IN states + UTs

Global

1 lens · 0 stories/wk

The default lens. Topics that genuinely transcend borders — tech, science, climate, AI/agents, geopolitics. About a third of all output. Articles published to any other lens are also published to GLOBAL by default.

National

5 lenses · 0 stories/wk

Anchor markets at v2.0: India national, United States, United Kingdom, Bangladesh, Canada. Country expansion follows reader demand and source-coverage depth.

India · States

36 lenses · 0 stories/wk

28 Indian states + 8 Union Territories under IN-*. Where we have depth we go deep; where we are thin we say so. The Lighter Coverage Banner names the threshold and walks the fallback chain (e.g. IN-MH → IN → GLOBAL).

Roadmap

Watch this list

Country-level: PK, AE, SG, DE, FR, JP, AU, BR — gated on source-corpus depth. India: state-level depth ramps follow stringer recruitment. Cross-region buckets (EU, SEA) explored v2.5+.

Coverage by lens · ranked

Rolling 7 days · live from lens_daily_volume

Bars are scaled to the busiest lens this week (50 stories). Anything below 7× the daily floor is thin; below 40% of that is critical — we do not pretend it’s a full lens.

LensStories · 7dTodayvs benchmarkStatus
GlobalGLOBAL00
Not yet live
United StatesUS00
Not yet live
United KingdomUK00
Not yet live
IndiaIN00
Not yet live
BangladeshBD00
Not yet live
CanadaCA00
Not yet live
Andhra PradeshIN-AP00
Not yet live
Arunachal PradeshIN-AR00
Not yet live
AssamIN-AS00
Not yet live
BiharIN-BR00
Not yet live
ChhattisgarhIN-CT00
Not yet live
GoaIN-GA00
Not yet live
GujaratIN-GJ00
Not yet live
HaryanaIN-HR00
Not yet live
Himachal PradeshIN-HP00
Not yet live
JharkhandIN-JH00
Not yet live
KarnatakaIN-KA00
Not yet live
KeralaIN-KL00
Not yet live
Madhya PradeshIN-MP00
Not yet live
MaharashtraIN-MH00
Not yet live
ManipurIN-MN00
Not yet live
MeghalayaIN-ML00
Not yet live
MizoramIN-MZ00
Not yet live
NagalandIN-NL00
Not yet live
OdishaIN-OR00
Not yet live
PunjabIN-PB00
Not yet live
RajasthanIN-RJ00
Not yet live
SikkimIN-SK00
Not yet live
Tamil NaduIN-TN00
Not yet live
TelanganaIN-TG00
Not yet live
TripuraIN-TR00
Not yet live
Uttar PradeshIN-UP00
Not yet live
UttarakhandIN-UT00
Not yet live
West BengalIN-WB00
Not yet live
Andaman and Nicobar IslandsIN-AN00
Not yet live
ChandigarhIN-CH00
Not yet live
Dadra and Nagar Haveli and Daman and DiuIN-DH00
Not yet live
DelhiIN-DL00
Not yet live
Jammu and KashmirIN-JK00
Not yet live
LadakhIN-LA00
Not yet live
LakshadweepIN-LD00
Not yet live
PuducherryIN-PY00
Not yet live

Today vs each lens’s own threshold

Bar full at 100% of threshold · marker at 100%

Different from the table above (bars there are scaled to the busiest lens). Here every bar is normalized against the floor for that specific lens — so a Lakshadweep meter at 100% means 1 story today against a daily floor of 1, not 1 story against the global 487/wk benchmark. This is the meter the homepage Lighter Coverage Banner uses to decide warning vs critical.

GLOBALGlobal
0/50-100%
USUnited States
0/20-100%
UKUnited Kingdom
0/20-100%
INIndia
0/20-100%
BDBangladesh
0/10-100%
CACanada
0/10-100%
IN-APAndhra Pradesh
0/5-100%
IN-ARArunachal Pradesh
0/3-100%
IN-ASAssam
0/3-100%
IN-BRBihar
0/3-100%
IN-CTChhattisgarh
0/3-100%
IN-GAGoa
0/3-100%
IN-GJGujarat
0/5-100%
IN-HRHaryana
0/5-100%
IN-HPHimachal Pradesh
0/3-100%
IN-JHJharkhand
0/3-100%
IN-KAKarnataka
0/5-100%
IN-KLKerala
0/5-100%
IN-MPMadhya Pradesh
0/3-100%
IN-MHMaharashtra
0/5-100%
IN-MNManipur
0/3-100%
IN-MLMeghalaya
0/3-100%
IN-MZMizoram
0/3-100%
IN-NLNagaland
0/3-100%
IN-OROdisha
0/3-100%
IN-PBPunjab
0/5-100%
IN-RJRajasthan
0/5-100%
IN-SKSikkim
0/3-100%
IN-TNTamil Nadu
0/5-100%
IN-TGTelangana
0/5-100%
IN-TRTripura
0/3-100%
IN-UPUttar Pradesh
0/5-100%
IN-UTUttarakhand
0/3-100%
IN-WBWest Bengal
0/5-100%
IN-ANAndaman and Nicobar Islands
0/3-100%
IN-CHChandigarh
0/3-100%
IN-DHDadra and Nagar Haveli and Daman and Diu
0/3-100%
IN-DLDelhi
0/5-100%
IN-JKJammu and Kashmir
0/3-100%
IN-LALadakh
0/3-100%
IN-LDLakshadweep
0/3-100%
IN-PYPuducherry
0/3-100%

What we’re not covering well — and why

Honesty before scale

No lenses are currently flagged critical. The Lighter Coverage Banner appears on the homepage when this changes.

How this gets calculated

What counts as a story?

A row in v2.articles with status = 'published' and published_at > now() - 7d, bucketed by every lens row in v2.article_lenses for that article. Counted via the nightly lens_daily_volume rollup. Newsletters, briefings, and revisions don’t count.

Why 7× and 40% as the thresholds?

Editorial call: 7× the daily floor (one per day) is the floor for what a reader could call “a section.” Below 40% of that, we no longer pretend it’s a section. Numbers will move with volume; we’ll note the change in this page’s revision log when they do.

Why not just hide the thin lenses?

Hiding gaps is what every other publisher does. We show them on purpose — same logic that puts the bias meter on every article. If we’re light somewhere, you should know before you click.

Where can I see this data raw?

Public JSON at /api/lens-coverage ships with v2.1 — refreshed hourly, no auth, build whatever dashboard you want. Until then, query v2.lens_daily_volume directly via the public Supabase URL ( /methodology/lens lists the table contracts).

Day boundary 00:05 IST · counts roll up nightly via Inngest cron and refresh on this page every 5 minutes.