STAGE 1: Define the contract
Concept: A data contract names fields, types, keys and acceptable failures.
Task: Specify the enrollment schema, required fields and rejection rules.
Acceptance: Document how corrected records differ from exact duplicates.

My assumptions:

My work / file link:

My checks and results:

What I changed:


STAGE 2: Build the local flow
Concept: Separate raw inputs from cleaned and report-ready outputs.
Task: Design or implement CSV ingestion into SQLite using staging and a stable key.
Acceptance: Retain the raw file and an audit record for each run.

My assumptions:

My work / file link:

My checks and results:

What I changed:


STAGE 3: Make reruns safe
Concept: Idempotency means repeating a run does not duplicate its intended effect.
Task: Process the same fixture twice and record row counts and key uniqueness.
Acceptance: A duplicate file does not create duplicate enrollments.

My assumptions:

My work / file link:

My checks and results:

What I changed:


STAGE 4: Handle failures visibly
Concept: A failed batch should leave a clear recovery path.
Task: Inject a missing field and invalid date; produce a quarantine report and rerun instructions.
Acceptance: Do not silently coerce invalid records into plausible values.

My assumptions:

My work / file link:

My checks and results:

What I changed:
