## Expected Output Format

Each system prediction must include the all fields listed in `train_QA.csv`
- **`id`**: The question ID (e.g., `q001`)
- **`question`**: The original question text
- **`answer`**: A clear natural-language response (e.g., `1438 lbs`, `Water consumption`, `TRUE`)'. 
  - If no answer is possible, use `"Unable to answer with confidence based on the provided documents."`
- **`answer_value`**: The normalized numeric or categorical value (e.g., `1438`, `Water consumption`, `1`)
  - If no answer is possible, use `is_blank`
  - Ranges should be encoded as `[low,high]`
  - Do **not** include symbols like `<`, `>`, `~` here. Those can be left in the clear natural language column.
- **`answer_unit`**: Unit of measurement (e.g., `lbs`, `kWh`, `gCO2`, `projects`, `is_blank`). 
- **`ref_id`**: One or more document IDs from `metadata.csv` that support the answer. 
- **`ref_url`**: One or more URL(s) of the cited document(s). 
- **`supporting_materials`**: Verbatim justification from the cited document (quote, table reference, figure reference, etc.). 
- **`explanation`**: Short reasoning describing why the cited material supports the answer. 

**Refer to to the train_QA.csv to study the expected formatting conventions.** 

## Scoring
Submissions are scored with a custom WattBot score that evaluates three fields for every question and returns a weighted accuracy between **0 – 1**:

| Component        | Weight | What counts as correct                                                                 |
|------------------|:------:|-----------------------------------------------------------------------------------------|
| **answer_value** | **0.75** | Matches the ground truth. Numeric answers must be within ±0.1% relative tolerance; categorical values (e.g. `TRUE`, `FALSE`, `Water consumption`) must match exactly after normalization. If a question is unanswerable, this column must contain `is_blank`. |
| **ref_id**       | **0.15** | Partial credit via Jaccard overlap between your ref_id  set and the ground-truth set (order ignored, case-insensitive). Use 'is_blank' if no evidence is available. |
| **is_NA**        | **0.10** | For truly unanswerable questions, your submission must mark all relevant fields (`answer_value`, `answer_unit`, `ref_id`, `ref_url`, `supporting_materials`) as `is_blank`. Any other combination scores 0 for this component. |

### Notes
- Only the answer_value and ref_id columns will be evaluated, but full responses are still expected in the other columns. You're encouraged to make the `explanation` field as useful and detailed as possible to help with debugging and calibrating your RAG pipeline. While short quotes or table references are acceptable, longer natural-language justifications and multi-sentence explanations are also encouraged.
- The public leaderboard reports the mean WattBot Score on a subset of the test set. A hidden portion is used after the competition deadline for final rankings.  

## Submitting solution

Upload a single **CSV** with the same columns and formatting conventions as train_QA.csv. 

Submit the file via **Make Submission**. The platform will run the metric script (ignoring the `explanation` column for scoring), return your score, and place your team on the public leaderboard.