Data AnalyticsPortfolio projects with Indian public data

Which states' schools lack computer labs? A UDISE+ ICT gap project

PK
Pankit Kumar
Sr. Data Scientist at Parexel (a Goldman Sachs–backed company) · 27 September 2026 · 4 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

Digital learning plans assume schools have working computers, but coverage varies enormously by state. This project uses UDISE+ indicators to measure how many schools in each state have an ICT lab. It computes the remaining gap and asks how quickly that gap is closing. The result is a simple, defensible "years to full coverage at the current pace" estimate, presented with the caveats it needs. It is a good first project for someone who wants to work in education, CSR or public-sector analytics.

The data

Open MoSPI's eSankhyiki UDISE page. Its table has four columns: Indicator, Year, State/UT, Value. The relevant indicators are "School having ICT Labs" and the computer and digital-initiative indicators. Select several years, download, and keep the file names with the download date.

Two things to check in the Metadata tab before writing any code:

  1. 1Is "School having ICT Labs" a count of schools or a percentage? The analysis differs.
  2. 2Does it cover all management types (government, aided, private) or only some? If the latter, your denominator must match.

If the value is a count, you also need total schools for the same year and coverage to compute a share.

Why a funder or employer would care

CSR programmes, state education departments and hardware or edtech companies all make "where do we put labs next" decisions. A table that shows the remaining gap, the pace of change and a transparent projection is precisely what their analysts build. Your version also shows the judgement to call a projection a projection.

Cleaning issues

  • Counts versus shares. Convert everything to a share of schools before comparing states. A large state will always have more labs.
  • Year format. Years are academic years like "2024-25". Convert them to a sortable start year.
  • Series breaks. If the definition of an ICT lab changed between years, the metadata or reports should say so. Treat a sudden jump of many points in a single year as a question to investigate, not a success story.
  • Missing years for some states. Do not interpolate them silently. Compute pace only over the years each state actually reports.

Code: gap, pace and a cautious projection

The shares below are synthetic. They are invented for illustration and do not describe UDISE+ results.

python
import numpy as np
import pandas as pd

d = pd.DataFrame({
    "State/UT": ["Delhi"] * 4 + ["Haryana"] * 4 + ["Uttar Pradesh"] * 4 + ["Bihar"] * 3,
    "Year": ["2021-22", "2022-23", "2023-24", "2024-25"] * 3 + ["2022-23", "2023-24", "2024-25"],
    "ict_share_pct": [70, 74, 79, 83, 30, 36, 41, 47, 12, 16, 22, 27, 6, 9, 11],
})
d["start_year"] = d["Year"].str[:4].astype(int)
d["gap_pct"] = 100 - d["ict_share_pct"]

def pace(group):
    # Fit log(gap) on year: the share of the remaining gap closed each year
    g = group.sort_values("start_year")
    slope = np.polyfit(g["start_year"], np.log(g["gap_pct"]), 1)[0]
    closing_rate = 1 - np.exp(slope)
    latest_gap = g["gap_pct"].iloc[-1]
    years_to_90 = (np.log(10 / latest_gap) / np.log(1 - closing_rate)
                   if closing_rate > 0 and latest_gap > 10 else np.nan)
    return pd.Series({"years_used": len(g), "latest_share": g["ict_share_pct"].iloc[-1],
                      "gap_closed_per_year_pct": round(100 * closing_rate, 1),
                      "years_to_90pct_coverage": round(years_to_90, 1)})

out = d.groupby("State/UT")[["start_year", "gap_pct", "ict_share_pct"]].apply(pace)
print(out.sort_values("latest_share", ascending=False).to_string())

Modelling the gap on a log scale fits how coverage usually grows: fast at first, slower as the last and hardest schools remain. A straight-line fit on the share would predict overshooting 100%. The projection is to 90%, not 100%, because the final schools are often the hardest cases. Label it as an extrapolation of recent pace, never as a forecast of what will happen.

Analysis plan

  1. 1Collect every year the portal offers for the ICT indicator, and total schools if you need a denominator.
  2. 2Convert to shares and compute the gap for every state-year.
  3. 3Fit the closing rate for states with at least three years of data. List the others as "insufficient history".
  4. 4Rank states by remaining gap, and separately by closing rate. The two rankings tell different stories.
  5. 5Add a sensitivity line: what does the projection look like using only the last two years?

Deliverables

  • Bar chart: remaining gap by state, sorted, with the national figure marked.
  • Scatter: latest gap against annual closing rate. States in the high-gap, slow-closing corner need attention first.
  • Table: state, years used, latest share, closing rate, years to 90% at current pace, sensitivity value.
  • README outline: indicator names and definitions, count or share, years, denominator, fitting method, why log-gap, the "not a forecast" warning.

What interviewers ask

  • Why model the gap on a log scale instead of the share on a straight line?
  • What would you do with a state whose share jumped 20 points in one year?
  • How do you explain "years to 90% coverage at current pace" to a non-technical minister's office?
  • A lab exists but has no working computers. How does this data miss that, and what would you want instead?

This pairs with the pupil-teacher ratio project on the same portal. Our Data Analyst programme runs live online, with optional in-person labs at our Noida centre. Ask a counsellor on the contact page about current batches and fees.

Frequently asked questions

Does UDISE+ report computer labs in schools?

Yes. The UDISE+ indicators on MoSPI's eSankhyiki portal include "School having ICT Labs" and further indicators on computers and digital initiatives, reported by state and year. Check the metadata for whether a figure is a count or a percentage of schools.

Why not just rank states by the share of schools with ICT labs?

A ranking hides how far each state is from full coverage and how fast it is moving. Showing the remaining gap and the annual rate at which that gap is closing gives a funder or department a more useful picture.

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.