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.
Across all sectors at the default weights. With one sector selected, scores can reach about 100.
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.
Six stages from source to score.
Every record passes through six steps between the source files and the published ranking.
Extract
Read the PDF, Excel and CSV sources
Clean
Set aside records with no district
Match
Line up district names across the sources
Tier
Group districts into three population tiers
Normalise
Rescale each measure to 0-1
Score
Add the weighted measures
Three public datasets.
Poverty figures come from NITI Aayog, CSR spending from the Ministry of Corporate Affairs and population from the Census of India.
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.
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.
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.
Matching the records.
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 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
Matching names within each state
rapidfuzz.fuzz.ratio
>= 75% similarity
Set low so that as many districts as possible find a match.
75 to 90%
Matches in this range are listed in the verification report for a reviewer to check.
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
Renamed districts
A district that was only renamed kept its 2011 boundary, so it keeps its Census 2011 population under the new name.
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
Palghar
From the gazette or Census handbook
Thane (remainder)
Thane's 2011 total minus Palghar
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.
Three checks on the totals, each of which stops the build if it fails
New districts plus the remainder within 0.5% of the older district's Census 2011 population
Catches a wrong figure for one district
Matched population between 5% below and 0.5% above the state's Census 2011 total
Catches a district counted twice within a state
Matched population no more than 0.5% above India's Census 2011 total
Catches double counting across states
651 / 653districts on the MPI list
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.
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.
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.
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.
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.
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.
Figure 02
Median CSR per person in each tier, ₹
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.
Rescaling and weighting.
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.
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.
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
Need and the funding gap weighted equally
Highest Need
More weight on poverty severity
Most Underfunded
More weight on the funding gap
Stuck Districts
More weight on persistent poverty
How the scores are spread.
Figure 03 · Distribution of scores
N = 651Across 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.
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.
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.
What the score cannot see.
We know of seven limits on what the score can tell you.
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.
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.
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.
The MPI figures describe conditions in 2019-21 (NFHS-5), and district poverty may have changed since the survey was taken.
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.
The score leaves out government spending, private giving outside the Companies Act and international aid that reach these districts.
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.