Feature Store / Feature Engineering Readiness Checklist

Interactive checklist to evaluate whether candidate features and pipelines are ready for production feature stores and ML serving. Capture evidence, owner, notes, and an overall readiness score so teams can track and improve feature maturity over time.

{ "Title": "Feature Store / Feature Engineering Readiness Checklist", "IntroductionHtml": "

Use this checklist to evaluate whether a candidate feature and its pipelines are ready for production in a feature store and for ML serving. Record evidence links, owners, notes, and an overall readiness score so teams can track progress, reproduce decisions, and avoid mismatches between training and serving.

", "SubmitLabel": "Save readiness assessment", "SuccessMessage": "Readiness saved. You can revisit or update this assessment anytime.", "DataType": "feature_readiness_checklist", "SchemaVersion": "1.0", "Fields": [ { "Key": "feature_name", "Label": "Feature name", "FieldType": "text", "Required": true, "HelpText": "Canonical name used in catalog or code (for example, user.avg_30d_spend)." }, { "Key": "feature_id", "Label": "Feature identifier", "FieldType": "text", "Required": false, "HelpText": "Optional internal ID, tracking tag, or catalog GUID." }, { "Key": "environment", "Label": "Environment", "FieldType": "select", "Required": true, "HelpText": "Which environment does this assessment apply to?", "Options": [ {"Value": "production", "Label": "Production"}, {"Value": "staging", "Label": "Staging"}, {"Value": "development", "Label": "Development"} ] }, { "Key": "owner", "Label": "Feature owner (team/person)", "FieldType": "text", "Required": true, "HelpText": "Primary owner responsible for feature lifecycle, incidents, and handoffs." }, { "Key": "provenance", "Label": "Provenance & lineage documented", "FieldType": "radio", "Required": true, "HelpText": "Are source datasets, transformation steps, and lineage documented (diagrams, code links, or lineage system)?", "Options": [ {"Value": "yes", "Label": "Yes"}, {"Value": "partial", "Label": "Partially — needs more detail"}, {"Value": "no", "Label": "No"}, {"Value": "na", "Label": "Not applicable"} ] }, { "Key": "evidence_provenance", "Label": "Evidence URL — provenance", "FieldType": "text", "Required": false, "HelpText": "Link to docs, lineage graph, PR, or code proving provenance." }, { "Key": "freshness", "Label": "Freshness and latency requirements defined", "FieldType": "radio", "Required": true, "HelpText": "Are freshness SLAs, expected latency, and acceptable staleness defined for both training and serving?", "Options": [ {"Value": "yes", "Label": "Yes"}, {"Value": "partial", "Label": "Partially"}, {"Value": "no", "Label": "No"}, {"Value": "na", "Label": "Not applicable"} ] }, { "Key": "evidence_freshness", "Label": "Evidence URL — freshness SLAs", "FieldType": "text", "Required": false }, { "Key": "definition", "Label": "Unambiguous feature definition and units", "FieldType": "radio", "Required": true, "HelpText": "Is the feature definition precise (aggregation window, unit, normalization) so training and serving compute the same value?", "Options": [ {"Value": "yes", "Label": "Yes"}, {"Value": "partial", "Label": "Partial or ambiguous"}, {"Value": "no", "Label": "No"} ] }, { "Key": "evidence_definition", "Label": "Evidence URL — definition", "FieldType": "text", "Required": false }, { "Key": "data_quality", "Label": "Data quality SLAs and monitoring hooks present", "FieldType": "radio", "Required": true, "HelpText": "Are input data checks, thresholds, alerting, and remediation paths defined for data sources and computed feature values?", "Options": [ {"Value": "yes", "Label": "Yes"}, {"Value": "partial", "Label": "Partially"}, {"Value": "no", "Label": "No"} ] }, { "Key": "evidence_data_quality", "Label": "Evidence URL — data quality", "FieldType": "text", "Required": false }, { "Key": "serving_parity", "Label": "Serving and batch parity tests exist", "FieldType": "radio", "Required": true, "HelpText": "Are there automated tests that confirm batch (training) values and serving (online) values match within tolerances?", "Options": [ {"Value": "yes", "Label": "Yes"}, {"Value": "partial", "Label": "Partial or ad-hoc tests"}, {"Value": "no", "Label": "No"} ] }, { "Key": "evidence_serving_parity", "Label": "Evidence URL — parity tests", "FieldType": "text", "Required": false }, { "Key": "privacy", "Label": "Privacy & PII considerations addressed", "FieldType": "radio", "Required": true, "HelpText": "Are PII, consent, retention, minimization, and regulatory constraints identified and mitigations implemented?", "Options": [ {"Value": "yes", "Label": "Yes"}, {"Value": "partial", "Label": "Partial"}, {"Value": "no", "Label": "No"} ] }, { "Key": "evidence_privacy", "Label": "Evidence URL — privacy docs", "FieldType": "text", "Required": false }, { "Key": "versioning", "Label": "Versioning and rollback plan in place", "FieldType": "radio", "Required": true, "HelpText": "Is there a versioning scheme for feature definitions, migration plan, and rollback process for serving?", "Options": [ {"Value": "yes", "Label": "Yes"}, {"Value": "partial", "Label": "Partial"}, {"Value": "no", "Label": "No"} ] }, { "Key": "evidence_versioning", "Label": "Evidence URL — versioning", "FieldType": "text", "Required": false }, { "Key": "access_discoverability", "Label": "Access control and discoverability in catalog", "FieldType": "radio", "Required": true, "HelpText": "Is the feature discoverable in the catalog with metadata, owner, and access controls?", "Options": [ {"Value": "yes", "Label": "Yes"}, {"Value": "partial", "Label": "Partial"}, {"Value": "no", "Label": "No"} ] }, { "Key": "evidence_access", "Label": "Evidence URL — catalog entry", "FieldType": "text", "Required": false }, { "Key": "notes", "Label": "Notes and known risks", "FieldType": "textarea", "Required": false, "HelpText": "Capture risks, open actions, drift concerns, or contextual details reviewers should know." }, { "Key": "recommended_actions", "Label": "Recommended immediate actions", "FieldType": "textarea", "Required": false }, { "Key": "overall_readiness", "Label": "Overall readiness score", "FieldType": "scale", "Required": true, "HelpText": "Rate 1 (Not ready) to 5 (Ready for production)", "Options": [ {"Value": "1", "Label": "1"}, {"Value": "2", "Label": "2"}, {"Value": "3", "Label": "3"}, {"Value": "4", "Label": "4"}, {"Value": "5", "Label": "5"} ] } ] }

Discussion

Comments and conversation will live here.