1. File formats and encodings The order source has 15 data records and eight columns. Decode using utf-8-sig to remove the optional leading mark. products.json has three lookup entries; plan_wide.csv has three category rows and two monthly values per category. These have different grains and schemas. Hash each source before editing a copy; never replace the original export.Independent extension: change one relevant input in a separate copy. Predict the result first, rerun the checks and explain any difference. Keep the supplied source unchanged. 2. Data types and analytical grain line_id is a required text line key; order_id is a parent identifier and may repeat. L005 has conflicting versions and must be investigated, while repeated O001 across distinct lines is expected. quantity is positive integer units; prices are EUR per unit with two decimal places. Sum line quantities or line values at line grain; count distinct order_id for orders, with rejected-line coverage disclosed.Independent extension: change one relevant input in a separate copy. Predict the result first, rerun the checks and explain any difference. Keep the supplied source unchanged. 3. Build a source inventory and dictionary The inventory should describe 15 raw order records, three product keys and six category-month plan cells after reshaping. Ask about export completeness, duplicate version authority and date locale. Acceptance requires preserved raw files, documented rules and explicit rejected records. May sales are unavailable in this snapshot; zero would require evidence of complete May coverage with no activity.Independent extension: change one relevant input in a separate copy. Predict the result first, rerun the checks and explain any difference. Keep the supplied source unchanged.