Skip to content

Comparing Observed Costs to Efficient Prices

Once notional funding has been estimated from activity data, the next analytical step is to compare those price signals against observed costs — typically sourced from general ledger, costing system extracts, or NHCDC submissions. This comparison reveals which service streams are over- or under-funded relative to the efficient price.

TermDefinition
Observed costThe actual expenditure incurred to deliver a service stream (e.g. admitted acute mental health).
Efficient price (NEP)The national price that would be paid for that activity under ABF, representing an efficient level of reimbursement.
Cost / price ratioObserved cost divided by notional NEP. A ratio > 1.0 suggests cost exceeds reimbursement; < 1.0 suggests reimbursement exceeds cost.
import pandas as pd
import numpy as np
from nwau_py.calculators import calculate_acute, AcuteParams
from nwau_py.pricing_constants import get_nep
np.random.seed(1)
n = 30
synthetic = pd.DataFrame({
"DRG": np.random.choice(["E62A", "E62B", "F62A", "F62B", "G02A"], size=n),
"LOS": np.random.randint(1, 12, size=n),
"ICU_HOURS": np.random.choice([0, 0, 0, 0, 2, 6], size=n),
"ICU_OTHER": 0,
"PAT_SAMEDAY_FLAG": 0,
"PAT_PRIVATE_FLAG": 0,
})
synthetic["ObservedCost"] = (
synthetic["LOS"] * np.random.uniform(1200, 2200, size=n)
+ np.random.normal(0, 500, size=n)
).clip(500)

The synthetic dataset adds an ObservedCost column — modelled as a function of length of stay with noise — representing the recorded cost per episode.

2. Calculate notional funding and cost ratio

Section titled “2. Calculate notional funding and cost ratio”
result = calculate_acute(synthetic, AcuteParams())
nep = get_nep("2025")
result["NotionalFunding"] = (result["NWAU25"] * nep).round(2)
merged = result[["DRG", "LOS", "NWAU25", "ObservedCost", "NotionalFunding"]].copy()
merged["cost_price_ratio"] = (
merged["ObservedCost"] / merged["NotionalFunding"].replace(0, np.nan)
).round(4)
merged.head(8)
for _, row in merged.iterrows():
ratio = row["cost_price_ratio"]
signal = (
"cost exceeds NEP"
if ratio > 1.05
else "NEP exceeds cost" if ratio < 0.95
else "near parity"
)
print(f"{row['DRG']}: ratio={ratio} ({signal})")
RatioInterpretation
< 0.80Cost well below efficient price — may indicate high efficiency or under-counting of costs.
0.80 – 1.20Cost near the efficient benchmark — typical range for well-priced services.
> 1.20Cost exceeds efficient price — may indicate inefficiency, complex case mix, or inadequate funding.
  • Synthetic data: This example uses toy data. Real costing studies must use validated, AHPCS-compliant observed costs.
  • Risk adjustment: No case-mix or risk adjustment is applied here. Real studies should adjust for remoteness, indigenous status, and complexity.
  • Jurisdiction variation: Costing maturity, data quality, and scope definitions differ across states and territories. Cross-jurisdictional comparisons should be interpreted with care.
  • Year alignment: Ensure the cost data and NEP pricing year are aligned — mismatched financial years will produce misleading ratios.
  • Episode-level noise: Single-episode cost ratios are noisy; aggregate to DRG, stream, or hospital level for reliable benchmarking.