Whose Cost, in Which Year? Perspective, Opportunity Cost, Inflation and Discounting

Health EconomicsClinical Epidemiology ResearchMethodology and Research Design
Whose Cost, in Which Year? Perspective, Opportunity Cost, Inflation and Discounting
On this page

อ่านฉบับภาษาไทย (Thai version)

Abstract

A team building a 2026 model needs the cost of one influenza visit. The hospital used up 1,730 THB of care, in 2024 prices. The patient loses 1,100 THB in travel, time and work, and the bill is 2,000 THB. The visit costs 1,730, 1,100, 3,100, 2,000 or 2,830 THB, depending on whose costs count. The bill only moves money from an insurance fund to the hospital, so society's total is 2,830 THB, not 4,830. Prices rose, so the hospital's 1,730 THB is 1,833.80 THB in 2026 prices. Care three years later is worth less at the start of 2026 because money kept can do good now. Discounting is that step: it divides by 1.03 (one plus a 3% yearly rate) for each year away, so the hospital's year-3 care is worth 1,678 THB. The same rate spreads a 1,000,000 THB analyser into 117,230.51 THB a year, not 100,000.


Visual summary · ภาพสรุป

One influenza visit, five different costs

A hospital team is building a model of a new way to treat influenza in its outpatient clinic. The model starts at the beginning of 2026 and follows patients for several years. Before it can run, the team needs one input: the cost of one outpatient visit for influenza.

Three numbers arrive. The hospital's accounts say the visit used up 1,730 THB (Thai baht) of staff time, tests, medicines, equipment and building, in 2024 prices, that is, valued in 2024 money. A patient survey says each patient gave up another 1,100 THB in travel, food, a relative's unpaid time and a day of lost work. The hospital bills 2,000 THB for the visit, and for most patients an insurance fund, the payer, pays that bill.

Ask five people what the visit costs and you hear five answers: the hospital says 1,730 THB, an insured patient 1,100 THB, a patient who pays the bill 3,100 THB and the insurance fund 2,000 THB. A planner adding everything up says 2,830 THB; a careless one says 4,830 THB. These amounts are illustrative, for teaching.

The team also has two questions about time. The 1,730 THB is in 2024 prices, but the model counts in 2026 money. And many of the model's visits happen years after it starts: what is a visit three years away worth at the start of 2026? This article answers the three questions in order: whose cost, in which year's prices, and when.

What did the visit use up?

Start with the hospital's 1,730 THB, because it is not the 2,000 THB bill. The bill is what the hospital asks for. The 1,730 THB is the value of what the visit used up, which could have served another patient instead.

Take the nurse's 20 minutes with this patient, which the hospital values at 10 THB a minute, 200 THB in all. In those minutes the nurse cannot see anyone else, so the visit costs the clinic the best other use of that time, worth about that 200 THB. Economists call this the opportunity cost: the value of the best alternative that was given up [1]. A donated machine has one too, even though nobody paid for it, because the clinic could have used it for other tests.

The hospital built its 1,730 THB in three moves. First it listed what the visit used: staff time, one rapid influenza test, a course of medicines, a share of the test analyser and a share of the building. Then it measured how much of each the visit used, its resource use: the doctor spent 10 minutes and the nurse 20. Then it valued each with a unit cost, the value of one unit: 10 minutes at 30 THB a minute plus 20 minutes at 10 THB a minute gives 300 + 200 = 500 THB of staff time.

Add the test kit at 450 THB, the medicines at 520 THB, 23 THB for the analyser and 237 THB for the building, cleaning and administration, and the visit used up 1,730 THB. These three moves are called identify, measure and value, and counting item by item like this is called micro-costing.

The two shares need care. The 23 THB spreads a machine bought once over many years of tests; the section on equipment below shows where it comes from. The 237 THB is this visit's slice of costs the whole hospital shares: administration, the building and cleaning.

Those shared departments also serve each other, so their costs are passed on in a fixed order, called step-down allocation. Start with the department that serves the most others: administration, 6,000,000 THB a year, shared by staff hours. It passes 10% to building and cleaning (600,000 THB), 40% to the clinic (2,400,000 THB) and 50% to the inpatient ward.

Building and cleaning goes next: its own 4,080,000 THB plus the 600,000 THB it received, 4,680,000 THB, shared by floor area. The clinic and the ward each hold half of that floor, so the clinic receives 2,340,000 THB. A department that has passed its costs on receives nothing back, so no cost goes round twice.

The clinic's shared costs come to 2,400,000 + 2,340,000 = 4,740,000 THB, which is 237 THB for each of its 20,000 visits. If a unit cost taken from elsewhere already includes such a share, adding the 237 THB again counts it twice.

Four everyday words get mixed up here. A charge is what the hospital bills, here 2,000 THB, and a reimbursement is what a payer pays the hospital for that bill.

A price is what a buyer and a seller agree on, such as what the hospital paid its supplier for the medicines. A cost, in an economic evaluation, is the value of the resources used up: the 1,730 THB.

R code allocation.R
# Step-down: shared costs reach the clinic, THB in 2024 prices (illustrative).
admin <- 6000000                     # administration, shared by staff hours
building <- 4080000                  # building and cleaning, shared by floor area
to_building <- admin * 0.10          # step 1: administration first, 10% to building and cleaning
to_clinic_1 <- admin * 0.40          # 40% to the clinic (the other 50% to the ward)
building_all <- building + to_building
to_clinic_2 <- building_all * 0.50   # step 2: half the floor is the clinic's; nothing goes back
clinic <- to_clinic_1 + to_clinic_2
cat("Administration to building, to clinic:",sprintf("%.0f", c(to_building, to_clinic_1)), "\n")
cat("Building and cleaning to pass on (THB):", sprintf("%.0f", building_all), "\n")
cat("Building and cleaning to the clinic (THB):", sprintf("%.0f", to_clinic_2), "\n")
cat("Clinic total, then per visit of 20,000:", sprintf("%.0f", c(clinic, clinic / 20000)), "\n")
Output of the run allocation.log
Administration to building, to clinic: 600000 2400000
Building and cleaning to pass on (THB): 4680000
Building and cleaning to the clinic (THB): 2340000
Clinic total, then per visit of 20,000: 4740000 237
The hospital's shared costs passed down in order: administration first, then building and cleaning, ending at the clinic's 237 THB per visit (illustrative 2024 totals).

What the patient gives up

The patient's 1,100 THB has four parts: 200 THB of travel, 100 THB of extra food, 300 THB for a relative's unpaid afternoon of care, and 500 THB for the day the patient could not work. None of it appears in the hospital's accounts, yet each is a resource given up because of the illness.

Each part has a name. The hospital's 1,730 THB is a direct medical cost. Travel and food are direct non-medical costs, needed to reach care. The relative's time is informal care, unpaid but not free, and the lost day of work is a productivity cost: the value of work that the illness stopped.

For one day off work that nobody covers, every method gives 500 THB. They part ways for a long illness. Suppose a patient is off work for 60 days and the employer finds a replacement after 20 days. Counting every day lost, called the human capital approach, gives 60 × 500 = 30,000 THB.

Counting only the days until the work is covered again, called the friction cost approach, gives 20 × 500 = 10,000 THB. Say which one you used, because they answer different questions.

Two traps sit here. If the relative took the afternoon off paid work to give care, count that afternoon once, as informal care or as lost work, never as both. And pain or worry is a real loss, called an intangible cost. An economic evaluation counts it on the health side, in the measure of health gained that the next article builds, so adding money for it would count it twice.

When you cannot count every item

Counting every item takes time, so analysts often use shortcuts on the hospital's side. One divides what the whole clinic used up in a year by its visits. In 2024 the clinic used up 26,000,000 THB over 20,000 visits, or 1,300 THB per visit. This is called gross costing; its average mixes five-minute prescription refills with influenza visits that need a test and medicines, so it comes out below the 1,730 THB counted item by item.

Another shortcut starts from the bill. The clinic billed 32,500,000 THB that year for its 26,000,000 THB of resources, so each baht billed matched 0.80 THB of resources. That share is called the cost-to-charge ratio, and the bill times the ratio gives 2,000 × 0.80 = 1,600 THB.

That is closer than the 1,300 THB average, because the bill already shows that this visit needs more than most, but it is still short of the counted 1,730 THB. The 0.80 is the whole clinic's ratio, so it still mixes short refills with influenza visits; a ratio taken from influenza visits alone would be better, and a hospital-wide ratio can hide even larger differences between departments.

A third shortcut is a national list of standard unit costs. An entry there is a starting point, not a free pass. Before it enters the model, check four things:

  • the setting: the same service in the same kind of hospital;
  • the unit: per visit, per test or per day of care;
  • the price year, restated as the section on price years below shows;
  • the shared costs: whether administration and building are already inside it.

How to choose and judge such lists when local data are sparse is the subject of a later article in this series (Parameter Sourcing, Reference Cost Lists and Utility Catalogues When Local Data Are Sparse).

R code unit_costs.R
# Shortcuts for valuing the visit, THB in 2024 prices (illustrative).
clinic_cost <- 26000000              # everything the outpatient clinic used up in 2024
clinic_visits <- 20000               # all its visits that year, short and long
clinic_charges <- 32500000           # everything it billed that year
ratio <- clinic_cost / clinic_charges
day_of_work <- 500                   # the value of one day of the patient's work
cat("Average cost of any clinic visit (THB):", clinic_cost / clinic_visits, "\n")
cat("Cost-to-charge ratio:", sprintf("%.2f", ratio), "\n")
cat("The 2,000 THB bill times the ratio (THB):", round(2000 * ratio), "\n")
cat("60 days off work, every day counted (THB):", 60 * day_of_work, "\n")
cat("60 days off work, replaced after 20 days (THB):", 20 * day_of_work, "\n")
Output of the run unit_costs.log
Average cost of any clinic visit (THB): 1300
Cost-to-charge ratio: 0.80
The 2,000 THB bill times the ratio (THB): 1600
60 days off work, every day counted (THB): 30000
60 days off work, replaced after 20 days (THB): 10000
The clinic's two shortcuts from its illustrative 2024 totals, then the two ways to count 60 days off work from the section before.

Whose cost? Five answers, one reason

Now the five answers make sense. Each person adds up a different set of items, because each asks whose resources and payments count. The hospital, the provider of care, adds what it used up: 1,730 THB. The insured patient adds what the patient gave up: 1,100 THB.

The patient who pays the bill adds the bill too: 1,100 + 2,000 = 3,100 THB. The insurance fund adds only what it pays: 2,000 THB. Society, meaning everyone together, adds every resource used up by anyone: 1,730 + 1,100 = 2,830 THB.

The choice of whose costs count is called the perspective of the analysis. State it first, because it decides which items enter the sum. Thailand's guidelines for health technology assessment ask for the societal perspective (their second edition is described in [3]). Many analyses also report the payer's view, such as a public health insurance scheme's [2].

Why does society not add the bill? Follow the 2,000 THB. It leaves the insurance fund and arrives at the hospital, and nothing extra is used up on the way. Inside society it is paid once and received once, so the two cancel.

A payment that only moves money from one party to another is called a transfer. The bill, a co-payment and a reimbursement are all transfers. Adding the bill to the resources gives 4,830 THB, which counts the visit's care twice: once as resources and once as the money that paid for them. The only resource a payment uses is the staff time to process it, and that time is counted like any other resource.

Read down each column to see whose total it is: the patient counts 1,100, the fund 2,000, the hospital 1,730 and society 2,830 THB. Then follow the orange arrow in the bill row: the 2,000 THB leaves the fund and reaches the hospital, so in the society column it is paid and received and adds 0.
R code cost_trail.R
# One influenza outpatient visit, THB in 2024 prices (illustrative).
staff <- 10 * 30 + 20 * 10           # doctor 10 minutes at 30 THB, nurse 20 minutes at 10 THB
care <- staff + 450 + 520 + 23 + 237 # + rapid test, medicines, analyser share, building share
patient_gives_up <- 200 + 100 + 300 + 500 # travel, food, a relative's unpaid time, a lost workday
bill <- 2000                         # what the hospital charges for the visit
cat("Staff time (THB):", staff, "\n")
cat("Care the hospital used up (THB):", care, "\n")
cat("Patient, bill covered by the payer (THB):", patient_gives_up, "\n")
cat("Patient paying the bill (THB):", patient_gives_up + bill, "\n")
cat("Payer covering the bill (THB):", bill, "\n")
cat("Society (THB):", care + patient_gives_up, "\n")
cat("Society with the bill added by mistake (THB):", care + patient_gives_up + bill, "\n")
Output of the run cost_trail.log
Staff time (THB): 500
Care the hospital used up (THB): 1730
Patient, bill covered by the payer (THB): 1100
Patient paying the bill (THB): 3100
Payer covering the bill (THB): 2000
Society (THB): 2830
Society with the bill added by mistake (THB): 4830
The visit's items in 2024 prices, then the total for each person and for society, including the 4,830 THB a careless sum gives.

Which year's baht? From 2024 prices to 2026 prices

The hospital measured its 1,730 THB in 2024 prices. The model counts in 2026 money, and its other inputs, such as a price list for the new treatment, are in 2026 money too. Most prices rose between those years, so 1,730 THB buys less in 2026 than it did two years earlier. Mixing the two would compare unlike money.

To restate the cost, use a price index: a number that tracks what a fixed basket of goods costs each year. Suppose the index was 100.0 in 2024 and 106.0 in 2026 for the same basket. The basket then costs 106.0 / 100.0 = 1.06 times as much, so prices rose 6%, and the visit costs 1,730 × 1.06 = 1,833.80 THB in 2026 prices, about 1,834 THB.

The year whose money a cost is written in is called its price year, and restating a cost in another price year is inflation adjustment. The usual index is the consumer price index (CPI), which follows the prices households pay. A medical-care index is better when one exists, because medical prices often rise at a different pace. In symbols, with source year $y$ and target year $y^*$:

$$C_{y^*}=C_y\times\frac{CPI_{y^*}}{CPI_y}$$

An entry from a standard cost list is restated the same way before it is used. Converting baht into another country's money is a separate step, done with purchasing power parity rates, which compare what money buys in each country; it does not change the price year.

What is a visit three years away worth at the start of 2026?

Now place the visit in time. The model starts at the beginning of 2026 and values everything at that date, called the valuation date. One of its patients has an influenza visit exactly 3 years later, at the start of 2029 (year 3). In 2026 prices that visit's care still costs 1,833.80 THB, but a cost paid 3 years from now weighs less than the same cost paid at the valuation date.

There are two reasons. Money not spent today can do good today, for example by treating other patients, or it can be invested and grow. And people, payers included, prefer good things sooner and bills later, so the fund would rather pay the 1,833.80 THB in 2029 than in 2026 if it had the choice.

How much less? Ask what sum, set aside at the start of 2026 and growing at 3% a year, would become the 1,833.80 THB due at the start of 2029 (year 3). The answer is 1,678.19 THB, because 1,678.19 × 1.03 × 1.03 × 1.03 = 1,833.80. So the hospital's 1,833.80 THB three years away is worth 1,678.19 THB at the start of 2026 (year 0).

Working a future amount back like this is called discounting: for each year away, divide it by 1 plus a yearly rate, here 3%, so by 1.03. The yearly rate is called the discount rate, and the value at the valuation date is called the present value. Thailand's guidelines use 3% a year for both costs and health effects (their second edition is described in [3]).

The year-3 visit, brought back to the start of 2026

The same answer, the other way round: divide instead of multiply. Every number below is printed by the R code a little further down. Each step back starts again from the 2026 price of 1,833.80 THB, so every line can be checked on its own.

  1. Restate the price

    \[ 1730\times1.06=1833.80 \]

    Multiply the 2024 cost by the index ratio of 1.06: 1,833.80 THB in 2026 prices.

  2. Place the visit

    The visit falls exactly 3 years after the start of 2026 (year 0), the date at which the model values everything.

  3. Back one year

    \[ \frac{1833.80}{1.03}=1780.39 \]

    Valued one year earlier, at the start of 2028 (year 2), the visit is worth 1,780.39 THB.

  4. Back two years

    \[ \frac{1833.80}{1.03^{2}}=1728.53 \]

    Valued two years earlier, at the start of 2027 (year 1), it is worth 1,728.53 THB.

  5. Back three years

    \[ \frac{1833.80}{1.03^{3}}=1678.19 \]

    Valued at the start of 2026 (year 0) it is worth 1,678.19 THB. Dividing by 1.03 three times is the same as dividing once by 1.03 × 1.03 × 1.03, about 1.093.

Result: At 3% a year and in 2026 prices, the hospital's care in the year-3 visit is worth 1,678 THB at the start of 2026 (year 0).

The price year (2026) and the valuation date (the start of 2026) are two different labels. Here they fall in the same year, but a report still states both.

Follow the top arrow forward from 2024: the index ratio of 1.06 turns 1,730 THB into 1,833.80 THB of 2026 money. Then follow the green arrows back from the visit at year 3: each year divides by 1.03, so the visit arrives at the start of 2026 worth 1,678.19 THB. The bars shrink only a little, because 3% a year is a gentle rate over 3 years.

Two moves that must not be mixed

The two steps move money in opposite directions and answer different questions. Inflation adjustment moves a past price forward into the price year. Discounting moves a future amount back to the valuation date. Restate the price year first, then discount.

Two errors come from mixing them. A cost from the past is never discounted just because it is old; it is restated with a price index. And in a model written in 2026 prices, a future visit is not raised again for future inflation: the year-3 visit stays at 1,833.80 THB before discounting.

When costs fall in many years, each year's cost is discounted by its own number of years and the results are added. In symbols, with $C_t$ the cost $t$ years after the valuation date and $r$ the yearly rate:

$$PV=\sum_{t}\frac{C_t}{(1+r)^{t}}$$

State whether costs fall at the start, the middle or the end of each year, because that changes $t$. If the visit fell half a year earlier, in the middle of the third year, $t$ would be 2.5 and the visit would be worth $1833.80/1.03^{2.5}=1703$ THB rather than 1,678 THB.

Health is discounted for the same reason as money: a year in good health now can be enjoyed now. If costs were discounted but health were not, delaying a programme would always look better, because its cost would shrink while its benefit stayed whole. So one year in good health that arrives at year 3 counts as $1/1.03^{3}=0.915$ of a year at the valuation date.

The rate matters too. At 0% the year-3 visit keeps its 1,834 THB, while at 5% a year it is $1833.80/1.05^{3}=1584$ THB. Reports therefore also show results at other rates, as here, so readers see how much the answer depends on the choice.

R code price_time.R
# The hospital's visit moved to 2026 prices, then valued at the start of 2026.
cost_2024 <- 1730                    # care used up, 2024 prices
cpi_ratio <- 106.0 / 100.0           # price index in 2026 over the index in 2024 (illustrative)
step <- 1.03                         # one year at 3% a year
cost_2026 <- cost_2024 * cpi_ratio
back <- cost_2026 / step^(1:3)       # the year-3 visit moved back one, two and three years
cat("Index ratio, then visit in 2026 prices (THB):", sprintf("%.2f", c(cpi_ratio, cost_2026)), "\n")
cat("1678.19 grown for 3 years at 3% (THB):", sprintf("%.2f", round(back[3], 2) * step^3), "\n")
cat("Moved back 1, 2 and 3 years (THB):", sprintf("%.2f", back), "\n")
cat("Factor over 3 years, then present value (THB):", sprintf("%.3f", step^3), round(back[3]), "\n")
cat("One healthy year in year 3, valued at the start:", sprintf("%.3f", 1 / step^3), "\n")
cat("At t = 2.5, then at 0%, then at 5% (THB):", round(cost_2026 / c(step^2.5, 1, 1.05^3)), "\n")
cat("Moved back 10 years (THB):", round(cost_2026 / step^10), "\n")
Output of the run price_time.log
Index ratio, then visit in 2026 prices (THB): 1.06 1833.80
1678.19 grown for 3 years at 3% (THB): 1833.80
Moved back 1, 2 and 3 years (THB): 1780.39 1728.53 1678.19
Factor over 3 years, then present value (THB): 1.093 1678
One healthy year in year 3, valued at the start: 0.915
At t = 2.5, then at 0%, then at 5% (THB): 1703 1834 1584
Moved back 10 years (THB): 1365
The year-3 visit: restated in 2026 prices, checked by growing 1,678.19 THB forward, valued at the start of 2026 at 3% a year, then one year of health, a mid-year visit and two other rates.
Move the share paid by the fund from 100% down to 0%: the patient's total moves from 1,100 to 3,100 THB and the fund's from 2,000 to 0, but society stays at 2,830 THB. Then raise the years to 10 and watch the hospital's 1,833.80 THB in 2026 prices shrink to 1,365 THB at the start of 2026 while the 2026 price itself does not change. The sliders start at the worked example: the fund pays the whole bill, the index ratio is 1.06, the rate is 3% and the visit is 3 years away.

A machine bought once, used for ten years

Go back to the 23 THB analyser share in the visit. The clinic bought its test analyser for 1,000,000 THB (in 2024 prices) and will use it for 10 years. Charging the whole price to the first year's patients would make that year look very expensive and the next nine look free, so the price is spread over the years of use.

The simplest spread is 1,000,000 / 10 = 100,000 THB a year. It misses one thing: the clinic paid the whole 1,000,000 THB at the start, so it gave up what that money could have done over the ten years, the opportunity cost again. Discounting shows the gap: ten payments of 100,000 THB, one at the end of each year, are worth only 853,020.28 THB at the start (each payment divided by 1.03 once for every year away, then added), less than the price.

The fair yearly amount is the one whose ten payments are worth exactly the 1,000,000 THB price at the start. Scaling the even payment up gives 100,000 × 1,000,000 / 853,020.28 = 117,230.51 THB a year, and the R code below checks that its ten payments, valued at the start, sum to 1,000,000 THB. This equal yearly amount is called the equivalent annual cost (EAC). In symbols, with price $K$, yearly rate $r$, $n$ years of use, payments at the end of each year and nothing left at the end:

$$EAC=K\times\frac{r}{1-(1+r)^{-n}}=1000000\times\frac{0.03}{1-1.03^{-10}}=117230.51$$

At a rate of 0% the formula would divide 0 by 0. With no return given up, the equal yearly amount is simply $K/n=1000000/10=100000$ THB, the even split.

Maintenance and running costs are added separately each year, unless they are already inside the price. If the machine can still be sold at the end, that resale value is taken off first.

The 117,230.51 THB a year is the same however many tests the analyser runs. This clinic runs 5,000 tests a year, so each test carries 23.45 THB, which the visit's costing rounds to 23 THB. A district hospital running the same machine for 1,000 tests a year would carry 117.23 THB per test. That is why a unit cost from a large hospital does not move unchanged to a small one.

One more test adds only its 450 THB kit, because the analyser is already paid for. That 450 THB is called the marginal cost, the cost of one more unit.

The average cost per test is 450 + 23.45 = 473.45 THB at 5,000 tests a year but 450 + 117.23 = 567.23 THB at 1,000 tests, so the average falls toward the marginal cost as tests rise.

Each decision needs one of the two. Buying a new machine needs the average; adding tests to a machine already bought may need only the 450 THB.

R code capital.R
# The clinic's test analyser: 1,000,000 THB in 2024 prices, 10 years of use.
price <- 1000000
rate <- 0.03                         # 3% a year
step <- 1.03
even_today <- sum(100000 / step^(1:10)) # ten end-of-year payments of 100,000, valued now
eac <- price * rate / (1 - step^(-10))
cat("Price split evenly over 10 years (THB a year):", sprintf("%.0f", price / 10), "\n")
cat("Ten payments of 100,000 valued at the start (THB):", sprintf("%.2f", even_today), "\n")
cat("Equivalent annual cost (THB a year):", sprintf("%.2f", eac), "\n")
cat("Its ten payments valued at the start (THB):", sprintf("%.0f", sum(eac / step^(1:10))), "\n")
cat("Analyser per test, 5,000 then 1,000 tests:", sprintf("%.2f", eac / c(5000, 1000)), "\n")
cat("With the 450 THB kit, 5,000 then 1,000:", sprintf("%.2f", 450 + eac / c(5000, 1000)), "\n")
Output of the run capital.log
Price split evenly over 10 years (THB a year): 100000
Ten payments of 100,000 valued at the start (THB): 853020.28
Equivalent annual cost (THB a year): 117230.51
Its ten payments valued at the start (THB): 1000000
Analyser per test, 5,000 then 1,000 tests: 23.45 117.23
With the 450 THB kit, 5,000 then 1,000: 473.45 567.23
The analyser's price spread over 10 years at 3% a year, checked by valuing the ten yearly amounts at the start, then shared per test with the 450 THB kit added.

What the model receives, and what to write beside it

The team can now give the model its input. The 1,678 THB above counted only the hospital's care. From society's view the visit uses up 2,830 THB in 2024 prices, which is 2,830 × 1.06 = 2,999.80 THB in 2026 prices. A visit at year 3 is worth 2,999.80 divided by 1.03 three times, which is 2,745.24 THB at the start of 2026 (year 0).

A number like 2,745.24 means nothing without its labels. Write beside it the perspective (society), the currency (Thai baht), the price year (2026), the valuation date (the start of 2026), the discount rate (3% a year) and when in each year costs fall. List the quantities and unit costs, where each came from, and how shared costs were divided. CHEERS 2022 (Consolidated Health Economic Evaluation Reporting Standards), the reporting checklist for health economic evaluations, lists these items for a published report [4].

The model also needs to know how many visits happen each year, which comes from incidence, the rate at which new cases arise (Incidence, Prevalence and the Right Denominator: The Epidemiology Beneath Cost-of-Illness and Markov Models). The costs are then set against the health gained, measured in the next article (QALY, DALY and the Utilities Behind Them: What Is Actually Being Measured) and against what the budget can afford (Cost-Effective Is Not Affordable, and Efficient Is Not Fair: Budget Impact and Equity).

R code model_input.R
# Society's cost of the year-3 visit, as the model needs it (illustrative).
society_2024 <- 1730 + 1100          # care used up plus what the patient gives up, 2024 prices
cpi_ratio <- 106.0 / 100.0
factor_3y <- 1.03^3
society_2026 <- society_2024 * cpi_ratio
cat("Society's visit in 2026 prices (THB):", sprintf("%.2f", society_2026), "\n")
society_pv <- society_2026 / factor_3y
cat("Society's year-3 visit valued at the start of 2026 (THB):", sprintf("%.2f", society_pv), "\n")
Output of the run model_input.log
Society's visit in 2026 prices (THB): 2999.80
Society's year-3 visit valued at the start of 2026 (THB): 2745.24
Society's cost of the year-3 visit: restated in 2026 prices, then valued at the start of 2026 (year 0).

Common pitfalls

  • Adding the bill to the resources

    Society's total becomes 4,830 THB instead of 2,830, because the 2,000 THB bill is counted on top of the care it paid for.

    Fix: Count each resource once and show payments in their own row.

  • Discounting a past price, or raising a future one

    A 2024 price is old, not future; and in a model in 2026 prices the year-3 visit already sits at 1,833.80 THB.

    Fix: Restate past prices with a price index; discount only amounts that fall after the valuation date.

  • Counting one afternoon twice

    The relative's afternoon appears as informal care and again as lost work.

    Fix: Decide which group each hour belongs to before putting a value on it.

Terms as we use them

Opportunity cost (ต้นทุนค่าเสียโอกาส)
The value of the best alternative given up, such as the next patient the nurse could have seen.
Micro-costing and gross costing (การคิดต้นทุนแบบละเอียดรายการและแบบรวม)
Valuing a visit item by item (1,730 THB), or dividing a clinic's yearly cost by all its visits (1,300 THB).
Perspective (มุมมองการวิเคราะห์)
Whose costs are added: the hospital's, the patient's, the payer's or society's.
Transfer (เงินโอน)
A payment that moves money between parties without using up a resource, such as the 2,000 THB bill.
Price year (ปีราคา)
The year whose money a cost is written in; 1,730 THB of 2024 is 1,833.80 THB of 2026 money.
Discounting (การปรับลดค่าตามเวลา)
Turning a future amount into its value today by dividing by 1 plus the yearly rate for each year away.
Present value (มูลค่าปัจจุบัน)
What a future amount is worth at the valuation date; for the hospital's care in the year-3 visit it is 1,678 THB.
Equivalent annual cost (ต้นทุนรายปีเทียบเท่า)
The equal yearly amount whose present value equals a machine's price, such as 117,230.51 THB a year for a 1,000,000 THB machine used for 10 years.

References

  1. Drummond MF, Sculpher MJ, Claxton K, Stoddart GL, Torrance GW. Methods for the Economic Evaluation of Health Care Programmes. 4th ed. Oxford: Oxford University Press; 2015. ISBN 9780199665884
  2. Sanders GD, Neumann PJ, Basu A, Brock DW, Feeny D, Krahn M, Kuntz KM, Meltzer DO, Owens DK, Prosser LA, Salomon JA, Sculpher MJ, Trikalinos TA, Russell LB, Siegel JE, Ganiats TG. Recommendations for conduct, methodological practices, and reporting of cost-effectiveness analyses: Second Panel on Cost-Effectiveness in Health and Medicine. JAMA. 2016;316(10):1093-1103. doi:10.1001/jama.2016.12195
  3. Chaikledkaew U, Kittrongsiri K. Guidelines for health technology assessment in Thailand (second edition) - the development process. J Med Assoc Thai. 2014;97 Suppl 5:S4-S9. https://pubmed.ncbi.nlm.nih.gov/24964693/
  4. Husereau D, Drummond M, Augustovski F, de Bekker-Grob E, Briggs AH, Carswell C, Caulley L, Chaiyakunapruk N, Greenberg D, Loder E, Mauskopf J, Mullins CD, Petrou S, Pwu RF, Staniszewska S. Consolidated Health Economic Evaluation Reporting Standards 2022 (CHEERS 2022) statement: updated reporting guidance for health economic evaluations. BMJ. 2022;376:e067975. doi:10.1136/bmj-2021-067975

The series, in learning order

  1. Health Economics Series Guide: Read the Evidence Before the Costs
  2. Incidence, Prevalence and the Right Denominator: The Epidemiology Beneath Cost-of-Illness and Markov Models
  3. Design, Model and Estimand: What Each Study Design Can Actually Estimate
  4. Risk Ratio, Odds Ratio, Risk Difference and NNT: One 2×2 Table, Four Answers
  5. The Hazard Ratio Is Not a Risk Ratio: Proportional Hazards, Restricted Mean Survival Time and Model Inputs
  6. Chance, Bias and Confounding: Why an Association Is Not Yet a Treatment Effect
  7. Beyond the Evidence Pyramid: GRADE Certainty and Choosing Effectiveness Inputs for Economic Models
  8. From Sensitivity to Cost per Case Detected: Predictive Values, Prevalence and the Economics of Screening
  9. Whose Cost, in Which Year? Perspective, Opportunity Cost, Inflation and Discounting (this article)
  10. QALY, DALY and the Utilities Behind Them: What Is Actually Being Measured
  11. ICER, Dominance and the Cost-Effectiveness Plane: Reading the Thai Threshold of 160,000 Baht per QALY
  12. Decision Trees, Markov Cohorts and Probabilistic Sensitivity Analysis: How a Model Turns Evidence into a Decision
  13. Cost-Effective Is Not Affordable, and Efficient Is Not Fair: Budget Impact and Equity
  14. Parameter Sourcing, Reference Cost Lists and Utility Catalogues When Local Data Are Sparse
  15. Early Health Technology Assessment, Headroom Pricing and Benefit-Package Decisions
  16. Communicating Health Economic Evidence: From Model Outputs to Policy Briefs

Key takeaways

  • A cost is what was given up: the visit used up 1,730 THB of care, whatever the 2,000 THB bill says.
  • The perspective decides what is added: 1,730 THB for the hospital, 1,100 or 3,100 for the patient, 2,000 for the fund and 2,830 for society, because the bill is a transfer.
  • Restate past prices in one price year with a price index: 1,730 THB of 2024 is 1,833.80 THB of 2026 money.
  • Discount future amounts to the valuation date: at 3% a year the hospital's year-3 care is worth 1,678 THB at the start of 2026 (year 0); a past price is never discounted.
  • Spread equipment with the same rate: a 1,000,000 THB analyser used for 10 years costs 117,230.51 THB a year, not 100,000.

Related in the wiki: Incidence, Prevalence and the Right Denominator: The Epidemiology Beneath Cost-of-Illness and Markov Models · QALY, DALY and the Utilities Behind Them: What Is Actually Being Measured · ICER, Dominance and the Cost-Effectiveness Plane: Reading the Thai Threshold of 160,000 Baht per QALY · Cost-Effective Is Not Affordable, and Efficient Is Not Fair: Budget Impact and Equity

0
Message for International and Thai ReadersUnderstanding My Medical Context in ThailandRead more →Message for International and Thai ReadersUnderstanding My Broader Content Beyond MedicineRead more →

Comments

No comments yet. Be the first to share your thoughts.

Sign in to comment