Methodology

Methodology.

How we measure the gap between poverty and corporate social responsibility (CSR) funding in 651 Indian districts, using three government datasets combined into one score.

Districts scored
651
Score range
0–100

Across all sectors at the default weights. With one sector selected, scores can reach about 100.

01 / Objective

What the score is for.

The Philanthropic Opportunity Score (POS) measures where in India the gap between poverty and CSR funding is widest. It is meant as a first screen for companies and foundations choosing where to work, and it points them to the districts that most deserve closer study. The decision about where to spend stays with them.

02 / Pipeline

Six stages from source to score.

Every record passes through six steps between the source files and the published ranking.

Step1

Extract

Read the PDF, Excel and CSV sources

Step2

Clean

Set aside records with no district

Step3

Match

Line up district names across the sources

Step4

Tier

Group districts into three population tiers

Step5

Normalise

Rescale each measure to 0-1

Step6

Score

Add the weighted measures

03 / Sources

Three public datasets.

Poverty figures come from NITI Aayog, CSR spending from the Ministry of Corporate Affairs and population from the Census of India.

Poverty01

NITI Aayog National Multidimensional Poverty Index 2023, which is based on the fifth National Family Health Survey (NFHS-5, 2019-21). The index follows the Alkire-Foster method of Oxford's Poverty and Human Development Initiative (OPHI), which counts deprivations in health, education and standard of living. We took district headcount ratios for both survey rounds, 2015-16 and 2019-21, which cover 653 districts in 36 states and union territories.

CSR02

Ministry of Corporate Affairs National CSR Portal, through Dataful.in (Dataset 1612). The data covers ten financial years of CSR spending, FY2014-15 to FY2023-24, by district and sector, and the funding gap is calculated from the latest three (FY2021-24). About 60.7% of gross CSR spending over the ten years (₹1,29,660 crore of ₹2,13,594 crore) is recorded as "Pan India" or carries no district code, so it cannot be assigned to a district. Those records are left out, which is why the district CSR totals in this index are conservative.

Census03

Census of India 2011 population figures for 640 districts. It is still the most recent complete district census, because the 2021 Census was postponed. Population is the denominator of every per-person figure and the basis of the population tiers. Districts created after 2011 by administrative reorganisation were matched to the populations of their parent districts where possible.

04 / Integration

Matching the records.

How the records were matched

The three sources come from different agencies, which spell district names differently and list districts as they stood in different years. We started from the MPI list, because a district can only be scored if it has a poverty figure, and attached CSR spending and Census population to each district on it.

Census · MPI · CSR

Census 2011

Registrar General of India

"Hooghly"

640 districts

MPI 2023

NITI Aayog (NFHS-5)

"Hugli (Hooghly)"

653 districts

CSR / MCA

Ministry of Corporate Affairs

"Hugli"

663 state and district pairs

One matched district record

West Bengal / Hugli

Step 01

Matching names within each state

Method

rapidfuzz.fuzz.ratio

Threshold

>= 75% similarity

Set low so that as many districts as possible find a match.

Caution band

75 to 90%

Matches in this range are listed in the verification report for a reviewer to check.

Scope

Within one state

Why matching stays within a state

Himachal Pradesh

Hamirpur

Population about 454,000

100%

Identical names

Different states

so they were kept apart

Uttar Pradesh

Hamirpur

Population about 1.1 million, a different district

Step 02

Renamed districts

Gurgaon to GurugramMysore to MysuruAllahabad to PrayagrajBelgaum to BelagaviFaizabad to AyodhyaFour Sikkim districts, 2021and 20 more

A district that was only renamed kept its 2011 boundary, so it keeps its Census 2011 population under the new name.

Step 03

Districts created after 2011

Over fifty districts in the MPI list did not exist in Census 2011. They were carved out of older districts after the census was taken, so each was given the 2011 population of the area it now covers, and the district it came from kept the remainder.

Example: Palghar, carved out of Thane in Maharashtra in 2014

Thane in Census 201111,060,148
2,990,116
8,070,032

Palghar

From the gazette or Census handbook

Thane (remainder)

Thane's 2011 total minus Palghar

2,990,116 + 8,070,032 = 11,060,148the 2011 total

Thane's figure is what remains once Palghar is taken out, so the two districts together count Thane's 2011 population once.

Where the figures come from

scripts/csr/data/external/population_recast_2011.csv

This table in the project's code gives each new district its 2011 population and links each figure to its source, which is a District Census Handbook, the state's gazette notification, or a Wikipedia article that cites one of those.

Where it applied (50+ districts)

  • Telangana, 2014: 21 new districts and the remainders of 9 older ones
  • Ladakh, 2019
  • Paschim and Purba Bardhaman, split in 2017
  • East and West Jaintia Hills, split in 2012
  • Palghar, Kondagaon, Gariyaband and others

When a figure is missing

If a district created after 2011 has no row in the table, the build stops and names it, so no district is ever scored with the whole population of the district it came from.

Step 04

Three checks on the totals, each of which stops the build if it fails

Per district

New districts plus the remainder within 0.5% of the older district's Census 2011 population

Catches a wrong figure for one district

Per state

Matched population between 5% below and 0.5% above the state's Census 2011 total

Catches a district counted twice within a state

National

Matched population no more than 0.5% above India's Census 2011 total

Catches double counting across states

Districts scored

651 / 653districts on the MPI list

651 scored2 left out

The districts left out have no CSR record at all, or share a name with a district in another state in a way the matching could not resolve.

05 / Dimensions

Three measures.

The score combines need (N), the funding gap (G) and how little poverty has fallen (U). Each is measured on its own, and their weighted sum is the score.

N40%

Poverty Severity

The MPI headcount ratio from NFHS-5, which is the share of a district's people who are poor on the index's health, education and living-standard indicators. A higher share means greater unmet need.

G40%

Funding Gap

How far a district's CSR spending per person falls below the median for its population tier. A district above its tier median scores zero on this measure, since it already receives at least as much as comparable districts.

U20%

Persistent Poverty

The retention ratio, which is the share of the 2015-16 poverty rate still present in 2019-21. A value near one means poverty did not fall, and a value above one means it rose. 55 of 651 districts have no 2015-16 figure, mostly because they were created after 2011 and did not exist at the time of NFHS-4, and they are given the median retention ratio. That pulls their U score towards the middle, a cautious choice in an index meant to pick out unusual districts.

06 / Stratification

Comparing districts of similar size.

CSR spending is concentrated in a few districts. The mean is roughly ₹607 per person and the median ₹100, and the gap between the two comes from a long tail of districts where companies have their headquarters, such as Mumbai, Bengaluru and Pune.

Measured against one national median, nearly every rural district would look underfunded. Districts are therefore split into three population tiers at the 33rd and 67th percentiles, and each is compared with the median CSR per person of its own tier.

Tier 1Up to 10.9 lakh
Tier 210.9 lakh to 22.7 lakh
Tier 3Above 22.7 lakh

Figure 02

Median CSR per person in each tier, ₹

Loading data...

Each tier has its own benchmark

Tier 3 (Large) has a lower median than Tier 2 (Medium). Large districts include very rural places with little corporate presence as well as commercial cities, and the tiers are drawn by population alone, so their medians need not rise in order.

07 / Aggregation

Rescaling and weighting.

Step 01i

Each measure is rescaled from 0 to 1.

Each measure is rescaled to run from 0 to 1 across all 651 districts, by the min-max method that the OECD Handbook on Constructing Composite Indicators recommends. Measures recorded in different units can then be added in proportion.

Step 02ii

The measures are added with weights.

POS = (0.40 × N̂ + 0.40 × Ĝ + 0.20 × Û) × 100

Here N̂ is poverty severity, Ĝ the funding gap and Û the persistence of poverty, each after rescaling. The result is a score from 0 to 100, and you can change all three weights in the interactive simulator.

08 / Weighting

Two equal weights and a smaller third.

Need and the funding gap carry equal weight, 40% each, because both are necessary conditions for a white space: a district counts as a genuine opportunity only when it is both poor and underfunded. A poor district that already receives enough CSR falls outside that definition, and a well-funded district with little poverty is a low priority.

Persistence carries a lower weight, 20%, because the retention ratio rests on only two surveys, NFHS-4 and NFHS-5, taken five years apart. At district level its sampling variance is higher than that of the headcount ratio, which makes it the least precise of the three measures. The weighting follows the approach of the UNDP Human Development Index, where unequal weights reflect how reliably each component is measured.

Balanced

N
40%
G
40%
U
20%

Need and the funding gap weighted equally

Highest Need

N
60%
G
25%
U
15%

More weight on poverty severity

Most Underfunded

N
20%
G
65%
U
15%

More weight on the funding gap

Stuck Districts

N
25%
G
30%
U
45%

More weight on persistent poverty

09 / Distribution

How the scores are spread.

Figure 03 · Distribution of scores

N = 651
Loading distribution data...

Across all sectors at the default weights, scores run from 0 to 100. With one sector selected, Ĝ reaches 1.0 wherever that sector received no funding, and scores can reach about 100.

10 / Classification

Defining a white space.

A district is classed as a white space when it is in the bottom quarter of districts for CSR per person (below ₹13 per person) and in the top quarter for the MPI headcount ratio (above 21.1%). These are the districts where need is greatest and funding smallest. The current data identifies 44 of them.

11 / Precedent

The methods this follows.

The scoring method follows the OECD Handbook on Constructing Composite Indicators (Nardo et al., 2008), the standard international reference on building composite indexes. Min-max normalisation and weighted linear aggregation follow the same design principles as the UNDP Human Development Index and the Global Multidimensional Poverty Index itself.

12 / Caveats

What the score cannot see.

We know of seven limits on what the score can tell you.

01

The score is a screening tool for deciding where to look, and it makes no claim about cause and effect. A high score shows where the gap between need and funding is widest; whether spending there will have an impact is a separate question.

02

District CSR totals are conservative. About 60.7% of gross CSR spending is recorded as Pan India or has no district code, and cannot be assigned to a district. The excluded spending is unlikely to be spread evenly: Pan-India programmes come disproportionately from districts where companies have their headquarters, so the funding gap is probably overstated for well-connected urban districts and understated for rural districts that may benefit from these programmes without being credited with them.

03

Population figures come from Census 2011, more than eight years before the MPI survey. Districts carved out of others after 2011 take their parent's full population (flagged `population_imputed`), which lowers their CSR per person and raises their G score. The population of fast-growing districts may also be understated by 10–15% against today's figure.

04

The MPI figures describe conditions in 2019-21 (NFHS-5), and district poverty may have changed since the survey was taken.

05

The persistence measure (U) uses the median retention ratio (0.555; interquartile range 0.442–0.674; standard deviation 0.274) for the 55 of 651 districts with no 2015-16 figure. Most of them were carved out of older districts after Census 2011 and so are missing from NFHS-4, and their U values are therefore estimates.

06

The score leaves out government spending, private giving outside the Companies Act and international aid that reach these districts.

07

The three measures are treated as independent. In practice poverty severity, the funding gap and persistence may be correlated, which would strengthen the signal for districts that score high on more than one.