How to Import NEM12 CSV into Solar Design Tools
A solar professional's import workflow for SolarProof, SolarPlus, Pylon, and OpenSolar.
Last Updated: 2026-08-05
Key Takeaways
- Raw NEM12 CSV is semi-structured Smart Meter Data. Your solar design tool usually needs a preparation step before it charts the file correctly.
- None of SolarProof, SolarPlus, Pylon, or OpenSolar requires NEM12 CSV. Each one accepts a range of interval formats, and each vendor can change that list.
- Reshape the file to Wide Format (one row per day per register) or Long Format (one row per interval). Both shapes are reported to load into all four tools.
- Carry the E1 and B1 register split down from the 200 metadata rows, so grid import and solar export stay separate in your Half-Hourly Data.
- These four tools generally expect twelve months of continuous Interval Data. Repair or zero-fill short gaps before you upload the file.
- Real half-hourly consumption can tighten a Solar Quotation to roughly 5–10% of actual. That sharpens a Solar Design Proposal and its battery sizing.
Why Raw NEM12 CSV May Not Load into Solar Design Tools
You have a customer's NEM12 CSV, and your solar design tool has either rejected it on upload or charted something that looks wrong. NEM12 is one of AEMO's internal data exchange formats. A DNSP or an Electricity Retailer supplies it because it is a well-defined format, it is readily available, and it holds Interval Data — not because design software prefers it.
None of SolarProof, SolarPlus, Pylon, or OpenSolar requires NEM12 CSV. Each one accepts several interval formats, and each vendor can change what it accepts in any release. Real Half-Hourly Data can pull a Solar Quotation to within roughly 5–10% of actual, against 10–20% for an estimated load profile.
Where a Raw NEM12 CSV Trips Up a Design-Tool Import
The NEM12 CSV Format was built for machines, not for a design tool's CSV importer. One file mixes several record types, and the columns do not line up. Our guide on how to understand the NEM12 CSV format breaks the record types down.
- Mixed record types: header (100), metadata (200), data (300), and event (400) rows share one file, so an importer that expects uniform columns can fail.
- No register label on the readings: E1 and B1 appear only on the 200 metadata rows, never on the 300 data rows that hold the values.
- No time-of-day headers: the 48 half-hourly values sit in sequence, with nothing to mark 00:30 from 23:30.
- Embedded metadata: you must strip the header, event, and end-of-file rows before a flat table can exist.
- Non-standard columns: these tools expect labelled date, time, and kWh columns that raw NEM12 does not provide.
Try our NEM12 CSV Spreadsheet Converter Tool
Wide Format vs Long Format for Solar Design Tools
Once the file is flat, you convert it to one of two shapes before import. As of 2026 both shapes are reported to load into all four tools. The choice is mostly about how much you want to filter and calculate afterwards.
- Wide Format: one row per day per register, with the 48 half-hourly readings as separate columns (00:30 through 24:00). Good for reading a daily load profile at a glance.
- Long Format: one row per interval, with date, time, and register repeated on every line. The most flexible shape for filtering E1 from B1 and for adding calculated columns.
Try our NEM12 CSV Spreadsheet Converter Tool
A converter that carries the register context down onto every reading saves the manual scripting this normally takes. Our free NEM12 CSV Spreadsheet Converter writes both shapes with labelled columns. The NEM12 Smart Meter Data Analyzer charts the file first, so you can find gaps before you import it.
| Tool | Requires NEM12 CSV? | Raw NEM12 CSV on upload (vendor-reported, 2026) | Interval lengths | Continuity expectation |
|---|---|---|---|---|
| SolarProof | No | Reported to auto-detect 20+ interval formats | 5 / 15 / 30-min | 12 months preferred, gaps flagged and extrapolated |
| SolarPlus | No | Reported to read NEM12 and NEM13, filtering 300 records | 1-min to 1-hr | Continuous series expected, or zero-filled |
| Pylon | No | Reported to take a CSV or .xlsx directly | 5 / 15 / 30-min | 12 months recommended |
| OpenSolar | No | Reported to take a header-matched CSV | 15 / 30 / 60-min | Complete 12 months expected |
These specifications are vendor-reported and current as of 2026, and each release can change them, so confirm them against the current help centre before a job. For a manual, spreadsheet-based version of the same reshape, see our guide on how to open NEM12 smart meter data in a spreadsheet, or browse our other how-to guides.
Importing a NEM12 CSV into SolarProof
SolarProof is typically the most forgiving of the four. Its own documentation reports that it auto-detects more than 20 interval formats, tells horizontal (NEM12-style) layouts from vertical (long-format) ones, works out the interval length, and sums to hourly. A raw NEM12 CSV often imports with no conversion at all.
Loading a smart meter CSV into SolarProof
- Upload the raw NEM12 CSV. Processing takes around 16 seconds, depending on file complexity (vendor-reported).
- If you supply less than twelve months, SolarProof is reported to extrapolate the missing months from weekday averages — acceptable for an early proposal, weaker for a final ROI report.
- Run the free interval data report to check the file before it reaches your proposal software.
Importing a NEM12 CSV into SolarPlus
According to its help centre, SolarPlus reads NEM12 and NEM13 files, and it can filter to the 300 interval records on import. It tends to be fussier about timing than SolarProof. The series is expected to be a continuous set of regular intervals that start on the hour.
Configuring a NEM12 CSV upload in SolarPlus
- Set the time-step to 0:30 for 30-minute Half-Hourly Data, or to 1:00 for hourly resolution.
- If the timestamps sit off the hour (11:02 rather than 11:00), shift them before upload, because the import can fail.
- Supply a full twelve-month series from your customer's smart meter CSV, or zero-fill the missing intervals.
- A 4-column CSV can also be imported, which suits consumption data you have already processed elsewhere.
Importing a NEM12 CSV into Pylon
Pylon's documentation reports that it takes a raw NEM12 CSV, or an .xlsx file, straight into its interval analysis feature. The same documentation reports that it then processes 5, 15, or 30-minute data into seasonal, monthly, weekly, and daily charts. Little format work is usually needed before upload.
Loading a smart meter CSV into Pylon
- Upload the raw NEM12 CSV. Pylon's documentation reports that it then sorts, filters, and charts the half-hourly data for you.
- Inspect the output charts before you trust them for battery sizing, because you do not control the conversion algorithm.
- Check the column requirements in Pylon's help centre (article 81) first if a smart meter CSV is rejected on import.
Importing a NEM12 CSV into OpenSolar
OpenSolar is typically the strictest of the four, and practitioner reports describe it as a common source of import errors. Its documentation lists support for 15, 30, and 60-minute data, in both vertical and horizontal shapes. The file is expected to be complete and formatted to the platform's own template.
Continuity first: a single missing interval or kWh value can make OpenSolar reject a smart meter CSV on import. Continuity matters more here than anywhere else, so a converter that zero-fills gaps is often the quickest fix.
Getting a NEM12 CSV accepted by OpenSolar
- Provide a full twelve months of continuous data — 8,760 hourly rows, or 365 × 48 rows for 30-minute intervals.
- Match the column headers to the template you download from the platform, because mismatched headers can fail the import.
- For 30-minute Wide Format, place 48 columns from the starting cell, so that one full day is covered.
Convert Your NEM12 CSV for Design-Tool Upload
Run the same short pre-flight on every file, whichever of the four tools you are importing into.
- Confirm the file covers twelve continuous months of Interval Data.
- Separate E1 from B1, so the tool reads grid import and solar export as two different series.
- Check that the interval length matches what the tool accepts — 5, 15, 30, or 60 minutes.
- Match the column headers to the template the tool supplies, where it supplies one.
- Chart the file once before upload, so that gaps and substituted readings show up first.
Where a file arrives with short gaps, our NEM12 CSV Spreadsheet Converter reshapes and fills it before you import it into OpenSolar. Related utilities sit among our free online tools. If you do not have the customer's file yet, our guide on how to download your smart meter data covers the DNSP portal and the NMI you will need.
Try our NEM12 CSV Spreadsheet Converter Tool
Frequently Asked Questions
- Do solar design tools require NEM12 CSV? SolarProof, SolarPlus, Pylon, and OpenSolar do not require it — NEM12 is the format your DNSP or retailer happens to supply, and each tool accepts a range of interval formats.
- Can I import a raw NEM12 CSV directly into Pylon? Often yes — Pylon's documentation reports that it takes a NEM12 CSV or .xlsx straight into its interval analysis and charts the half-hourly data automatically.
- Does SolarProof need the NEM12 CSV converted before import? Frequently not — SolarProof is documented as auto-detecting more than 20 interval formats, so a raw smart meter CSV often imports without any conversion.
- Why does OpenSolar keep rejecting my NEM12 CSV on import? The usual causes are a missing interval or a header that does not match OpenSolar's template, because its import is documented as intolerant of gaps.
- What time-step do I set when importing a smart meter CSV into SolarPlus? Its help centre specifies 0:30 for 30-minute Half-Hourly Data, or 1:00 for hourly, with every interval starting on the hour.
- Should I import in Wide Format or Long Format? Both shapes are widely accepted. Long Format is easier to filter E1 from B1 and to add calculated columns before import.
- Where do the E1 and B1 registers come from in a NEM12 CSV? They appear on the 200 metadata rows, so a converter carries them onto each 300 reading to keep grid import and solar export separate.
- Which NEM12 register is solar export? B1 is always solar export, while E1, E2, and E3 are always mains-grid import registers.
- How much data do solar design tools need to import? Twelve months of continuous Interval Data is the usual baseline. OpenSolar is documented as requiring it, while SolarProof can extrapolate short gaps.
- What interval lengths do these four tools accept? Vendor documentation reports 5, 15, and 30-minute data for SolarProof and Pylon, 15 to 60-minute for OpenSolar, and 1-minute to hourly for SolarPlus.
- What does an S quality flag mean for my Solar Quotation? S marks a substituted, estimated reading. Large blocks of substituted readings can skew the load profile behind your proposal.
- Can I upload NEM13 data to SolarPlus instead of NEM12? Its help centre reports support for both, but NEM13 holds accumulation data rather than Interval Data, so the resulting load profile is much coarser.
- How do I get a customer's NEM12 CSV in the first place? Download it from the customer's DNSP portal using their NMI, or request it from their retailer, which can take 10 or more business days.
- How accurate is a Solar Design Proposal built on imported interval data? Real half-hourly consumption can bring a quotation to within roughly 5–10% of actual, against 10–20% for an estimated profile.
Try our NEM12 CSV Spreadsheet Converter Tool
Glossary
- AEMO
- Australian Energy Market Operator — the body that administers the National Electricity Market and defines and maintains the NEM12 specification.
- B1
- In the NEM12 Format, the Meter Register code for Solar Export — electricity generated on site and fed back to the grid, typically measured in kWh.
- Check Digit
- The 11th digit of a full NMI — calculated from the first ten digits to detect transcription errors; some DNSP portals require it. Also called a 'Checksum'.
- CSV
- Comma-Separated Values — a plain text file in which each row is a record and fields are separated by commas.
- DNSP
- Distribution Network Service Provider - the company that owns and operates the physical poles and wires of the local electricity network, and usually provides the smart meter data portal. Not the same as your Electricity Retailer. See also: Electricity Retailer.
- E1
- In the NEM12 Format, the Meter Register code (or NMI Suffix) for the sole/main/primary mains grid import channel — electricity drawn from the network. Where there is No (Solar) Generation on site, this is the Total Consumption. Typically measured in kWh.
- Electricity Retailer
- The company that sells electricity to the consumer, issues the bill, and manages the account. Not the same as your DNSP (Distribution Network Service Provider) which owns and operates the network. See also: DNSP.
- Half-Hourly Data
- Interval data recorded every 30 minutes — 48 readings per register per day.
- Interval Data
- Energy readings recorded at fixed time steps — typically every 30 minutes (but sometimes 5 or 15 minutes on newer meters) rather than as a single billing total. This allows charging different Tariffs at different times of day or days of the week. See also: Time-of-Use (TOU) Tariff.
- kW
- KiloWatt — the standard unit of (Electrical) Power: 1,000 Watts of Power used continuously for one hour is equivalent to 1000 Watt-Hours or 1 KiloWatt-Hour of Energy. Power is not an Amount of Energy but a Rate of Energy Transfer. See also: kWh.
- kWh
- KiloWatt-Hour — the standard unit of (Electrical) Energy: 1,000 Watts of Power used continuously for one hour is equivalent to 1000 Watt-Hours or 1 KiloWatt-Hour. NEM12 CSV records Electricity Use in kWh. See also: kW.
- Load Profile
- The pattern of a site's electricity use over time, derived from its interval data. The granularity or resolution of the Profile is the Interval Length (eg. 30 Minutes, Hours), and is typically based on averages for a longer period (eg. Months, Seasons).
- Long Format
- A table shape with one row per interval — keys such as date, time, and register repeated on every row, making the data easy to filter, sort, and pivot. See also: Pivot Table.
- NEM
- The Australian National Electricity Market — the interconnected electricity grid covering Queensland, New South Wales, Victoria, South Australia, Tasmania and the ACT. Western Australia and the Northern Territory operate separate grids.
- NEM12
- The AEMO file format (version 12) for exchanging Interval Data from Smart Meters across the Australian National Electricity Market (NEM). NEM12 Format records the Amount of Energy per Time Interval in kWh. And also other types of data, using specific types of labelled rows or records (100, 200, 300, 400, 900) to record different types of data. This makes it a 'Semi-Structured' 'Non-Tabular' Format. See also: AEMO, NEM, kWh, Semi-Structured, Non-Tabular.
- NEM12 CSV
- A NEM12 File stored as comma-separated values — the form most DNSP and retailer portals distribute. See also: NEM12, CSV.
- NEM13
- The AEMO Format for accumulation (non-interval) meter data — a total per read period rather than time-stamped intervals.
- NMI
- National Metering Identifier — the unique 10-digit identifier for an electricity connection point (11 with the Check Digit), permanent to the property. Note that the electricity connection point identified by the NMI, typically has multiple NMI Suffixes, and can have multiple Physical Meters. See also: Check Digit, NMI Suffix.
- NMI Suffix
- In the NEM12 Format, the short two-character code (E1, E2, E3, B1, B2, Q1, K1) identifying a specific Meter Register for recording electricity flows on the mains electricity connection identified by that NMI — also called the Meter Register or Register Code. See also: NMI, NEM12.
- Non-Tabular
- Data that does not fit a single consistent grid — in NEM12's case because of its semi-structure, hierarchy and mixed-record layout.
- Pivot Table
- A spreadsheet feature that groups a long-format table by chosen keys and aggregates a numeric column (sum, average, minimum).
- Quality Flag
- In the NEM12 Format, a single-letter code on each interval reading showing how the value was obtained — e.g. A (Actual), E (Estimated), S (Substituted), F (Final Substitute). See also: NEM12.
- Semi-Structured
- A data format that follows strict syntactic rules (e.g. comma separation, defined record codes) but does not enforce a consistent column schema across all rows. NEM12 is a Semi-Structured Format. See also: NEM12.
- Time-of-Use (TOU) Tariff
- A tariff with different prices at different times of day or days of the week (Peak, Shoulder, Off-Peak).
- Wide Format
- A table shape with one row per day per Meter Register and one column per Time Interval — good for charting a Load Profile. See also: Load Profile.