Member Junction
    Preparing search index...

    Configurable retraining/staleness policy (plan §12). All thresholds carry sensible defaults via DEFAULT_RETRAINING_POLICY so a caller can opt into just the knobs it cares about. The same policy drives staleness detection AND the retraining-trigger decision (a model is "stale" → it is a retraining candidate).

    interface RetrainingPolicy {
        cadenceAnchor: "lastScored" | "lastTrained";
        cadenceDays: number;
        comparisonMetric: string;
        dataVolumeGrowthThreshold: number;
        driftEnabled: boolean;
        promotionMargin: number;
    }
    Index

    Properties

    cadenceAnchor: "lastScored" | "lastTrained"

    Which timestamp the cadence trigger measures staleness against:

    • lastScored — the binding's LastScoredAt (how long since we last scored)
    • lastTrained — the model's TrainedAt (how long since the model itself was built) Defaults to lastTrained (the model going stale is what drives retraining).
    cadenceDays: number

    Cadence: a model is stale when its reference timestamp (last scored / last trained — see cadenceAnchor) is older than this many days. 0 or a negative value disables the cadence trigger.

    comparisonMetric: string

    Which holdout metric to compare challenger-vs-incumbent on (a key inside the model's HoldoutMetrics JSON). 'auto' picks a sensible default per problem type (roc_auc for classification, r2 for regression), falling back to the first numeric metric present on both. Higher-is-better is assumed for the built-in metrics.

    dataVolumeGrowthThreshold: number

    Data-volume: a model is stale when the target entity's CURRENT row count has grown by more than this fraction over the count at training time ((current - trained) / trained > threshold). e.g. 0.25 = "stale once 25% more rows exist than the model was trained on". 0 or negative disables it.

    driftEnabled: boolean

    Drift: whether to consult the injected IDriftDetector. When true and the detector reports drift over its own threshold, the model is stale.

    promotionMargin: number

    Promotion margin: a freshly-retrained challenger is only RECOMMENDED for promotion when its holdout metric beats the incumbent's by at least this absolute margin (e.g. 0.01 = "must be ≥1 point better"). Below the margin → HOLD. Never auto-promotes regardless (promotion is a separate signed-off Action / human gate — §6.4 / PS-AGENT-7).