AmperageBeta
Getting started

Uploading Consumption Interval Data

Updated 20 August 2026·7 min read

What the interval upload accepts, and the rules it applies:

  • Vertical CSVa timestamp column and a kWh column; date and time may be split across two columns.
  • Horizontal CSVone row per day with interval readings across the columns.
  • Excelmulti-tab workbooks are fine — the sheet with the most data is used.
  • NEM12raw meter files work as-is; pick the import register, and an export (B) register can feed Existing Solar.
  • One register at a timestacked multi-register exports must have a single register chosen — summing registers overstates usage.
  • NMI checkthe file’s NMI is compared with the bill’s; a mismatch flags a possible wrong-site file.

If a file refuses to upload, the guide includes working examples and a Claude prompt that converts any messy export.

The consumption stage models everything — production, dispatch, the whole financial model — against the site's real interval data, so getting the upload right matters more than any other input. This guide covers every file format the upload accepts, working examples of each, and how to fix a file that refuses to go in.

What the Upload Accepts

Example Formats That Work

Vertical, combined timestamp

timestamp,kwh
2025-07-01 00:00,12.4
2025-07-01 00:30,11.9
2025-07-01 01:00,11.2

Why this works: one reading per row, an unambiguous timestamp, and a kWh column that reads as energy per interval rather than an average power figure.

Vertical, split date and time

date,time,usage_kwh
01/07/2025,00:00,12.4
01/07/2025,00:30,11.9
01/07/2025,01:00,11.2

Why this works: the mapper combines the two columns into one timestamp, and the day-first slashed date is recognised automatically.

Horizontal, one row per day

date,00:00,00:30,01:00,01:30
01/07/2025,12.4,11.9,11.2,10.8
02/07/2025,13.1,12.2,11.5,11.0

Why this works: the header row names each interval's start time, and every row is a complete day of readings.

NEM12 fragment

100,NEM12,202507011200,RETAILER,MDA
200,6123456789,E1,E1,E1,N1,01009,kWh,30,
300,20250701,12.4,11.9,11.2,10.8,...,A,,,20250702120000
900

Why this works: the 200-record names the NMI and register (E1 = import), and each 300-record carries a full day of readings — upload the file untouched, exactly as the meter or portal produced it.

Convert Any File with Claude

If a retailer or metering-portal export doesn't match any of the shapes above, paste the file (or its text) into Claude with this prompt and it will do the conversion for you:

You are converting an electricity interval-data file into the simplest format the
Amperage consumption upload accepts. I will give you a file (CSV, Excel export,
NEM12, or anything else from a retailer or metering portal).

Output ONLY a two-column CSV with a header row:
timestamp,kwh
- timestamp: YYYY-MM-DD HH:MM, the START of each interval, in local time.
- kwh: energy used in that interval in kilowatt-hours (energy per interval,
  NOT average power / kW).

Rules:
1. Keep only grid-import consumption. If the file has several registers or
   streams (e.g. E1 consumption, B1 solar export, K/Q reactive), keep the
   import (E) register only. NEVER add registers together.
2. If the file covers more than one meter or NMI, keep only one (tell me which
   you kept). Never mix NMIs.
3. If you must change interval length, SUM the readings into the coarser
   interval — never average them. Do not invent finer intervals.
4. Preserve every interval in chronological order. Do not fill gaps with
   invented data; just leave missing intervals out.
5. Plain numbers only: full stop as the decimal separator, no thousands
   separators, no units in cells, no negative consumption (if consumption is
   negative, you probably picked an export or net stream — stop and tell me).
6. No footer/summary rows, no blank rows, no metadata rows.

Before the CSV, state in one line: which column/register you used, the interval
length, and the date range. Then output the CSV in a code block.

When the Upload Complains

Multiple registers found

A raw NEM12 file carries more than one register — typically an import (E) and an export (B), sometimes reactive (K/Q) as well. Pick the import register for consumption; if a solar export register is present, the export-suggestion card lets you route it to Existing Solar in one click instead of discarding it.

Stacked registers in one column

This is the non-NEM12 version of the same problem: a single column mixes readings from more than one register or meter. Choose the one register that represents grid-import consumption in the register picker — summing them all together overstates usage, sometimes drastically.

Couldn't map the columns

The upload found data but couldn't confidently identify which column is the timestamp and which is the kWh reading — often because of unusual header names or an unfamiliar layout. Map the columns manually on the Map columns step, or use the “Help me map this” button, which asks Claude to read the file and suggest a mapping for you to check.

Unparseable timestamps

Some rows have a timestamp the parser can't read — a stray header row repeated partway down the file, or a footer/summary row with no real reading. The fix action lets you skip past the bad row and reprocess; if the whole file uses a date convention the parser hasn't recognised, the Claude prompt above will normalise it for you.

Register isn't an import register

The register selected measures something other than grid-import consumption — a solar export (B) or reactive (K/Q) register. Choose an E (import) register instead; if the file only has an export register, you're looking at a solar-generation export, which belongs on the Existing Solar section, not the Consumption upload.

NMI doesn't match the bill

The NMI printed on the interval file doesn't match the NMI on the bill already entered for this project. This is advisory only — it never blocks the upload — but it's worth a second look before you save, since it usually means the file was pulled for the wrong site.

Unsupported file

The file isn't a CSV, Excel workbook, or raw NEM12 file, or it uses a decimal-comma convention (e.g. 12,4 instead of 12.4). The upload deliberately refuses to guess between a decimal comma and a thousands comma — re-export the file with a full stop as the decimal separator, or run it through the Claude prompt above, which normalises numbers as part of the conversion.

New to the consumption stage? The first-project walkthrough covers where this upload sits in the flow, and how the modelling works explains what happens to the data once it's saved.

Related docs

Getting Started: Your First ProjectA start-to-finish walkthrough of building your first Amperage project: bill entry, consumption upload, solar and battery sizing, recommendations, and proposal export.Analysis vs Proposal ProjectsThe difference between Analysis and Proposal projects in Amperage: which stages each one has, which to start in, how to switch between them, and what carries over.How to Read the Pricing Build SheetHow the Amperage pricing build sheet totals itself: the order money accrues, upfront credits vs annual LGC revenue, margin vs markup, the $/W and $/kWh meters, and the section model.

See it on a real bill

Create a free account, load a customer’s bill, and watch the full model run on real numbers.