The competition dataset is derived from **541,909 real-world transaction records** belonging to a UK-based, non-store online retail company, capturing customer activity between **01/12/2010 and 09/12/2011**.

Unlike sanitized academic datasets, this data intentionally preserves production-level noise. Your feature engineering pipeline will be just as critical as your model architecture.

### 📁 **Files Provided**

* **`training_classification.csv`**: Your primary workspace. Contains the full transaction history for the training cohort, alongside the `HighChurnRisk` target labels. Use this for exploratory data analysis (EDA), feature engineering, and model validation.
* **`testing_classification.csv`**: The out-of-sample transaction history. The target labels are withheld and used internally to calculate your leaderboard score. You must generate churn probability predictions for every customer in this file.
* **`sample_submission_classification.csv`**: A blueprint of the required submission format. Your final submission must match this exact structure, including row count and customer order.

---

### 🎯 **Target Variable Definition**

Your models must predict the **`HighChurnRisk`** variable (available only in `train.csv`). It is framed as a binary classification problem based on a strict 90-day cutoff:

* **1 (Churned):** The customer made *zero* purchases in the final 90 days of the dataset period.
* **0 (Active):** The customer made at least one purchase during the final 90 days.

---

### 🚧 **The Engineering Challenge: Data Quality Issues**

To succeed in this competition, you cannot simply feed raw data into an algorithm. You must design robust preprocessing strategies to handle the following intentional data anomalies:

* **Transaction Anomalies:** You will encounter cancelled orders (indicated by an `InvoiceNo` beginning with the letter 'C') as well as negative transaction quantities representing returns and refunds.
* **Structural Noise:** The dataset contains duplicate invoices, inconsistent country formatting, and malformed free-text product descriptions that will require careful parsing.
* **Missingness:** Approximately **25% of the transaction records are missing a `CustomerID**`. How you choose to impute, group, or discard these orphaned transactions will be a key differentiator on the leaderboard.

---