# TwoCutoff News

## TwoCutoff 0.1.0 (2026-06-06)

### New Features
- Added `low_pct` and `high_pct` arguments to `derive_cutoffs_percentile()` for flexible percentile specification (instead of hardcoded 80th/20th).
- Added `loess_span` argument to `derive_cutoffs_sensspec()` to allow user control of smoothing in LOESS regression.
- Added `risk_col` argument to `dca_analysis()` to support custom risk score column names.
- Dynamic lower bound for decision curve plots (`ylim_lower`) to avoid clipping when net benefit is negative.
- Biomarker name is now stored in result objects (`cutoff.percentile`, `cutoff.sensspec`) and referenced directly in print methods.

### Improvements
- `evaluate_performance()` documentation updated to clarify that indeterminate subjects are excluded from sensitivity/specificity calculations.
- Print methods (`print.cutoff.percentile`, `print.cutoff.sensspec`) now display biomarker name explicitly instead of inferring from dataset.
- Cleaner output from `adjust_score()` when `validate = FALSE` (no `test_auc` included).
- Expanded test coverage in `tests/testthat/`:
  - Validation and error handling in `adjust_score`.
  - Edge cases and fallback cutoffs in `derive_cutoffs_*`.
  - Performance metrics validation for both cutoff methods.
  - New test files for `compare_performance()`, `dca_analysis()`, and `plot_two_cutoff()`.

### Bug Fixes
- Fixed fragile biomarker inference in print methods.
- Improved error messages for missing biomarker or non-binary outcome in `adjust_score()`.

---

This NEWS file summarizes the major changes, new arguments, documentation updates, and test coverage improvements for this release.
