Skip to content

Monthly MMS dynamic table fetches fail from 2024-08 onward (PUBLIC_ARCHIVE#...) while older PUBLIC_DVD_* months still work #74

@mrvictoru

Description

@mrvictoru

Summary

In our environment, nemosis.dynamic_data_compiler() can still fetch monthly MMS tables such as DISPATCHPRICE and DISPATCHLOAD for older months (for example 2020-01), but it fails from 2024-08 onward with NoDataToReturn.

The failure affects at least:

  • DISPATCHPRICE
  • DISPATCHLOAD

What works

These succeed in a fresh empty cache:

dynamic_data_compiler(
    start_time="2020/01/15 00:00:00",
    end_time="2020/01/16 00:00:00",
    table_name="DISPATCHPRICE",
    raw_data_location="/tmp/test-cache",
    select_columns=["SETTLEMENTDATE"],
)

dynamic_data_compiler(
    start_time="2020/01/15 00:00:00",
    end_time="2020/01/16 00:00:00",
    table_name="DISPATCHLOAD",
    raw_data_location="/tmp/test-cache",
    select_columns=["SETTLEMENTDATE"],
)

What fails

These fail with NoDataToReturn:

dynamic_data_compiler(
    start_time="2024/08/15 00:00:00",
    end_time="2024/08/16 00:00:00",
    table_name="DISPATCHPRICE",
    raw_data_location="/tmp/test-cache",
    select_columns=["SETTLEMENTDATE"],
)

dynamic_data_compiler(
    start_time="2024/08/15 00:00:00",
    end_time="2024/08/16 00:00:00",
    table_name="DISPATCHLOAD",
    raw_data_location="/tmp/test-cache",
    select_columns=["SETTLEMENTDATE"],
)

Recent months such as 2026-04 and 2026-05 also fail the same way.

Observed behavior

The post-2024-07 filename logic produces monthly stubs like:

  • PUBLIC_ARCHIVE#DISPATCHPRICE#FILE01#202408010000
  • PUBLIC_ARCHIVE#DISPATCHLOAD#FILE01#202408010000

nemosis then attempts URLs of the form:

In our tests, representative older PUBLIC_DVD_* URLs return HTTP 200, while representative post-2024-07 PUBLIC_ARCHIVE#... URLs return HTTP 400.

Expected behavior

Either:

  1. the post-2024-07 monthly filename / URL contract should be updated so these months download correctly, or
  2. the docs should clarify the new monthly archive location / naming convention if AEMO changed it.

Additional data point from downstream testing:

We verified that the manual local-cache workaround is viable even for the post-2024-07 monthly naming era.

Using synthetic cache files named exactly as NEMOSIS expects, e.g.

  • PUBLIC_ARCHIVE#DISPATCHPRICE#FILE01#202408010000.CSV
  • PUBLIC_ARCHIVE#DISPATCHLOAD#FILE01#202408010000.CSV

plain nemosis.dynamic_data_compiler() successfully returned rows from the local cache for a 2024-08 window.

Observed results:

  • DISPATCHPRICE: 1440 rows
  • DISPATCHLOAD: 143712 rows

So FILE01 local monthly cache ingestion works.

One nuance: in default mode, NEMOSIS still probes FILE02 after reading FILE01 for these PUBLIC_ARCHIVE#... monthly stubs. That extra probe is not needed for the local-cache recovery path, but it does not prevent FILE01 data from being returned when present.

This suggests:

  1. the post-2024-07 monthly archive fetch path is broken upstream for at least some MMS tables, but
  2. manual monthly cache files with the expected PUBLIC_ARCHIVE#...#FILE01#YYYYMM010000.CSV naming still work as a recovery path.

Why this matters

This breaks automated historical cache population for any workflows that rely on post-2024-07 monthly MMS tables, including AEMO replay / preprocessing pipelines built on DISPATCHPRICE and DISPATCHLOAD.

Environment

  • Python: 3.12 host repro, also validated in project runtime
  • nemosis: installed from pip in our environment
  • Failing tables: DISPATCHPRICE, DISPATCHLOAD
  • Boundary observed: works for 2020-01, fails from 2024-08 onward

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions