How to Use VSTACK and LAMBDA to Author Dynamic Chakravarty Inequality Index Models in Microsoft Excel

In quantitative welfare economics, evaluating income inequality requires flexible ethical parameterization: policy analysts must test how sensitive inequality measures are when social aversion to extreme poverty intensifies. Satya Chakravarty formulated the Chakravarty Inequality Index ($C_e$), a normative inequality measure derived from a continuous social welfare function with variable ethical parameter $e in (0, 1)$. Modern Microsoft Excel dynamic array functions—specifically VSTACK, LAMBDA, and LET—allow economic analysts to build dynamic Chakravarty inequality models cleanly without legacy macros.

Mathematical Foundations of the Chakravarty Index

Given an observed income distribution vector $y_1, y_2, dots, y_n$ with arithmetic mean $mu$, the discrete Chakravarty Inequality Index $C_e$ is defined as:

C_e = 1 - ( (1 / n) * SUM( (y_i / mu)^e ) )^(1 / e)

Where:

  • n denotes the total population count.
  • mu represents the arithmetic mean income.
  • e ($0 < e < 1$) represents the degree of societal inequality aversion. As $e o 0$, the index places heavier sensitivity on lower-income shortfalls (extreme poverty focus); as $e o 1$, the index approaches 0 (neutral egalitarian focus).
  • $C_e$ satisfies all standard welfare axioms: scale invariance, Dalton transfer sensitivity, and subgroup consistency.

Implementing the Dynamic Array Formula in Excel

Using the LET function, we can construct the Chakravarty calculation dynamically for any income dataset:

=LET(
    raw_data, A2:A101,
    e_param, 0.5,
    clean_data, FILTER(raw_data, ISNUMBER(raw_data) * (raw_data > 0)),
    n, COUNT(clean_data),
    mu, AVERAGE(clean_data),
    norm_ratios, clean_data / mu,
    powered_ratios, norm_ratios^e_param,
    mean_powered, AVERAGE(powered_ratios),
    ede_ratio, mean_powered^(1 / e_param),
    chakravarty_index, 1 - ede_ratio,
    chakravarty_index
)

This dynamic formula filters positive numeric values, normalizes incomes by the distribution mean, applies the ethical parameter $e$, and outputs the Chakravarty inequality index instantly.

Encapsulating the Formula into a Reusable Custom LAMBDA

To deploy this metric across multiple economic workbooks, define a reusable custom function named CHAKRAVARTY.INDEX in the Excel Name Manager:

  1. Navigate to the Formulas tab and click Name Manager.
  2. Click New, enter CHAKRAVARTY.INDEX in the Name field, and set Scope to Workbook.
  3. In the Refers to box, input the following formula:
    =LAMBDA(values, e_val,
        LET(
            clean, FILTER(values, ISNUMBER(values) * (values > 0)),
            mu, AVERAGE(clean),
            1 - (AVERAGE((clean / mu)^e_val))^(1 / e_val)
        )
    )
  4. Click OK and close the dialogue.

Building Sensitivity Analysis Dashboards with VSTACK

We can evaluate sensitivity across different values of ethical parameter $e$ side-by-side using VSTACK:

=LET(
    cohort, B2:B100,
    header, HSTACK("Aversion Parameter (e)", "Chakravarty Index", "Interpretation"),
    row_1, HSTACK("e = 0.25 (High Aversion)", CHAKRAVARTY.INDEX(cohort, 0.25), "Sensitive to Bottom Tier"),
    row_2, HSTACK("e = 0.50 (Standard)", CHAKRAVARTY.INDEX(cohort, 0.50), "Balanced Distribution Sensitivity"),
    row_3, HSTACK("e = 0.75 (Mild Aversion)", CHAKRAVARTY.INDEX(cohort, 0.75), "Mild Sensitivity"),
    VSTACK(header, row_1, row_2, row_3)
)

This dynamic array structure automatically updates whenever underlying cohort rows change, delivering instantaneous insight into normative inequality sensitivity across economic policy options.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.