Data AnalyticsPortfolio projects with Indian public data

Why Delhi's tele-density tops 300%: a TRAI denominator project

PK
Pankit Kumar
Sr. Data Scientist at Parexel (a Goldman Sachs–backed company) · 27 September 2026 · 5 min read
In this article (7 sections)

Related programme: the Data Analytics with Generative AI course (3–4 months; ₹90,000 (inclusive of GST) · EMI from ₹4,000/month).

The short answer

TRAI's monthly subscription release puts Delhi's tele-density at 368.33% at the end of July 2026, the highest of any service area. Nobody in Delhi owns three and a half phones on average. The number is high because the numerator and denominator describe different things. This project reproduces the headline figure, then takes it apart piece by piece: the service-area boundary, machine-to-machine SIMs and multi-SIM users. The result is a short, well-sourced explainer of a ratio people quote without reading its footnotes, and that kind of explainer is a useful thing to show an analytics employer.

The source and what it says about itself

Open TRAI's telecom subscriptions reports page and download the latest monthly press release. We used PR No. 116/2026 (PDF, 25 pages, released 28 August 2026, data for the end of July 2026). The tele-density chart is a bar chart by Licensed Service Area (LSA), so type the values into a CSV by hand and check them twice. The PDF gives no table to parse.

The notes under that chart are the real material for this project. Quoted in substance from PR 116/2026:

  • Population projections are available state-wise only, taken from the Technical Group report on population projections for 2011–2036, published in July 2020.
  • Telephone subscriber data for Delhi includes wireless subscribers served by the local exchanges of Ghaziabad and Noida (Uttar Pradesh) and Gurgaon and Faridabad (Haryana).
  • M2M cellular mobile connections are included in the tele-density calculation.
  • Several service areas are merged for the ratio, for example Uttar Pradesh includes UP (East), UP (West) and Uttarakhand.

The same release gives the national split you need for the M2M adjustment. At the end of July 2026 there were 1,150.22 million consumer SIMs, 137.70 million M2M SIMs, 18.35 million FWA connections and 48.01 million wireline connections, 1,354.28 million in total. All-India tele-density was 94.68%, and Bihar had the minimum at 64.19%.

Why an employer would care

Telecom strategy teams, market-research firms and anyone sizing a market in NCR meet this ratio constantly. The skill on show is reading a denominator. An analyst who notices that the numerator covers Delhi plus four satellite cities, while the denominator covers Delhi alone, stops a bad market-sizing slide before it reaches a client. That is exactly the habit a data analyst is hired for.

Cleaning issues to expect

  • Manual transcription. Values come from a chart label, so you need a second-pass check against the text. The release states the Delhi and Bihar values and the all-India figure in prose, so assert those three.
  • Mismatched geography. LSAs are not states. Keep a mapping table from each LSA to the state or states whose population sits in its denominator.
  • Mixed connection types. The national breakdown separates consumer SIM, M2M SIM and FWA, but the tele-density chart by LSA does not. Any M2M adjustment at LSA level is an assumption, and you must label it as one.
  • Population projections. The denominator is a 2020 projection, not a census count. Record which year's projection TRAI uses if the release says so. If it does not, write "not stated".

Code: decomposing an inflated ratio

Everything below is synthetic. The subscriber and population numbers are round figures we invented to show the method. They are not TRAI or census values, and the outputs are not findings about Delhi.

python
import pandas as pd

# Synthetic inputs (millions). Not TRAI or census figures.
lsa_subs = 60.0            # all subscribers reported in the service area
m2m_share = 0.10           # assumed share of M2M SIMs in this area
served_outside = 0.30      # assumed share of subscribers living in satellite cities
state_pop = 22.0           # denominator TRAI-style: state population only
satellite_pop = 9.0        # population of satellite areas the LSA also serves
sims_per_person = 1.4      # assumed multi-SIM factor among human users

steps = []
steps.append(("As published: all subs / state population", lsa_subs / state_pop))

# 1. Put the satellite population into the denominator
steps.append(("Add satellite population to denominator", lsa_subs / (state_pop + satellite_pop)))

# 2. Remove M2M SIMs from the numerator (machines are not people)
human_subs = lsa_subs * (1 - m2m_share)
steps.append(("Also remove M2M SIMs", human_subs / (state_pop + satellite_pop)))

# 3. Convert SIMs to people using a multi-SIM factor
steps.append(("Also convert SIMs to people", human_subs / sims_per_person / (state_pop + satellite_pop)))

out = pd.DataFrame(steps, columns=["step", "ratio"])
out["per_100_people"] = (out["ratio"] * 100).round(1)
out["change_from_previous"] = out["per_100_people"].diff().round(1)
print(out[["step", "per_100_people", "change_from_previous"]].to_string(index=False))

# Alternative: keep the published denominator and remove satellite subscribers instead
alt = lsa_subs * (1 - served_outside) / state_pop * 100
print(f"\nAlternative fix (remove satellite subscribers): {alt:.1f} per 100 people")

The table works as a waterfall. Each row changes one assumption, so a reader can see which correction does the most work. The two ways of fixing the boundary give different answers, because they depend on different unknowns: the satellite population in one case and the share of subscribers living outside Delhi in the other. Show both and say that TRAI's release does not publish either split.

Analysis plan

  1. 1Transcribe the LSA tele-density chart for the latest month, and assert that Delhi is 368.33, Bihar is 64.19 and all-India is 94.68.
  2. 2Build the LSA-to-state mapping from the release notes.
  3. 3Rebuild all-India tele-density from the published subscriber and population totals if the release gives both. If it gives only the ratio, say so.
  4. 4For Delhi, run the waterfall with a documented range for each assumption: low, central and high.
  5. 5Repeat the transcription for three earlier releases and chart Delhi against all-India over time. A rising Delhi ratio may reflect M2M growth rather than new people.

What to hand in

DeliverableWhat it contains
Waterfall chartPublished Delhi ratio, then each correction, with ranges
LSA tableLSA, published tele-density, mapped states, notes on merged areas
Time-series lineDelhi and all-India tele-density across four or more releases
READMERelease numbers and dates, page references for each note, every assumption and its source, "not stated" items

Close the README with one plain paragraph: the published figure is correct for what TRAI defines, and it is not a count of phones per resident.

Interview questions

  • Why can a ratio be correct and still misleading?
  • Which of your three corrections relies on the weakest assumption, and how would you firm it up?
  • Where would you look for a population figure for the Noida and Ghaziabad exchange areas?
  • M2M connections grew fast nationally. How would that show up in an LSA tele-density series?
  • A client wants the number of unique mobile users in NCR. What would you tell them this data can and cannot give?

For a second project on the same release, see operator share by circle. Denominator checks run through our Data Analyst programme, which takes 3–4 months and runs live online, with optional in-person labs at our Noida centre.

Frequently asked questions

Why is Delhi's tele-density above 100%?

TRAI's notes explain two reasons. Delhi service area subscribers include wireless users served by the Ghaziabad, Noida, Gurgaon and Faridabad exchanges, but population figures exist only by state. M2M cellular connections also count in the numerator. People with more than one SIM push it higher still.

Which TRAI file does this project use?

The monthly Telecom Subscription Data press release, a PDF on TRAI's telecom subscriptions reports page. We used PR No. 116/2026, released on 28 August 2026 with data for the end of July 2026.

PK
Pankit Kumar
Lead Instructor, NeuraPath Academy

Pankit Kumar has 10 years in Data Science & AI, building and shipping production systems in regulated pharma and clinical environments. He is a freelance trainer at Boston Institute of Analytics, AnalytixLabs and Scaler, and has taught this material to thousands of working professionals.

This article is part of our Data Analytics with Generative AI programme — 3–4 months. The full analyst stack — Excel, SQL, Power BI and Python pipelines — then a generative-AI layer you can prove is right.

Explore Data Analytics with Generative AI
Counselling is free · no obligation

Not sure which programme fits?

Tell us your background and we will map it to the right entry point — including saying so when a cheaper programme is the better fit. A counsellor replies within one working day.