Amperage
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.
  • Timestamps and daylight savingtimestamps are the START of each interval. NEM12 files are in standard time (AEST) all year; most retailer CSVs are in local clock time. Once the bill identifies the network, its time-of-use windows are aligned to the file’s clock automatically (Ausgrid, Endeavour, Essential, the Victorian networks and SA Power Networks publish clock-time windows; Evoenergy and TasNetworks fix theirs in AEST). Until the network is set, windows apply to the stamps as recorded. The data-quality panel states which clock was detected and what was adjusted; the 23- and 25-hour transition days are folded to 24 slots.

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.

How the Upload Works

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. The import register is used for consumption; change it under Right meter? in the review. If a solar export register is present, Use for Existing Solar routes it there 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. The import register is used by default; pick a different one under Right meter? in the review — 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. Nothing is saved until it reads: pick the two columns in the form that appears, or use “Help me map this”, 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, 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 setup, recommendations, and the customer deck.Entering Bill DataHow to enter a customer bill in Amperage: AI extraction and its review, the Bill Period card, flat vs unbundled entry, Unit Price Mode, time-of-use windows with Match bill timings, demand charges, and the Network Tariff Review on Recommendation.Exporting and SharingHow Amperage projects leave the app: the Customer deck and Customer proposal, the Prepare and send review, the other exports in the ▾ menu, Edit Copy, and the Share with Customer web link.

See it on a real bill

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

Get started free