The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Equity and sustainability assessment of agricultural subsidies

library(agriEquity)

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.

1. Who receives support?

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.968

Marginal farms make up almost half of households but receive about an eighth of the input subsidy.

2. Is it progressive?

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.

3. Equity across farm size, gender and region

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.3971565548

theil_between_share shows how much of the inequality in benefits is explained by each dimension.

4. Effects on inequality and poverty

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.6

5. Budget-neutral reallocation

The 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.00109686

6. Productivity-equity-sustainability trade-offs

tf <- 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.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.