SYNTHETIC DATA — single-run practice test, not real client data.

Each row is a sales/refund line. line_id is the unique business key. A transaction_id may legitimately contain multiple different line_ids. Remove repeated line_ids only when records are exact duplicates; quarantine conflicting line_ids instead of guessing.

All amounts are USD. Preserve the signed amount: sales positive, refunds negative. Strip a USD dollar sign and thousands commas if present, keeping the minus sign. Work to exact cents. Do not change signs or infer missing amounts.

Dates are YYYY-MM-DD or unambiguous dd-Mon-yyyy in English. Normalize to YYYY-MM-DD. Quarantine missing or invalid dates. Do not infer dates from adjacent rows. Date-based reports include only non-quarantined records.

Canonical product/category map: P-A = Accessories; P-H = Home; P-O = Office. Trim category whitespace and case-normalize to those canonical names. Fill a missing category only from this map. Quarantine unknown or conflicting product/category mappings. Categories must not be guessed.

Keep the original CSV unchanged. All data is fabricated for a controlled practice exercise. No external data or internet research is needed.
