14 lines
1.1 KiB
Markdown
Raw Permalink Normal View History

2025-12-04 10:59:02 -05:00
# PD V3 Post-Processing
- **Inputs:** Raw/isotonic PD outputs and model T weight from the processing block.
- **Outputs:** Final weighted PD and assigned grade.
- **Artifacts:** `grade_cutoffs.csv` generated from the Weighted Grades Cutoff workbook tab.
- **Tests:** `python -m unittest sequence-3.pd_v3_post_processing.test_block`.
- **Signature:** Sequence-3 convention: `__main__` must keep an explicit typed parameter list covering every input (int/float/str) and build the record from those args before weighting/grades; keep aligned with the block schemas.
- **UAT tolerance:** Downstream sequence-3 UAT scripts treat post-processing mismatches within `1e-4` as equivalent to expected values.
- **PD inputs:** `pd_a`, `pd_b`, and `pd_t` must be provided as non-null numbers (per schema); post-processing raises if any are missing/null.
## Schema notes
- The request and response schemas for post-processing are treated as immutable contracts. They already describe flat scalar fields (plus the array `pd_scores`), so keep them as-is and never refactor them into dict-of-dicts/object-of-dicts—arrays of dicts remain acceptable.