URL: /changelog

---
title: "Changelog"
description: "Product updates and release notes for Open Electricity"
icon: 'calendar'
---

Stay up to date with the latest features, improvements, and bug fixes in Open Electricity.

<Update label="v4.5.2" description="June 3, 2026" tags={["API", "Data"]}>

## Data & Pipeline

- **Monthly demand accuracy** - Corrected May demand and gas figures: monthly demand is now aggregated from the daily materialized view instead of a stale monthly view, with a month-aligned backfill window ([#548](https://github.com/opennem/opennem/issues/548))
- **Calendar gap-fill** - Monthly and yearly series are now gap-filled onto the calendar grid, keeping market-value and weather coverage aligned ([#548](https://github.com/opennem/opennem/issues/548), [#549](https://github.com/opennem/opennem/issues/549))

## Bug Fixes

- **Status grouping** - Fixed `secondary_grouping=status` returning a 500 on `/v4/data/network/`; data can now be grouped by facility status (operating, committed, retired) like the other secondary groupings ([#539](https://github.com/opennem/opennem/issues/539), [#550](https://github.com/opennem/opennem/pull/550))

</Update>

<Update label="v4.5.1" description="June 1, 2026" tags={["API", "Data", "SDK", "WEM", "Platform"]}>

## Major Features

- **Real-time WEM data** - Western Australia generation and 5-minute dispatch pricing are now near-real-time via the new WEMDE dispatch-solution feed, replacing the previous ~24-hour lag ([#527](https://github.com/opennem/opennem/issues/527), [#530](https://github.com/opennem/opennem/pull/530), [#533](https://github.com/opennem/opennem/pull/533), [#538](https://github.com/opennem/opennem/pull/538))

## Plans & Data Access

- **Extended historical access for Community** - Community plans can now query the last 2 years of data (previously 1 year). Academic and Enterprise plans retain full history back to 1999.
- **Data licensing clarified** - Plan comparisons now state usage terms: Community and Academic are licensed for non-commercial use; commercial use requires an Enterprise plan.

See [Data Limits](/api-reference/data-limits) for the full breakdown.

## API Improvements

- **Accurate power aggregation** - Power (MW) is now averaged across intervals instead of summed, fixing inflated figures at every grouping level ([#523](https://github.com/opennem/opennem/issues/523), [#525](https://github.com/opennem/opennem/issues/525))
- **OpenAPI spec** - Enriched with a generic response envelope, field metadata, and per-language code samples
- **Capacity history** - Now sums `capacity_maximum` with a fallback to registered capacity, fixing NULL WEM coal, gas and wind capacity ([#528](https://github.com/opennem/opennem/issues/528))

## Data & Pipeline

- **Gap-filled series** - Chart series are reindexed onto the interval grid so upstream data gaps no longer misalign timestamps ([#534](https://github.com/opennem/opennem/issues/534), [#535](https://github.com/opennem/opennem/issues/535))

## Bug Fixes

- **WEM price aggregation** - Confined to WEM with a hardened parser; `locf()` interpolation split into separate WEM and NEM columns ([#541](https://github.com/opennem/opennem/issues/541), [#542](https://github.com/opennem/opennem/issues/542))

## Notifications

- **Record debouncing** - Interval milestone records are debounced to stop notification bursts, and battery-charging significance was lowered below the alert threshold to stop charging-driven alert floods

## SDK Releases

### [Python client](https://github.com/opennem/openelectricity-python) — `openelectricity` 0.11.2

- Proxy and custom TLS/certificate support on sync and async clients ([#22](https://github.com/opennem/openelectricity-python/issues/22), [#29](https://github.com/opennem/openelectricity-python/pull/29))
- New renewable-with-storage and gross-demand market metrics ([#31](https://github.com/opennem/openelectricity-python/pull/31))
- Notebook-safe sync client that works inside an existing event loop (Jupyter / IPython) ([#16](https://github.com/opennem/openelectricity-python/issues/16), [#32](https://github.com/opennem/openelectricity-python/pull/32))
- Restored Python 3.10+ support ([#28](https://github.com/opennem/openelectricity-python/issues/28)); `unit_code` ([#27](https://github.com/opennem/openelectricity-python/pull/27)) and `network_region` ([#35](https://github.com/opennem/openelectricity-python/pull/35)) parity across sync and async

### [TypeScript client](https://github.com/opennem/openelectricity-typescript) — `openelectricity` 0.9.1

- Full type parity with the Python SDK, adding the `renewable_proportion` metric and `status` secondary grouping ([#12](https://github.com/opennem/openelectricity-typescript/pull/12))
- Stronger error handling (403/404/500 surface as typed errors) ([#18](https://github.com/opennem/openelectricity-typescript/pull/18)) and `DataTable` group-by and filter correctness fixes ([#15](https://github.com/opennem/openelectricity-typescript/pull/15), [#19](https://github.com/opennem/openelectricity-typescript/pull/19))

</Update>

<Update label="v4.5.0" description="April 20, 2026" tags={["API", "Data", "SDK", "Infrastructure", "Major Release"]}>

The 4.5.0 release moves the analytics pipeline to ClickHouse, rewrites interconnector flow tracing, and introduces a unified plan system for platform.

## Major Features

- **Flow Tracing v4** - Rewritten interconnector flow solver with a dynamic, ClickHouse-backed topology model that handles circular flows and per-flow emissions, exposed through the API and the homepage ([#470](https://github.com/opennem/opennem/issues/470))
- **Automated weekly & monthly summaries** - Generation and record summaries are now published automatically to X, Bluesky and LinkedIn behind a Slack approval workflow ([#64](https://github.com/opennem/opennem/issues/64))
- **Renewable-with-storage metrics** - New market metrics that account for storage when computing renewable proportion

## API Improvements

- **ClickHouse-backed stats** - v4 station and facility stats endpoints restored and served from ClickHouse
- **Facility endpoint** - Added a `unit_code` filter, required authentication, and corrected no-data responses to 404 (previously 416)
- **Cleaner `/v4/me`** - Trimmed response and removed the dead `with_clerk` parameter from the OpenAPI spec

## Data & Pipeline

- **Postgres to ClickHouse** - The analytics and export pipeline (power, energy, demand, flows) was migrated to ClickHouse and the legacy Postgres aggregation pipeline retired
- **WEM demand** - Derived from facility SCADA generation, since the public WEM feed provides price only
- **Crawler improvements** - AEMO sources moved to polling with backoff and parallelized crawls, with gap-aware catchup that skips redundant work
- **Materialized views** - Completeness-versioned daily and monthly views with full-day backfill and AEST-aligned refresh windows

## Bug Fixes

- **API key authentication** - New API keys no longer return 401 across all endpoints ([#487](https://github.com/opennem/opennem/issues/487))
- **Double-counting** - ClickHouse `FINAL` scoping corrected to stop duplicate-row double-counting in market and price queries
- **Energy calculation** - Corrected the trapezoidal integration window and quality-flag handling; batteries excluded from generation queries
- **Export boundaries** - All series are truncated at the core generation boundary so demand, price and rooftop never extend past it
- **RecordReactor** - Moved to incremental milestone detection with automatic backfill of gaps

## SDK Releases

### [Python client](https://github.com/opennem/openelectricity-python) — `openelectricity` 0.10.1

- `unit_code` parameter on `get_facility_data`
- Flow market metrics; `fueltech` and `status` parameters now accept plain strings
- New bidirectional battery example

### [TypeScript client](https://github.com/opennem/openelectricity-typescript) — `openelectricity` 0.8.1

- `unitCodes` parameter on `getFacilityData`
- Flow and renewable-with-storage market metrics, plus the `hydro_and_storage` fueltech
- `getFacilities` now throws `NoDataFound` on 404 (previously mishandled)


</Update>

<Update label="v4.4.0" description="January 8, 2026" tags={["Platform", "Infrastructure", "API", "Data"]}>

## Major Features

- **Renewable Energy Proportion Tracking** - Real-time renewable energy percentage tracking across the network ([#423](https://github.com/opennem/opennem/issues/423))
  - New milestone type in RecordReactor for tracking [renewable proportion](https://github.com/opennem/opennem/issues/398)
  - Significance scoring for renewable energy records
  - Exposed via API endpoints for programmatic access

- **Max Generation Tracking** - Historical peak generation capacity tracking per facility unit ([#461](https://github.com/opennem/opennem/issues/461))
  - New `max_generation` and `max_generation_interval` fields on facility units
  - Available via Facilities API endpoints

## Infrastructure & Technology Upgrades

- **Python 3.14 Support** - Platform upgraded to Python 3.14 for improved performance and compatibility ([#468](https://github.com/opennem/opennem/issues/468))
  - Updated python-sanity dependency with async client and HTTP/2 support
  - Migrated from clickhouse-connect to clickhouse-http driver
  - Enhanced async patterns and event loop handling

- **Unified HTTP Client** - New rnet-based HTTP client replacing legacy libraries ([#466](https://github.com/opennem/opennem/issues/466), [#467](https://github.com/opennem/opennem/issues/467), [#475](https://github.com/opennem/opennem/issues/475))
  - Resolve crawl request errors with new rust-based HTTP client for all requests

- **Granian ASGI Server** - Application server upgraded from Hypercorn to Granian ([#476](https://github.com/opennem/opennem/issues/476))
  - Better resource utilization

## API Improvements

- **Facility API Enhancements** - Expanded facility endpoint capabilities ([#464](https://github.com/opennem/opennem/issues/464))
  - Filter facilities by fueltech group
  - Unit datetime metadata fields synchronized from CMS
  - Timezone-aware datetime handling per network
  - Improved serialization excluding None values

## Bug Fixes

- **Curtailment Data Alignment** - Fixed AEMO timestamp handling for curtailment data ([#455](https://github.com/opennem/opennem/issues/455))
- **Interval Limits** - Increased max interval days for better data coverage ([#454](https://github.com/opennem/opennem/issues/454))
- **Data Storage** - Fixed empty price data storage to prevent null records
- **Market Summary** - Fixed market summary refresh and column alignment
- **Worker Stability** - Catchup worker now runs all aggregates correctly
- **Battery Mapping** - Fixed battery unit mapping schema parsing issues
- **Export Controller** - Resolved ClickHouse query iteration and record processing
- **API Responses** - Fixed unset field handling by setting response_model_exclude_unset to false
- **Logging** - Reduced debug noise from httpcore and hpack, improved Logfire integration

## Documentation

- Enhanced documentation for AEMO timestamp handling in curtailment data
- Updated API documentation with new endpoints and fields
- Infrastructure upgrade documentation and migration guides

</Update>

<Update label="v4.3.0" description="September 8, 2025" tags={["API", "Features", "Data", "Pollution", "Battery"]}>

## Major Features

- **Pollution Data (NPI)** - Comprehensive pollution and emissions tracking from the National Pollutant Inventory now available across the platform ([#436](https://github.com/opennem/opennem/issues/436))
  - Track greenhouse gases, air pollutants, and heavy metals from power generation facilities
  - Details in documentation at the [Pollution Guide](https://docs.openelectricity.org.au/guides/pollution)
  - Access via API endpoints for programmatic integration
  - Example implementations:
    - [Python client example](https://github.com/opennem/openelectricity-python/blob/main/examples/pollution.py)
    - [TypeScript client example](https://github.com/opennem/openelectricity-typescript/blob/main/examples/pollution.ts)

- **Battery State of Charge** - Real-time battery storage level tracking showing current energy stored in battery facilities ([#434](https://github.com/opennem/opennem/issues/434))
  - Monitor state of charge (SoC) at unit, facility, region and network levels
  - View battery storage docs in the [Battery Storage Guide](https://docs.openelectricity.org.au/guides/battery-storage)
  - New API endpoints for battery-specific data
  - Example implementations:
    - [Python client example](https://github.com/opennem/openelectricity-python/blob/main/examples/battery_storage.py)
    - [TypeScript client example](https://github.com/opennem/openelectricity-typescript/blob/main/examples/battery-storage.ts)

- **Facility API Improvements** - Enhanced facility endpoint with additional fields ([#453](https://github.com/opennem/opennem/issues/453))
  - Added NPI ID field for pollution data mapping
  - Added location data for facilities





## Improvements and Bug Fixes

- **CPI Data Update** - Consumer Price Index data import and tracking ([#450](https://github.com/opennem/opennem/issues/450))
- **Curtailment Tracking** - Renamed `curtailment_solar` to `curtailment_solar_utility` for clarity ([#433](https://github.com/opennem/opennem/issues/433))
- **Battery Management** - Improved battery unit handling and aggregation ([#434](https://github.com/opennem/opennem/issues/434))
- **Record Tracking** - Fixed duplicate records with identical rounded values ([#451](https://github.com/opennem/opennem/issues/451))
- **Demand Energy** - Demand energy now sourced from analytics table ([#390](https://github.com/opennem/opennem/issues/390))
- **Unit Metadata** - Cleaned out obsolete unit metadata for better data integrity

## Documentation

- New comprehensive guides for pollution data and battery storage
- Updated API documentation with new endpoints
- Added code examples for accessing new features in Python and TypeScript clients

</Update>

<Update label="v4.2.0" description="August 27, 2025" tags={["API", "Features", "Data", "Curtailment"]}>

## Major Features

- **Curtailment Data** - Comprehensive curtailment tracking for renewable energy generation now available across the platform ([#433](https://github.com/opennem/opennem/issues/433))
  - View curtailment data on the [Open Electricity website](https://explore.openelectricity.org.au)
  - Access via API endpoints for programmatic integration
  - Full documentation available in the [Curtailment Guide](https://docs.openelectricity.org.au/guides/curtailment)
  - Example implementations:
    - [Python client example](https://github.com/opennem/openelectricity-python/tree/main/examples/curtailment)
    - [TypeScript client example](https://github.com/opennem/openelectricity-typescript/tree/main/examples/curtailment)

## Bug Fixes

- **Historic Price Data** - Fixed issues with historic price data retrieval and accuracy ([#309](https://github.com/opennem/opennem/issues/309))

## Documentation

- New comprehensive guide on understanding curtailment data
- Updated API documentation with curtailment endpoints
- Added code examples for accessing curtailment data in Python and TypeScript clients

</Update>

<Update label="v4.1.0" description="August 15, 2025" tags={["API", "Features", "Data"]}>

## Major Features

- **Capacity History Tracking** - New comprehensive capacity history output that includes rooftop solar and applies unit history tracking ([#415](https://github.com/opennem/opennem/issues/415))
- **CMS Integration** - Import CMS IDs to database for facilities and units for better tracking
- **APVI Capacity History** - Controller to import APVI capacity history as unit histories ([#432](https://github.com/opennem/opennem/issues/432))
- **Unit Histories** - Enhanced unit histories with time axes for fields ([#431](https://github.com/opennem/opennem/issues/431))

## Improvements

- Battery split static map improvements and bug fixes ([#420](https://github.com/opennem/opennem/issues/420))
- Rooftop capacity storage enhancements ([#430](https://github.com/opennem/opennem/issues/430))
- Decimal precision improvements in unit_history table ([#431](https://github.com/opennem/opennem/issues/431))
- Gap-fill improvements for rooftop capacity history ([#415](https://github.com/opennem/opennem/issues/415))

## Bug Fixes

- Fixed WEM crawlers to include APVI month by default
- Resolved postcode prefix mapping (1 is NSW in APVI client)
- Fixed capacity chart task imports ([#415](https://github.com/opennem/opennem/issues/415))
- Corrected WEMDE trading price crawler length sanity checks
- Resolved issues with DRX facilities in first seen checks
- Fixed padding in query for rooftop capacities in capacity chart ([#415](https://github.com/opennem/opennem/issues/415))

## Documentation

- Updated migration documentation for v4.1
- Enhanced API documentation

</Update>

<Update label="v4.0.0" description="April 24, 2025" tags={["Platform", "SDK", "API", "Major Release"]}>

## 🎉 Platform Beta Launch

We're excited to announce the beta launch of the **Open Electricity Platform**!

- Access at [platform.openelectricity.org.au](https://platform.openelectricity.org.au)
- Sign up for early access and explore enhanced data analytics capabilities
- Advanced visualizations and custom data exports

## SDK Releases

### Python Client
- Official Open Electricity Python client library now available
- Install via pip: `pip install openelectricity`
- Full documentation and examples included

### TypeScript Client
- Official Open Electricity TypeScript/JavaScript client library released
- Install via npm: `npm install @opennem/client`
- Type-safe API access with comprehensive type definitions

## API Enhancements

- **Performance Improvements** - ORjson serialization on data and market endpoints for improved performance
- **Milestones API** - New milestones endpoints with optimized caching
- **Record Reactor** - Enhanced record reactor with Slack and Twitter alerts for significant events
- **Solar Gap Filling** - Improved solar 5-minute gap fill handling for APVI interval sizes

## Social Integration

- **Bluesky Client** - Added Bluesky social media integration
- **Twitter Client** - Enhanced Twitter client for automated updates
- **Record Alerts** - Automatic social media alerts for significant generation records

## Infrastructure

- API v3 deprecation notice ([#424](https://github.com/opennem/opennem/issues/424))
- Sanity CMS syncing to database rewrite ([#422](https://github.com/opennem/opennem/issues/422))
- Enhanced facility and unit integrity monitoring ([#429](https://github.com/opennem/opennem/issues/429))

## Bug Fixes

- Fixed NEM interval check re-ordering and increased interval window
- Corrected battery charge/discharge significance scoring
- Resolved issues with regional demand calculations ([#412](https://github.com/opennem/opennem/issues/412))
- Fixed static historic records returning strings as data ([#403](https://github.com/opennem/opennem/issues/403))

</Update>
