Policy-matrix calculations measure how much support agriculture
receives. They do not show who receives it, whether it
reaches smallholders, women farmers and resource-poor regions, or what
the same budget could achieve if allocated differently.
agriEquity answers these questions with household-level
data in four steps: incidence, progressivity and equity, distributional
effects, and budget-neutral reallocation with explicit
productivity-equity-sustainability trade-offs.
The farm_subsidy data are simulated for
1,500 households with three types of support: an input (fertiliser)
subsidy, a flat income transfer and an irrigation power subsidy.
bi <- benefit_incidence(farm_subsidy, "fertiliser_subsidy",
group = "size_class", weights = "weight",
area = "land_ha", income = "farm_income")
bi[, c("group", "population_share", "benefit_share", "parity_ratio",
"benefit_per_hectare")]
#> group population_share benefit_share parity_ratio benefit_per_hectare
#> 1 marginal 0.461831565 0.11730424 0.2539979 2507.501
#> 2 small 0.281331214 0.23150243 0.8228821 3134.584
#> 3 semi-medium 0.178218730 0.30924615 1.7352057 3442.711
#> 4 medium 0.069698383 0.26106825 3.7456859 3699.365
#> 5 large 0.008920109 0.08087894 9.0670346 3642.968Marginal farms make up almost half of households but receive about an eighth of the input subsidy.
with(farm_subsidy, progressivity_index(fertiliser_subsidy, farm_income,
weights = weight))
#> Progressivity of support
#>
#> index estimate
#> concentration 0.5449
#> gini_income 0.3903
#> kakwani -0.1547
#> gini_post 0.3964
#> redistributive_effect -0.0062
#> reynolds_smolensky -0.0060
#> reranking 0.0002
#> benefit_share_bottom40 0.0821
#>
#> Not pro-poor in absolute terms; regressive relative to income.
with(farm_subsidy, progressivity_index(income_transfer, farm_income,
weights = weight))
#> Progressivity of support
#>
#> index estimate
#> concentration 0.0101
#> gini_income 0.3903
#> kakwani 0.3801
#> gini_post 0.3763
#> redistributive_effect 0.0140
#> reynolds_smolensky 0.0142
#> reranking 0.0002
#> benefit_share_bottom40 0.3949
#>
#> Not pro-poor in absolute terms; progressive relative to income.se <- subsidy_equity(farm_subsidy, "fertiliser_subsidy",
dimensions = c("size_class", "gender", "region"),
weights = "weight",
target = list(size_class = c("marginal", "small"),
gender = "female",
region = c("Rainfed-East", "Hill-Tribal")))
se$summary
#> dimension groups reference min_parity_group min_parity_ratio
#> 1 size_class 5 large marginal 0.2539979
#> 2 gender 2 male female 0.9380689
#> 3 region 4 Irrigated-North Hill-Tribal 0.1352985
#> target_parity_ratio theil_total theil_between_share
#> 1 0.4693543 0.6777792 0.7194438962
#> 2 0.9380689 0.6777792 0.0004632798
#> 3 0.2818810 0.6777792 0.3971565548theil_between_share shows how much of the inequality in
benefits is explained by each dimension.
de <- with(farm_subsidy, distributional_effects(
farm_income,
list(fertiliser = fertiliser_subsidy, transfer = income_transfer,
power = power_subsidy),
weights = weight, poverty_line = 60000))
de$summary[, c("scenario", "gini", "fgt0", "fgt1", "lifted_out_share",
"cost_per_household_lifted")]
#> scenario gini fgt0 fgt1 lifted_out_share
#> 1 no_support 0.3902507 0.2185809 0.04384556 0.000000000
#> 2 fertiliser 0.3964115 0.2071613 0.04180761 0.011419574
#> 3 transfer 0.3762841 0.1707318 0.02796631 0.047849084
#> 4 power 0.3959803 0.2163337 0.04349092 0.002247225
#> cost_per_household_lifted
#> 1 NA
#> 2 471546.1
#> 3 107725.4
#> 4 1256189.6The same fertiliser-subsidy budget is reallocated under alternative
rules. The productivity response (marginal_return) and the
environmental damage cost per unit of support
(env_cost_per_rupee) are simulated household attributes; in
applied work they come from production-function estimates and
environmental valuation.
fs <- farm_subsidy
prio <- with(fs, 1 + (size_class %in% c("marginal", "small")) +
0.5 * (gender == "female") +
0.5 * (region %in% c("Rainfed-East", "Hill-Tribal")))
br <- budget_reallocation(fs$farm_income, fs$fertiliser_subsidy,
weights = fs$weight, area = fs$land_ha,
priority = prio,
target = fs$size_class %in% c("marginal", "small"),
return_rate = fs$marginal_return,
env_cost = fs$env_cost_per_rupee,
inequality_aversion = 1, env_weight = 1,
poverty_line = 60000)
m <- br$metrics
m[, c("rule", "productivity_gain", "environmental_cost", "gini_post",
"target_share", "poverty_headcount")]
#> rule productivity_gain environmental_cost gini_post
#> 1 current 226441260 576961797 0.3959534
#> 2 per_farm 356917261 407320825 0.3700034
#> 3 per_hectare 256766501 476982149 0.3908547
#> 4 per_hectare_capped 290473420 455157125 0.3838774
#> 5 targeted 365768571 363060480 0.3642975
#> 6 optimal 310423542 174027833 0.3383010
#> target_share poverty_headcount
#> 1 0.3488067 0.20471153
#> 2 0.7431628 0.15223041
#> 3 0.3978295 0.19616596
#> 4 0.5584257 0.18669551
#> 5 0.8502634 0.14086816
#> 6 0.9995285 0.00109686tf <- tradeoff_frontier(fs$farm_income, fs$fertiliser_subsidy,
weights = fs$weight,
target = fs$size_class %in% c("marginal", "small"),
return_rate = fs$marginal_return,
env_cost = fs$env_cost_per_rupee,
aversion = c(0, 0.5, 1, 2), env_weights = c(0, 1, 3))
tf
#> Productivity-equity-sustainability frontier
#>
#> inequality_aversion env_weight productivity_gain environmental_cost
#> 0.0 0 386,925,518.730 354,764,443.976
#> 0.5 0 342,509,118.499 243,158,426.328
#> 1.0 0 322,329,357.537 226,319,834.849
#> 2.0 0 308,229,244.508 217,162,936.931
#> 0.0 1 317,706,521.016 117,848,312.231
#> 0.5 1 312,931,485.218 147,087,873.198
#> 1.0 1 310,423,541.965 174,027,832.872
#> 2.0 1 305,215,650.758 198,953,381.187
#> 0.0 3 293,728,948.574 103,275,926.971
#> 0.5 3 291,549,115.866 113,110,101.739
#> 1.0 3 293,396,656.477 129,705,483.791
#> 2.0 3 299,419,782.503 171,819,569.621
#> net_social_value gini_post target_share
#> 32,161,074.754 0.357 0.905
#> 99,350,692.171 0.340 0.999
#> 96,009,522.687 0.338 1.000
#> 91,066,307.578 0.337 1.000
#> 199,858,208.786 0.351 0.939
#> 165,843,612.020 0.340 0.998
#> 136,395,709.093 0.338 1.000
#> 106,262,269.571 0.337 1.000
#> 190,453,021.603 0.353 0.943
#> 178,439,014.127 0.342 0.997
#> 163,691,172.686 0.340 0.999
#> 127,600,212.883 0.338 1.000
#>
#> Current allocation: productivity gain 226,441,259.807, environmental cost 576,961,796.652, Gini 0.396
plot(tf)The current allocation (star) lies inside the frontier: in this simulated example, the same budget could deliver higher productivity, lower inequality and lower environmental cost at once.