R/calibrate_yield.R
adjust_revenue_to_yield_equivalence.RdAdjusts gross revenue protection (GRP) policy values so that they are equivalent to their corresponding yield protection policies, as is done by USDA RMA (Coble et al., 2010).
adjust_revenue_to_yield_equivalence(
insurance_plan_code,
liability_amount,
indemnity_amount,
projected_price,
harvest_price
)Integer vector. Plan codes for the insurance policy-codes 2 and 3 indicate revenue plans that require adjustment.
Numeric vector. The original liability amounts under the revenue policy.
Numeric vector. The original indemnity payments calculated under the revenue policy.
Numeric vector. The projected price used in the revenue guarantee.
Numeric vector. The actual harvest price used to settle revenue policies.
A named list with two numeric vectors:
Liability amounts adjusted so that the revenue policy is equivalent to a yield policy.
Indemnity amounts adjusted for yield- equivalence, floored at zero.
For revenue plans (codes 2 and 3), the liability is scaled by \(projected\_price / harvest\_price\). For pure yield plans (code 1), no adjustment is made. The loss guarantee for code 2 is further adjusted to use the higher of projected or harvest price. The "production to count" is then the difference between that guarantee and the original indemnity. Finally, the indemnity is re-computed on the yield-equivalent basis and floored at zero to avoid negative payments.
Coble, K. H., Heimlich, R., & Jolly, R. (2010). Comprehensive Review of RMA Loss Adjustment Procedures (USDA RMA). https://legacy.rma.usda.gov/pubs/2009/comprehensivereview.pdf
Other Yield/Revenue Calibration:
calibrate_yield(),
prepare_yield_calibration_data(),
rate_yield_optimizer(),
rma_500_revenue_draw()
# No adjustment for plan 1 (yield policy):
adjust_revenue_to_yield_equivalence(
insurance_plan_code = 1,
liability_amount = 1000,
indemnity_amount = 200,
projected_price = 5.50,
harvest_price = 5.00
)
#> $liability_amount_adj
#> [1] 1000
#>
#> $indemnity_amount_adj
#> [1] 120
#>
# Adjustment for plan 2 or 3 (revenue policies):
adjust_revenue_to_yield_equivalence(
insurance_plan_code = c(2, 3),
liability_amount = c(1000, 1000),
indemnity_amount = c(150, 100),
projected_price = c(5.50, 5.50),
harvest_price = c(6.00, 4.25)
)
#> $liability_amount_adj
#> [1] 916.6667 1294.1176
#>
#> $indemnity_amount_adj
#> [1] 54.16667 129.41176
#>