Skip to content

Change plan reference

Every key of change-plan.yaml. Unknown keys are an error. The same definitions are in schema/change-plan.schema.json, so editors with YAML schema support can complete and check plans as you type.

Top level

An approved change plan (FDA PCCP, EU AI Act Art. 43(4)). Every model update is checked against it.

Key Type Required Description
pccp_version 1.0 yes Version of this file format.
plan PlanHeader yes Identity, revision and authorisation of the plan.
anchor_version string yes The originally authorised model version. It never changes.
ledger_signing_key_sha256 string (pattern ^[0-9a-f]{64}$) or null no Fingerprint of the Ed25519 public key that must sign every ledger head. When given, checks refuse unsigned or differently signed ledgers.
anchor_predictions_sha256 string (pattern ^[0-9a-f]{64}$) or null no SHA-256 of the anchor's prediction file on the locked test set, recorded at authorisation. When given, the anchor file of every check must match it.
max_updates integer (>= 1) yes Updates allowed under this plan.
update_frequency UpdateFrequency yes Release frequency limit.
modifications list of Modification yes FDA Description of Modifications.
data_management DataManagement yes Modification Protocol, data management.
performance Performance yes Modification Protocol, performance evaluation.
update_procedures UpdateProcedures yes Modification Protocol, update procedures.
impact_assessment ImpactAssessment yes FDA Impact Assessment.
regulatory_map RegulatoryMap or null no Informative regulatory cross-reference.

AllCondition

True when every inner condition is true.

Key Type Required Description
all list of LeafCondition or AllCondition or AnyCondition or NotCondition yes Conditions that must all hold.

AnyCondition

True when at least one inner condition is true.

Key Type Required Description
any list of LeafCondition or AllCondition or AnyCondition or NotCondition yes Conditions of which at least one must hold.

CumulativeDrift

Bio-creep guard: the candidate is always compared with the anchor.

Key Type Required Description
metric auroc yes Metric tracked against the anchor.
max_drop_vs_anchor number (>= 0.0, < 1.0) yes Largest allowed drop below the anchor (CI lower bound).

DataManagement

FDA Modification Protocol, element 1: data management.

Key Type Required Description
training_inclusion LeafCondition or AllCondition or AnyCondition or NotCondition yes Condition every row of the training manifest must meet.
locked_test_set LockedTestSet yes The locked test set.
forbid_overlap_on list of string yes Keys that must never be shared by training and test rows.

ImpactAssessment

FDA third component: benefits and risks of the planned modifications.

Key Type Required Description
benefits string yes Expected benefits.
risks list of Risk yes Risks and mitigations.

LeafCondition

A single comparison of one field against a literal value.

Key Type Required Description
field string yes Column name in the training data manifest.
op eq or ne or lt or le or gt or ge or in or not_in or between or is_null or not_null yes Comparison operator from a closed list.
value string or integer or number or boolean or list of string or integer or number or boolean or null no Literal operand. A scalar for eq, ne, lt, le, gt, ge. A list for in and not_in. Two ordered values for between. Absent for is_null and not_null. Dates are written as YYYY-MM-DD strings.

LockedTestSet

The sequestered test set every update is evaluated on.

Key Type Required Description
sha256 string (pattern ^[0-9a-f]{64}$) yes Canonical fingerprint of the test set, from medagentrx fingerprint.
max_evaluations integer (>= 1) yes Looks at the locked test set allowed over the life of the plan.

Modification

One pre-specified modification (FDA Description of Modifications).

Key Type Required Description
id string (pattern ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$) yes Identifier referenced by model metadata.
type retrain_same_architecture or recalibrate or fine_tune yes Kind of change. A new architecture is never covered by a plan.
automatic boolean yes True if a pipeline or agent may trigger the change without a human.
scope global or local yes global: the same model for all sites. local: adapted per site.
description string or null no Optional free-text description of the modification.

NonInferiorityCriterion

The candidate must not be worse than a comparator by more than a margin.

Key Type Required Description
metric auroc or sensitivity_at_threshold or specificity_at_threshold or net_benefit yes Metric compared between the candidate and each comparator.
test non_inferiority yes Paired non-inferiority test.
vs list of previous or anchor yes Comparators: the previous version, the anchor, or both.
margin number (>= 0.0, < 1.0) yes Non-inferiority margin on the metric.
at_thresholds list of number (> 0.0, < 1.0) or null no Risk thresholds for net_benefit. Required for that metric only.

NotCondition

True when the inner condition is false.

Key Type Required Description
not LeafCondition or AllCondition or AnyCondition or NotCondition yes Condition that must not hold.

Performance

FDA Modification Protocol, element 3: performance evaluation.

Key Type Required Description
alpha_total number (> 0.0, < 1.0) yes Family-wise error rate across all updates under this plan.
alpha_spending bonferroni or alpha_investing yes How alpha_total is spent across updates.
operating_threshold number (> 0.0, < 1.0) yes Risk threshold at which sensitivity and specificity are assessed.
criteria list of NonInferiorityCriterion or WithinCriterion yes Acceptance criteria.
cumulative_drift CumulativeDrift yes Bio-creep guard against the anchor.
subgroups Subgroups or null no Subgroup criterion.
power Power or null no Power requirement.

PlanHeader

Identity of the authorised plan.

Key Type Required Description
id string (pattern ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$) yes Stable identifier of the plan.
revision integer (>= 1) yes Plan revision. Any change to the plan itself must bump this.
authorised string yes Date the plan was authorised, as YYYY-MM-DD.
device string yes Name of the device or model the plan governs.
intended_use_sha256 string (pattern ^[0-9a-f]{64}$) yes SHA-256 of the intended-use statement. A change means a new intended use.

Power

Power requirement for the locked test set.

Key Type Required Description
min_power number (> 0.0, < 1.0) yes Warn when power to detect the margin is lower.

RegulatoryMap

Informative cross-reference, rendered in the plan document.

Key Type Required Description
fda string or null no FDA reference.
eu list of string no EU references.

Risk

One risk of the planned modifications and its mitigation.

Key Type Required Description
risk string yes The risk.
mitigation string yes How the plan mitigates it.

Subgroups

Subgroup criterion applied to every level of every listed column.

Key Type Required Description
by list of string yes Subgroup columns in the prediction files.
metric auroc yes Metric compared within each subgroup.
max_drop number (>= 0.0, < 1.0) yes Largest allowed drop in any subgroup.
min_events integer (>= 1) yes Positives and negatives each needed, else insufficient evidence.
on_insufficient fail or warn yes What an insufficient-evidence subgroup does to the verdict.
multiplicity none or holm or bonferroni yes Correction across subgroups. 'none' is the intersection-union test: the update passes only if every subgroup is non-inferior, so each is tested at the full level. 'holm' and 'bonferroni' are stricter.

UpdateFrequency

How often updates may be released.

Key Type Required Description
max_per month or quarter or year yes Calendar period.
count integer (>= 1) yes Maximum number of updates in each period.

UpdateProcedures

FDA Modification Protocol, element 4: update procedures.

Key Type Required Description
require_model_card_update boolean yes True if each release must update the model card.
user_communication string yes How users are told about an update.
real_world_monitoring string yes How performance is monitored after release.

WithinCriterion

The candidate's metric must lie inside fixed bounds.

Key Type Required Description
metric calibration_slope or calibration_intercept yes Calibration measure of the candidate on the locked test set.
test within yes Bounds test on the candidate alone.
bounds list of any yes Inclusive lower and upper bound.