# 📂 Data Description

This competition provides a large-scale, multi-table dataset simulating a global e-commerce platform. The data reflects real-world challenges such as messy formats, missing values, inconsistent categorical encodings, and distribution shifts.

Participants must join and aggregate multiple relational tables to construct meaningful customer-level features.

---

## 🗂 File Overview

### 1️⃣ customers.csv

Contains customer-level demographic and profile information.

**Key columns include:**

- `customer_id` — Unique customer identifier  
- `age` — Customer age (may contain missing values or non-numeric entries)  
- `country_code` — Country code (inconsistent formatting may exist)  
- `region` — Geographic region identifier  
- `signup_date` — Date customer joined the platform  
- `loyalty_score` — Customer loyalty indicator (stored as text)  
- `email_open_rate` — Email engagement metric  
- `discount_usage_rate` — Discount usage behavior  
- `avg_review_score` — Historical review rating average  
- `referral_code` — High-cardinality referral identifier  
- `customer_tier` — Loyalty tier classification  
- `credit_limit` — Credit limit (stored as currency-formatted string)  
- Noise columns — Additional columns that may or may not provide predictive value  

---

### 2️⃣ sessions.csv

Contains session-level behavioral logs. Each row represents one browsing session.

**Key columns include:**

- `session_id` — Unique session identifier  
- `customer_id` — Foreign key to customers  
- `session_timestamp` — Timestamp of session  
- `session_duration` — Duration of session  
- `pages_viewed` — Number of pages viewed (may contain non-numeric values)  
- `cart_additions` — Number of items added to cart  
- `bounce_flag` — Session bounce indicator (stored in mixed formats)  
- `traffic_source` — Source of session traffic  
- `device_type` — Device used during session  
- `campaign_id` — Associated marketing campaign  
- `geo_ip_region` — IP-based geographic region  

This file contains millions of rows and requires aggregation at the customer level.

---

### 3️⃣ transactions.csv

Contains historical transaction records.

**Key columns include:**

- `transaction_id` — Unique transaction identifier  
- `customer_id` — Foreign key to customers  
- `transaction_timestamp` — Transaction time  
- `order_value` — Purchase amount (stored as currency-formatted string)  
- `items_count` — Number of items purchased  
- `payment_method` — Payment method used  
- `discount_applied` — Discount flag (mixed encoding)  
- `shipping_speed` — Shipping method  
- Additional noise columns  

---

### 4️⃣ marketing_campaigns.csv

Contains metadata about marketing campaigns.

- `campaign_id` — Unique campaign identifier  
- `campaign_type` — Campaign category  
- `campaign_budget` — Campaign budget (currency-formatted string)  
- `region_target` — Target region  
- `start_date`, `end_date` — Campaign active period  

---

### 5️⃣ geo_data.csv

Contains regional socioeconomic attributes.

- `geo_ip_region` — Geographic region key  
- `average_income` — Average regional income  
- `urban_ratio` — Urbanization level  
- `internet_penetration` — Internet access rate  
- `region_tier` — Regional classification  

---

### 6️⃣ train.csv

Contains training labels.

- `customer_id`
- `target` — Binary variable indicating whether the customer made a purchase in the next 30 days.

---

### 7️⃣ test.csv

Contains customer IDs for which participants must generate predictions.

- `customer_id`

---

## ⚠ Important Notes

- The dataset contains missing values.
- Some numeric values are stored as strings.
- Categorical values may contain inconsistent casing.
- High-cardinality features are present.
- Distribution differences may exist between training and test sets.
- Not all columns are predictive.
- Careful preprocessing and feature engineering are required.

---

## 🧠 Expected Workflow

Participants are expected to:

- Clean and normalize messy data
- Join relational tables
- Aggregate session and transaction-level features
- Engineer behavioral and time-based features
- Handle high-cardinality variables
- Implement robust cross-validation strategies
- Avoid data leakage

---

## 📤 Submission Format

Your submission file must contain:
customer_id,target 100001,0.8234 100002,0.1452
- `target` must be a probability between 0 and 1.
- Rows must match the `test.csv` file exactly.