Data Quality Incident Report & Triage Form
A structured, savable incident form to capture data quality defects, assess impact, guide rapid triage, assign ownership and SLAs, track remediation steps, and collect post-incident review actions.
{
"Title": "Data Quality Incident Report & Triage Form",
"IntroductionHtml": "
This form helps teams capture data quality incidents in a consistent way so detection-to-resolution time shrinks, ownership is clear, and corrective actions are tracked. Save the form to record the incident; your submissions can later be reviewed, triaged and reported. Provide as much context as possible — example records, affected datasets/pipelines, and links to alerts or dashboards materially speed investigation.
", "SubmitLabel": "Save Incident", "SuccessMessage": "Thank you — the incident has been recorded. Use the incident ID to link related tickets, communications, and remediation updates.", "DataType": "DataQualityIncident", "SchemaVersion": "1.0", "Fields": [ { "Key": "reporter_name", "Label": "Reporter (name & contact)", "FieldType": "text", "Required": true, "HelpText": "Who is reporting this? Include name and best contact (email or Slack)." }, { "Key": "reported_timestamp", "Label": "Reported timestamp (UTC)", "FieldType": "text", "Required": true, "HelpText": "Use ISO 8601 if possible (e.g., 2026-08-26T15:04:00Z)." }, { "Key": "affected_datasets_pipelines", "Label": "Affected dataset(s) / pipeline(s)", "FieldType": "textarea", "Required": true, "HelpText": "List dataset and pipeline names, unique IDs, and approximate locations (table, topic, bucket, schema). Include links to catalog entries if available." }, { "Key": "symptom_description", "Label": "Symptom description and example records", "FieldType": "textarea", "Required": true, "HelpText": "Describe what you observed (e.g., missing rows, unexpected nulls, schema mismatch), and paste 1–5 example records or query results that illustrate the issue." }, { "Key": "breadth_estimated_impact", "Label": "Breadth & estimated impact", "FieldType": "textarea", "Required": true, "HelpText": "Which systems, reports, models, customers, or business processes are affected? Quantify where possible (e.g., number of reports, customers, percent of rows)." }, { "Key": "severity", "Label": "Severity / Priority", "FieldType": "radio", "Required": true, "Options": [ {"Value": "sev1", "Label": "Sev 1 — Critical: blocks business or production (immediate action)"}, {"Value": "sev2", "Label": "Sev 2 — High: significant impact to reports/models/customers"}, {"Value": "sev3", "Label": "Sev 3 — Medium: localized impact; workaround exists"}, {"Value": "sev4", "Label": "Sev 4 — Low: minor or cosmetic issue"} ], "HelpText": "Choose the appropriate severity to drive SLA and escalation." }, { "Key": "initial_classification", "Label": "Initial classification (select all that apply)", "FieldType": "checkbox", "Options": [ {"Value": "schema_change", "Label": "Schema change / contract break"}, {"Value": "freshness_delay", "Label": "Freshness / latency"}, {"Value": "accuracy_values", "Label": "Accuracy / incorrect values"}, {"Value": "nulls_missing", "Label": "Unexpected nulls / missing rows"}, {"Value": "duplicates", "Label": "Duplicates"}, {"Value": "pipeline_failure", "Label": "Pipeline / job failure"}, {"Value": "upstream_source", "Label": "Upstream source issue"}, {"Value": "model_drift", "Label": "Model input drift"}, {"Value": "other", "Label": "Other (explain below)"} ], "HelpText": "Quickly classify the likely problem area to route to the right team." }, { "Key": "temporary_mitigations", "Label": "Temporary mitigations (what's in place now)", "FieldType": "textarea", "HelpText": "E.g., paused downstream jobs, switched to cached reports, disabled alerts, or manual workaround steps. Include who implemented the mitigation." }, { "Key": "owner", "Label": "Owner (team or person responsible for fix)", "FieldType": "text", "Required": true, "HelpText": "Assign an owner and provide contact. This owner coordinates the fix and updates status." }, { "Key": "sla_for_fix_hours", "Label": "Target SLA for fix (hours)", "FieldType": "number", "Required": true, "HelpText": "Enter expected time-to-fix in hours based on severity and business needs." }, { "Key": "status", "Label": "Current status", "FieldType": "select", "Required": true, "Options": [ {"Value": "open", "Label": "Open"}, {"Value": "in_triage", "Label": "In triage"}, {"Value": "mitigated", "Label": "Mitigated (temporary fix)"}, {"Value": "resolved", "Label": "Resolved"}, {"Value": "postmortem_pending", "Label": "Post-incident review pending"}, {"Value": "closed", "Label": "Closed"} ], "HelpText": "Update as the incident progresses." }, { "Key": "root_cause_hypothesis", "Label": "Root-cause hypothesis (initial)", "FieldType": "textarea", "HelpText": "State the most likely cause based on initial investigation. E.g., bad upstream file, schema change, transformation bug." }, { "Key": "root_cause_investigation_steps", "Label": "Root-cause investigation steps (planned / taken)", "FieldType": "textarea", "HelpText": "List the queries, checks, or tools you’ll run (or already ran) to confirm root cause — e.g., replay jobs, inspect source files, review change logs, check lineage." }, { "Key": "immediate_next_actions", "Label": "Immediate next actions (select applicable)", "FieldType": "checkbox", "Options": [ {"Value": "pause_downstream", "Label": "Pause downstream jobs / reports"}, {"Value": "replay_ingestion", "Label": "Replay ingestion / pipeline"}, {"Value": "rollback", "Label": "Rollback to previous good snapshot"}, {"Value": "apply_fix", "Label": "Apply hotfix to pipeline or transform"}, {"Value": "notify_stakeholders", "Label": "Notify stakeholders / customers"}, {"Value": "open_ticket", "Label": "Open engineering ticket"}, {"Value": "other_action", "Label": "Other (describe below)"} ], "HelpText": "Choose the actions you will or have taken to limit impact." }, { "Key": "related_links_alerts_tickets", "Label": "Related links, alerts, tickets (URLs or IDs)", "FieldType": "textarea", "HelpText": "Include links to dashboards, alert IDs, monitoring graphs, catalog entries, or external incident tickets." }, { "Key": "was_lineage_available", "Label": "Was data lineage available?", "FieldType": "yesno", "HelpText": "Helps measure observability coverage; if no, note where lineage is missing." }, { "Key": "was_rollback_performed", "Label": "Was rollback or snapshot restore performed?", "FieldType": "yesno", "HelpText": "If yes, include which snapshot/time and who performed it." }, { "Key": "post_incident_review_preventive_actions", "Label": "Post-incident review and preventive actions", "FieldType": "textarea", "HelpText": "Describe proposed preventative changes (tests, data contracts, monitoring, owner changes) to avoid recurrence. To be completed during post-incident review." }, { "Key": "communications_log", "Label": "Communications log (timeline of stakeholder updates)", "FieldType": "textarea", "HelpText": "Record what messages were sent, to whom, and when. Useful for audits and stakeholder confidence." }, { "Key": "final_resolution_summary", "Label": "Final resolution summary (to be completed when resolved)", "FieldType": "textarea", "HelpText": "Summarize the confirmed root cause, steps taken to remediate, and verification checks used to confirm resolution." }, { "Key": "consent_share_incident", "Label": "Allow sharing of this incident within the organization for learning?", "FieldType": "yesno", "HelpText": "Consent helps teams reuse lessons learned; sensitive incidents may be limited." } ] }Discussion
Comments and conversation will live here.