Policy Configuration Guide

Governance policies are defined in a YAML file (inferpathio-policy.yaml) stored in your repository alongside your model training code. Each model has its own policy file.

Complete schema example

inferpathio-policy.yaml
# Inferpathio Policy Schema v2.1
model: credit-risk-v3     # required: model identifier
environment: production   # required: production | staging

retrain_trigger:
  psi_threshold: 0.08           # float, required if using PSI metric
  accuracy_floor: 0.91          # float 0-1, optional
  kl_threshold: 0.15            # float, optional
  min_prediction_volume: 1000   # int, min batch size to trigger
  evaluation_window_hours: 24  # int, rolling window for evaluation

approval:
  required: true              # boolean
  approvers:
    - role: ml-lead
      min_approvals: 1
    - role: compliance-owner
      min_approvals: 1
  timeout_hours: 24             # int, escalation trigger time
  escalation_role: platform-lead

pipeline:
  webhook_url: "${RETRAIN_WEBHOOK_URL}"
  timeout_hours: 6

auto_rollback:
  on_accuracy_drop: 0.03       # float, drop threshold to trigger
  within_hours: 1               # int, evaluation window post-deploy
  notify:
    - slack:#ml-alerts
    - pagerduty:ml-oncall

Field reference

retrain_trigger

At least one trigger condition is required when approval.required: true. If multiple conditions are specified, any one breach triggers an event (logical OR).

  • psi_threshold — Population Stability Index. Recommended range: 0.05–0.25. Below 0.1 = minor drift; above 0.2 = major drift (industry convention).
  • accuracy_floor — Model accuracy minimum (0–1). If accuracy drops below this value, triggers regardless of drift metric.
  • kl_threshold — KL divergence limit. Commonly 0.1–0.5 depending on model sensitivity.
  • evaluation_window_hours — Rolling window over which drift is measured. Default: 24h.

approval

  • required — If false, approved retrains fire automatically. Defaults to true.
  • approvers[].role — Role name must match a role defined in your Inferpathio RBAC configuration.
  • timeout_hours — After this duration without approval, the request escalates to escalation_role.