Constructs a per-patient annual cost structure for each treatment and cost category (drug, administration, monitoring, adverse events, other). Supports optional inflation adjustment, discounting, and confidential rebates.
Usage
bim_costs(
treatments,
years = 1:5,
drug_costs = NULL,
admin_costs = NULL,
monitoring_costs = NULL,
ae_costs = NULL,
other_costs = NULL,
currency = "GBP",
price_year = as.integer(format(Sys.Date(), "%Y")),
inflation_rate = 0,
rebates = NULL
)Arguments
- treatments
character. Vector of treatment names. Must match those inbim_market_share().- years
integer. Projection years (default1:5).- drug_costs
Named
numericvector orNULL. Annual drug cost per patient by treatment.- admin_costs
Named
numericvector orNULL. Annual administration cost per patient (infusion, injection nurse, etc.).- monitoring_costs
Named
numericvector orNULL. Annual monitoring costs (lab tests, clinic visits, imaging).- ae_costs
Named
numericvector orNULL. Annual adverse event management costs per patient.- other_costs
Named
numericvector orNULL. Any other direct medical costs not captured above.- currency
character(1). ISO 4217 currency code (e.g."GBP","USD","EUR","CAD"). Default"GBP".- price_year
integer(1). Reference price year. Default is the current calendar year.- inflation_rate
numeric(1). Annual inflation rate applied to non-drug costs for years beyond Year 1. Default0.0.- rebates
Named
numericvector orNULL. Confidential rebates as proportions (e.g.c(DrugA = 0.15)for 15% rebate). Applied todrug_costsonly and kept internal (not printed by default).
Value
An object of class bim_costs, a list containing:
costsA
data.framewith columnstreatment,year,category,unit_cost,total_annual_cost.totalA
data.framewithtreatment,year,total_cost_per_patient.paramsList of all input parameters (rebates stored but not printed).
metaList with
currency,price_year,treatments.
Examples
costs <- bim_costs(
treatments = c("RASi", "Sparsentan", "Sibeprenlimab"),
currency = "GBP",
price_year = 2025L,
drug_costs = c(
RASi = 200,
Sparsentan = 22000,
Sibeprenlimab = 28500
),
monitoring_costs = c(
RASi = 650,
Sparsentan = 1500,
Sibeprenlimab = 1900
)
)
print(costs)
#>
#> -- htaBIM Costs --
#>
#> Currency : GBP (2025 prices)
#> Treatments : RASi, Sparsentan, Sibeprenlimab
#>
#> Total annual cost per patient (Year 1):
#> RASi : GBP 850
#> Sibeprenlimab : GBP 30,400
#> Sparsentan : GBP 23,500