Feature Registry: Minimum Viable Template
An interactive, team-ready feature registry entry form that captures canonical definitions, provenance, transformation links, validation and monitoring notes, ownership, freshness, privacy sensitivity, and onboarding steps — making features discoverable, reusable, and governable.
This form captures a minimum viable, operational feature record suitable for discovery, reuse, governance, and handoff between analytics and engineering teams. Use one submission per distinct feature (canonical name + definition). Provide examples, links to code or repo, and practical notes that reduce rework, prevent leakage, and speed productionization.
The registry entry emphasizes reproducibility (canonical SQL or transformation), ownership, freshness, validation evidence, monitoring signals, and special risks such as privacy or distributional bias.
", "SubmitLabel": "Save Feature Entry", "SuccessMessage": "Feature saved to the registry. Use the registry index to search, edit, or export entries. Consider adding a follow-up validation test if this is a new production feature.", "DataType": "FeatureRegistryEntry", "SchemaVersion": "1.0", "Fields": [ { "Key": "feature_name", "FieldType": "text", "Label": "Feature name (canonical)", "HelpText": "A short canonical name used across pipelines and docs (snake_case recommended). E.g., user_purchase_rate", "Required": true }, { "Key": "short_description", "FieldType": "textarea", "Label": "Short description", "HelpText": "Two or three sentences describing what the feature measures and why it's useful.", "Required": true }, { "Key": "canonical_formula_sql", "FieldType": "textarea", "Label": "Canonical formula or SQL", "HelpText": "Representative SQL, pseudocode, or formula that clearly defines how the feature is computed. Include any key joins, filters, windowing, or aggregations so others can reproduce it.", "Required": true }, { "Key": "transformation_code_repo", "FieldType": "text", "Label": "Transformation code / repo link", "HelpText": "Link to the canonical transformation, feature pipeline, notebook, or feature store entry (git, artifact, or feature-store URI).", "Required": false }, { "Key": "source_tables", "FieldType": "textarea", "Label": "Primary source tables / streams", "HelpText": "List the authoritative source tables, streams, APIs, or external datasets with schema versions if applicable.", "Required": true }, { "Key": "source_columns", "FieldType": "textarea", "Label": "Source columns used", "HelpText": "List the specific columns or fields used and any column-level transformations (e.g., normalization, encoding).", "Required": false }, { "Key": "update_cadence", "FieldType": "select", "Label": "Update cadence", "HelpText": "How often this feature is refreshed or recomputed in production.", "Required": true, "Options": [ {"Value": "realtime", "Label": "Real-time / streaming"}, {"Value": "hourly", "Label": "Hourly"}, {"Value": "daily", "Label": "Daily"}, {"Value": "weekly", "Label": "Weekly"}, {"Value": "monthly", "Label": "Monthly"}, {"Value": "ad_hoc", "Label": "Ad-hoc / one-off"} ] }, { "Key": "owner", "FieldType": "text", "Label": "Feature owner (team/person)", "HelpText": "Team, role, or person responsible for the feature's correctness, freshness, and monitoring (include preferred contact/email).", "Required": true }, { "Key": "version", "FieldType": "text", "Label": "Current version", "HelpText": "Semantic version, commit hash, or date-based versioning for the canonical definition.", "Required": false }, { "Key": "last_validated_date", "FieldType": "text", "Label": "Last validated date", "HelpText": "Date when this feature's definition and sample distribution were last reviewed (ISO YYYY-MM-DD).", "Required": false }, { "Key": "sample_distribution_summary", "FieldType": "textarea", "Label": "Sample distribution summary / example", "HelpText": "Short summary of observed distribution (mean, median, skew, common ranges) and any known edge cases. Attach or link to a sample dataset if available.", "Required": false }, { "Key": "typical_range_min", "FieldType": "number", "Label": "Typical range — min", "HelpText": "Numeric minimum typically observed (if applicable). Useful for automated sanity checks.", "Required": false }, { "Key": "typical_range_max", "FieldType": "number", "Label": "Typical range — max", "HelpText": "Numeric maximum typically observed (if applicable).", "Required": false }, { "Key": "expected_cardinality", "FieldType": "select", "Label": "Expected cardinality / cardinality class", "HelpText": "Helps engineers choose storage and materialization strategies.", "Required": false, "Options": [ {"Value": "low", "Label": "Low (few distinct values)"}, {"Value": "medium", "Label": "Medium"}, {"Value": "high", "Label": "High (many distinct values)"} ] }, { "Key": "training_inclusion_rules", "FieldType": "textarea", "Label": "Inclusion rules for model training", "HelpText": "Conditions or filters used to include the feature in training datasets (e.g., time windows, population filters). Note how to avoid label leakage.", "Required": false }, { "Key": "serving_inclusion_rules", "FieldType": "textarea", "Label": "Inclusion rules for serving", "HelpText": "Conditions or logic applied when computing or using the feature at inference/serving time.", "Required": false }, { "Key": "known_biases_coverage_gaps", "FieldType": "textarea", "Label": "Known biases or coverage gaps", "HelpText": "Document known limitations — demographic, geographic, device, or business-segment gaps — and recommended mitigations.", "Required": false }, { "Key": "label_shift_risk", "FieldType": "yesno", "Label": "High risk of label/feature shift?", "HelpText": "Quick flag that indicates whether this feature is likely to shift over time and should be monitored closely.", "Required": false }, { "Key": "privacy_sensitivity", "FieldType": "select", "Label": "Privacy / sensitivity classification", "HelpText": "Indicate whether PII or regulated data is involved and what handling constraints apply.", "Required": true, "Options": [ {"Value": "public", "Label": "Public / non-sensitive"}, {"Value": "internal", "Label": "Internal"}, {"Value": "sensitive", "Label": "Sensitive (restricted use)"}, {"Value": "restricted", "Label": "Restricted / regulated"} ] }, { "Key": "pii_flag", "FieldType": "yesno", "Label": "Contains PII?", "HelpText": "Yes if the feature directly or indirectly includes personally identifying information.", "Required": true }, { "Key": "downstream_models", "FieldType": "textarea", "Label": "Downstream models / consumers", "HelpText": "List models, dashboards, decision systems, or reports that rely on this feature (include links if possible).", "Required": false }, { "Key": "monitoring_metrics", "FieldType": "textarea", "Label": "Suggested monitoring metrics", "HelpText": "E.g., freshness lag, null rate, distribution drift tests, cardinality changes, sudden spikes. Include alert thresholds if known.", "Required": false }, { "Key": "validation_results_summary", "FieldType": "textarea", "Label": "Validation / performance summary", "HelpText": "Brief summary of validation results that support the feature's usefulness (e.g., feature importance, AUC lift, ablation study notes). Link to notebooks or experiments.", "Required": false }, { "Key": "lineage_notes", "FieldType": "textarea", "Label": "Lineage and related features", "HelpText": "Notes about derivation, parent features, or related features that may be duplicates or alternatives.", "Required": false }, { "Key": "tags", "FieldType": "textarea", "Label": "Tags / categories", "HelpText": "Comma-separated tags to aid discovery (e.g., user, engagement, finance, device).", "Required": false }, { "Key": "sample_dataset_reference", "FieldType": "text", "Label": "Sample dataset or snapshot link", "HelpText": "Link to a small sample data file, dashboard, or storage path used for QA or review.", "Required": false }, { "Key": "onboarding_steps", "FieldType": "textarea", "Label": "Short onboarding / add-to-production checklist", "HelpText": "Practical steps for safely adding this feature to training or production: e.g., test queries, unit tests, monitoring setup, rollout plan, rollback criteria.", "Required": false }, { "Key": "notes_on_train_test_leakage", "FieldType": "textarea", "Label": "Train/test leakage risks and mitigation", "HelpText": "Describe potential leakage pathways (look-ahead bias, derived from label) and concrete mitigations used in experiments and production.", "Required": false }, { "Key": "additional_notes", "FieldType": "textarea", "Label": "Additional notes", "HelpText": "Any other practical guidance for users or engineers working with this feature.", "Required": false } ] }Discussion
Comments and conversation will live here.