Batch Import via CSV
Batch Import lets you upload hundreds of emission entries at once from a spreadsheet, saving time when migrating historical data or collecting data from multiple sites.
Download the template
Always start from the official template to avoid column header mismatches:
- Go to Carbon Tracking → Import → Download Template
- Choose the template variant:
- Scope 1 & 2 — energy, fuel, refrigerants
- Scope 3 — travel, supply chain, waste
- Full — all categories in one sheet, with an extra
scopecolumn
Open the file in Excel or Google Sheets.
Column reference
| Column | Required | Description |
|---|---|---|
category |
✅ | E.g. electricity, natural_gas, flights |
subcategory |
✅ | Specific activity code (see factor library) |
quantity |
✅ | Numeric activity amount |
unit |
✅ | Must match the subcategory's allowed units |
period_start |
✅ | ISO 8601 date: YYYY-MM-DD |
period_end |
✅ | ISO 8601 date — must be ≥ period_start |
location |
✅ if multi-site | Site or cost centre name (must exist in Settings) |
reference |
Optional | Invoice / meter-read reference |
notes |
Optional | Free text, max 500 chars |
factor_code |
Optional | Pin to a specific emission factor code |
Do not rename or reorder the header row.
Uploading the file
- Go to Carbon Tracking → Import → Upload CSV
- Drag your file onto the upload area, or click Browse
- Choose the Reporting period the file relates to (used for any rows with blank period columns)
- Click Validate
Validation
AlchemOS Positive validates every row before importing. You will see a table with:
- Valid rows (green) — ready to import
- Warning rows (amber) — will import but check the flag
- Error rows (red) — will not import; correction required
Common errors:
| Error | Fix |
|---|---|
| Unknown subcategory | Use the factor library to find the correct code |
| Unit mismatch | Confirm the unit is valid for the subcategory |
| Invalid date | Use YYYY-MM-DD format |
| Duplicate entry | A matching entry already exists for the same period |
| Unknown location | Create the location in Settings first |
Download the validation report to see all errors annotated in a new spreadsheet.
Completing the import
Once all red-row errors are resolved, click Import N rows. A progress bar shows the import status.
On completion you see:
- Total rows imported
- Rows skipped (warnings that were opted out)
- Link to the new entries in the entry list
Imported entries are created in Draft state by default. Bulk-submit them for approval from the entry list.
Re-importing / updating existing entries
The importer checks for duplicate entries using (subcategory, period_start, period_end, location). If a match is found:
- Skip (default) — leave the existing entry unchanged
- Update — overwrite quantity and notes (creates a revision record)
- Create duplicate — useful when the same activity appears at multiple cost centres
Select your preferred strategy in the import settings before clicking Import.
Limits
| Limit | Value |
|---|---|
| Max file size | 25 MB |
| Max rows per file | 50,000 |
| Max imports per day | 10 (Standard plan), 100 (Pro), unlimited (Enterprise) |