Skip to main content

Value of Perspective: Quantifying Decision Discordance in Health Economic Evaluation

CI codecov PyPI DOI OSF Python License Code style: ruff

A proof-of-concept framework for quantifying the Value of Perspective (VoP) in health economic evaluation. This project uses published economic evaluations from the Aotearoa New Zealand context to measure the decision impact of choosing between health system and societal perspectives.

The Value of Perspective Concept

When decision-makers evaluate health interventions, the choice of analytical perspective can lead to different conclusions:

  • Health System Perspective: Includes only direct healthcare costs (hospitalisations, medications, clinical visits)
  • Societal Perspective: Additionally includes productivity losses, caregiver burden, and broader social costs

The Value of Perspective (VoP) quantifies the potential loss from decision discordance—when the two perspectives yield conflicting cost-effectiveness conclusions. This serves as:

  1. A trigger threshold: Identifying when perspective choice materially affects recommendations
  2. A quantitative measure: Expressing opportunity cost in monetary terms (NZ$/QALY lost)

Key Features

Category Feature Description
Core Analysis Cost-Effectiveness Analysis Validated Markov cohort models with proper discounting and half-cycle correction
Perspective Comparison Side-by-side health system vs societal ICER calculations
Decision Discordance Automated detection of conflicting recommendations
Value of Perspective Quantified loss from adopting narrower perspective
Equity Analysis Distributional CEA Gini coefficient and Atkinson index (multiple ε values)
Subgroup Analysis Recursive CEA across population segments
Equity Weighting Customisable weights for disadvantaged groups
Uncertainty Probabilistic SA Monte Carlo simulation with distribution sampling
EVPI/EVPPI Expected value of perfect (partial) information
Sobol Analysis Variance-based global sensitivity indices
Threshold Analysis Decision-critical parameter ranges
Visualisation CE Planes Incremental cost-effectiveness scatter plots
CEAC/CEAF Acceptability curves and frontiers
Tornado Diagrams One-way, two-way, and three-way DSA
Lorenz Curves Health inequality visualisation
Reporting CHEERS 2022 Consolidated Health Economic Evaluation Reporting Standards
Parameter Tables Transparent documentation of assumptions and sources
Policy Briefs Executive-level decision summaries
Infrastructure Budget Impact Analysis Multi-year projections (1-10 years) with discounting
Snakemake Pipeline Reproducible workflow orchestration
Comprehensive Testing 184 tests with 95%+ coverage

Case Studies from Aotearoa New Zealand

This framework was developed using published economic evaluations relevant to the NZ healthcare context:

  1. HPV Vaccination - Societal benefits include productivity gains from cancer prevention
  2. Smoking Cessation - Broader costs captured through absenteeism and family impact
  3. Hepatitis C Treatment - Reduced transmission creates societal value beyond direct healthcare

Quick Start

Installation

pip install vop-poc-nz

Basic Usage

from vop_poc_nz import run_cea

# Run analysis from both perspectives
health_system = run_cea(params, perspective="health_system")
societal = run_cea(params, perspective="societal")

# Calculate Value of Perspective
from vop_poc_nz.discordance_analysis import calculate_decision_discordance

discordance = calculate_decision_discordance(
    "HPV Vaccination",
    params,
    wtp_threshold=50000
)

if discordance["discordant"]:
    print(f"Decision discordance detected!")
    print(f"Value of Perspective: ${discordance['loss_from_discordance']:,.0f}")
    print(f"Equivalent to {discordance['loss_qaly']:.2f} QALYs lost")

Snakemake Pipeline

For reproducible full analysis:

snakemake -c1

Directory Structure

vop_poc_nz/
├── src/vop_poc_nz/               # Source package
│   ├── cea_model_core.py         # CEA Markov model
│   ├── discordance_analysis.py   # Value of Perspective calculations
│   ├── dcea_equity_analysis.py   # Distributional CEA
│   ├── value_of_information.py   # EVPI/EVPPI analysis
│   ├── sobol_analysis.py         # Global sensitivity
│   ├── dsa_analysis.py           # Deterministic sensitivity analysis
│   ├── bia_model.py              # Budget impact analysis
│   ├── visualizations.py         # Publication-quality plots
│   └── parameters.yaml           # Model parameters
├── tests/                        # Unit tests (pytest)
├── docs/                         # Documentation
├── output/                       # Generated outputs
└── Snakefile                     # Workflow definition

Key Outputs

Tables (CSV)

  • comparative_icer_table.csv - Health System vs Societal perspective comparison
  • value_of_perspective_table.csv - Discordance metrics by intervention
  • parameters_assumptions_sources_table.csv - Full transparency documentation
  • dcea_equity_results.csv - Subgroup analysis with equity metrics

Figures (PNG/PDF/SVG)

  • Perspective comparison planes
  • Decision discordance heatmaps
  • CEAC/CEAF curves by perspective
  • Tornado diagrams (1-way, 2-way, 3-way DSA)
  • Lorenz curves and equity impact planes

Methodological References

  • CEA: Drummond et al. (2015) - Methods for the Economic Evaluation of Health Care Programmes
  • Perspectives: Sanders et al. (2016) - Recommendations for Conduct of Cost-Effectiveness Analysis (Second Panel)
  • DCEA: Cookson et al. (2017) - Distributional Cost-Effectiveness Analysis
  • VOI: Claxton et al. (2001) - The Value of Information
  • CHEERS: Husereau et al. (2022) - CHEERS 2022 Reporting Guidelines

For detailed mathematical specifications, see FORMULAE.md.

Testing

pytest                              # Run all tests
pytest --cov=src --cov-report=html  # With coverage

Test coverage: 184 tests passing with 95%+ coverage

CI/CD

GitHub Actions workflows:

  • CI (.github/workflows/ci.yml): Testing across Python 3.10-3.13, linting, type checking
  • Release (.github/workflows/release.yml): PyPI publishing via Trusted Publishers (OIDC)

License

Apache License 2.0 - see LICENSE file for details.

Citation

If you use this framework in your research, please cite:

@software{mordaunt_2024_17759272,
  author       = {Mordaunt, Dylan A},
  title        = {Value of Perspective: Quantifying Decision Discordance in Health Economic Evaluation},
  year         = 2024,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.17759272},
  url          = {https://doi.org/10.5281/zenodo.17759272}
}

Research Data & Materials

Acknowledgments

  • Developed using published economic evaluations from the Aotearoa New Zealand context
  • Inspired by ISPOR and PHARMAC guidelines for health economic evaluation

Metadata

Release files for vop-poc-nz 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vop-poc-nz 0.1.8
File Size Uploaded
vop_poc_nz-0.1.8.tar.gz 148.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vop-poc-nz 0.1.8
File Interpreter ABI Platform
vop_poc_nz-0.1.8-py3-none-any.whl Python 3 none any Details

Total release size: 289.9 kB

Release files / vop_poc_nz-0.1.8.tar.gz

Download URL vop_poc_nz-0.1.8.tar.gz
Size 148.9 kB
Tags Source
SHA-256 checksum
How to use checksums
38cbfabf3d2047004d8b3d5fc4a7eca4f5f0f95adc9f696b62c99db8edaf48a4
BLAKE2b-256 checksum
How to use checksums
06c3acea72b23bdd30f01aa407e75a5908f3ac9cff149d0b5f365a0ed844ca45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 29, 2025.

Transparency log

Release files / vop_poc_nz-0.1.8-py3-none-any.whl

Download URL vop_poc_nz-0.1.8-py3-none-any.whl
Size 141.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b032e931b6b8fc81eccda2cb49aceb1649222cb06d9262284c42bab976f8328
BLAKE2b-256 checksum
How to use checksums
8788e0b3db853dcfc9a036e8ae83e3e565c2848e7eb3b3f42fe6484420090304
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 29, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.8 This release

2 release files

0.1.7

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page