1. Features and targets Allowed fields are distance_km, load_ratio and zone. Exclude identifiers and all post-dispatch outcome fields. dispatch_date orders observations for evaluation. actual_hours reveals late directly; post_delivery_rating is future information. Fitting a median on all 60 rows is another leakage path even if the target is excluded.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. Training and test data Training has 40 pilot rows and test has 20. Their IDs are disjoint and dates ordered. Fit medians, scaling and categories only on the training rows. The main test is reserved for Module 5; using it to choose a threshold would contaminate its role as a final estimate.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. Compare a simple model with a baseline The always-not-late baseline gets 13/20 = 65% accuracy and 0/7 = 0 recall. Precision is unavailable because it makes no positive predictions. The linear model improves MAE on this synthetic pilot; the stump provides no classification advantage at the fixed threshold. Report both findings.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.