Lessons

TOPIC 31 · IN-DEPTH TOPIC

MMS data model, tables and data quality

Build a traceable dataset from AEMO market tables.

Understand · 1 of 4Self-paced

Build a trustworthy interval table

MMS tables have documented keys, interval conventions and revisions. Joining one-to-many tables carelessly duplicates observations and money. Verify row counts and reconcile energy before calculating cost or revenue.

Read · work through an example · try it yourselfWatch the video

The lesson

4 chapters
Browse the chapters
01Specify the observation before opening a spreadsheet

A row needs a meaning before it needs a formula. Write a data contract: the entity, interval, units, time convention, publication cutoff and intended use. In the linked lab a row is one site's average demand over a five-minute interval ending at the timestamp. It is not a generator dispatch target, an instantaneous SCADA reading or a settlement statement. That distinction controls whether multiplying MW by duration is defensible.

Create a field dictionary alongside the raw files. The lab uses interval_end_aest, site, region, revision and average_mw. Average MW is multiplied by 5/60 hours to obtain MWh. AEST is fixed UTC+10 in this exercise. Do not apply a daylight-saving conversion merely because your spreadsheet or computer is set to a local civil timezone.

For actual NEM work, locate the applicable table definition through AEMO's MMS documentation and record the version used. Keys and field meanings are table-specific. The lab intentionally uses its own small schema: copying its revision rule into every real MMS table would be unsafe.

Watch the explanation

Supporting diagrams

Protect the result at every hand-off

The lab's row counts are control totals, not a measure of progress.

  1. 01 · Raw demand8 rows

    One exact repeat and one superseded revision

  2. 02 · Clean observations6 rows

    One site observation per five-minute interval

  3. 03 · Matched output6 rows

    Exactly one NSW1 price per interval

Synthetic teaching schema. A seven-row joined table would indicate a cardinality problem; real MMS keys and revision rules must be checked per table.