In normative welfare economics, inequality measures evaluate not merely the mathematical dispersion of incomes, but the societal loss in aggregate welfare resulting from unequal distribution. Hugh Dalton pioneered this approach with the Dalton inequality index (also known as the Dalton-Atkinson social welfare index), which quantifies the proportional welfare loss by comparing the actual aggregate utility against the hypothetical utility achievable if total income were divided equally. Modern Microsoft Excel dynamic array functions—specifically VSTACK, LAMBDA, and LET—allow economic analysts to build dynamic Dalton social welfare models cleanly without legacy VBA macros.
Mathematical Foundations of the Dalton Index
Given an observed income distribution vector $y_1, y_2, dots, y_n$ with arithmetic mean $mu$, the Dalton inequality index $D$ evaluates individual utility under a concave social utility function $U(y)$:
D = 1 - ( (1 / n) * SUM(U(y_i)) ) / U(mu)
Under the standard logarithmic utility formulation ($U(y) = ln(y)$ for $y > 0$):
D = 1 - ( (1 / n) * SUM(ln(y_i)) ) / ln(mu)
Where:
ndenotes the total count of valid observation units.murepresents the arithmetic mean of the distribution vector.SUM(ln(y_i)) / nrepresents the average societal utility derived from the actual unequal distribution.ln(mu)represents the maximum potential societal utility achieved under completely egalitarian distribution.- $D$ ranges from 0 (perfect equality where actual utility equals potential utility) to 1 (extreme inequality).
Implementing the Dalton Index Dynamic Array Formula in Excel
Using the LET function, we can construct the mathematical calculation into readable intermediate steps that handle uncurated columns dynamically:
=LET(
raw_data, A2:A101,
clean_data, FILTER(raw_data, ISNUMBER(raw_data) * (raw_data > 0)),
n, COUNT(clean_data),
mu, AVERAGE(clean_data),
actual_utility, AVERAGE(LN(clean_data)),
potential_utility, LN(mu),
dalton_index, 1 - (actual_utility / potential_utility),
dalton_index
)
This formula strips invalid or negative values, calculates the arithmetic mean, computes natural log utilities, and derives the exact Dalton welfare loss index instantly.
Encapsulating the Formula into a Reusable Custom LAMBDA
To deploy this calculation across multiple economic workbooks, define a reusable custom function named DALTON.INDEX in the Excel Name Manager:
- Navigate to the Formulas tab and click Name Manager.
- Click New, enter
DALTON.INDEXin the Name field, and set Scope toWorkbook. - In the Refers to box, input the following formula:
=LAMBDA(values, LET( clean, FILTER(values, ISNUMBER(values) * (values > 0)), mu, AVERAGE(clean), 1 - (AVERAGE(LN(clean)) / LN(mu)) ) ) - Click OK and close the dialogue.
Building Comparative Cohort Dashboards with VSTACK
We can combine multiple regional or demographic income cohorts into a side-by-side comparative dashboard using VSTACK:
=LET(
cohort_A, B2:B100,
cohort_B, C2:C100,
header, HSTACK("Demographic Cohort", "Dalton Welfare Loss", "Mean Income (£)", "Observations"),
row_A, HSTACK("Urban District", DALTON.INDEX(cohort_A), AVERAGE(cohort_A), COUNT(cohort_A)),
row_B, HSTACK("Rural District", DALTON.INDEX(cohort_B), AVERAGE(cohort_B), COUNT(cohort_B)),
VSTACK(header, row_A, row_B)
)
This dynamic array structure automatically updates whenever underlying survey data changes, delivering instantaneous insight into normative welfare losses resulting from unequal distributions across different societal cohorts.