Price-Performance Map
An interactive scatterplot positioning all products in the platform database by retail price against a user-selected performance metric, providing a visual market overview with drill-down product detail.
Overview
An interactive scatterplot that shows all products in the platform database positioned on two axes: retail price (x-axis) and a user-selected performance metric (y-axis). The chart provides an immediate visual overview of the market landscape, showing where products cluster, where value-for-money leaders sit, and where a specific product sits relative to competitors. Product identities are visible to EnergyAE staff but anonymised for manufacturer clients viewing competitor products.
This feature appears in the concept overview under both Data Analysis and as a tool for Executives and Managers. The underlying chart is the same; access level and data visibility vary by user role.
User Stories
- As an EnergyAE consultant, I want to see where a client’s product sits in the market relative to price and COP so I can quickly characterise its competitive position in a client briefing.
- As a manufacturer executive, I want to see where my product sits on a price vs COP chart relative to anonymised competitor products so I can assess our market positioning.
- As a consultant, I want to switch the y-axis between COP at different ambient temperatures so I can show how market positioning changes across climate zones.
- As a user, I want to hover over a product point and see its key specifications so I can quickly identify products of interest without leaving the chart.
- As a user, I want to export the chart as a PNG I can drop into a client presentation.
Data Source
The chart is populated from two data sources:
- Performance data: from the AS/NZS 5125.1 analyser market database (COP, capacity, power input at each ambient temperature condition)
- Retail price: manually entered or maintained by Alastair. Product retail prices are not scraped — they require periodic manual updates.
Products without retail price data are excluded from the chart but shown in a separate list below it with a prompt to add price data.
The chart should display the database size clearly: “Based on N products in the database.”
Inputs and Controls
Y-axis metric selector
User selects the performance metric for the y-axis:
- COP at 7°C ambient
- COP at 15°C ambient
- COP at 20°C ambient
- COP at 25°C ambient
- COP at 35°C ambient
- Rated heating capacity at 20°C (kW)
- Estimated annual running cost ($, based on a standard usage profile and a platform default tariff)
- Zone energy factor (if available from 5125.1 analyser database)
Filters
- Product category: residential / commercial / all
- Tank volume range: slider (e.g. 150-400L for residential)
- Target market: AU / NZ / both
- Refrigerant type: multi-select (R290, R32, R744, R134a, other)
- Show: all products / my products only (for manufacturer clients who only want to see their own product’s position)
Annotations
- User can draw a horizontal reference line at a specific y-value (e.g. draw a line at COP 3.5 to show the MEPS threshold)
- User can draw a vertical reference line at a specific x-value (e.g. draw a line at $1,500 to show a price threshold)
- Both reference lines are optional and removed by clicking an x
Chart Behaviour
Hover tooltip
Hovering over any product point shows:
- Product display name and brand (if visible to the user — see access control below)
- Tank volume (L)
- Refrigerant
- The selected y-axis metric value
- Retail price
- Market target (AU/NZ)
Click
Clicking a product point:
- If the user has access to see this product’s identity: opens the product detail page in a new tab
- If anonymised: shows only the hover tooltip data with a note that the identity is not disclosed
Trendline
An optional best-fit trendline through all plotted points shows the general market relationship between price and the selected metric. Toggle on/off via a checkbox. Shows R² value.
Highlight own product
If the user has products in the product database, their products are shown with a distinct colour and a label (not anonymised, even for manufacturer clients).
Access Control
The chart is only available to logged-in users. Product identity visibility depends on role:
- EnergyAE staff: all product identities visible (brand and model shown on hover and click)
- Manufacturer/importer clients: their own products show full identity; all other products show anonymised (e.g. “Product A”, “Product B”)
- Public: this chart is not publicly accessible
The anonymisation is consistent within a session — “Product A” refers to the same product for the duration of the session. Alastair to decide whether to make anonymisation persistent (same product always maps to the same label) or session-scoped.
Export
- Chart as PNG (minimum 300 DPI), suitable for a slide or report
- Chart as SVG (vector)
- Underlying data table as Excel/CSV — for EnergyAE staff only, showing full product identities
- For manufacturer clients: underlying data export shows only their own products’ full data, plus anonymised summary statistics for the full market
Out of Scope (v1)
- Animated time-based view showing how market positioning has changed over time as products enter or exit
- Three-dimensional comparison (third axis)
- Bubble chart variant where bubble size encodes a third metric
- Automatic retail price fetching from external sources
- Public access version
Data Model (indicative)
No dedicated table for this feature — it queries the existing products table and performance points table from the 5125.1 analyser, joined with a retail_prices table:
retail_prices (new table)
price_id
product_id (foreign key to 5125.1 analyser products table)
retail_price_aud
retail_price_nzd (nullable)
price_date
source_notes (e.g. "RRP from manufacturer website, April 2026")
updated_by
updated_at
Acceptance Criteria
- Chart renders with correct product positions for all products that have both performance data and retail price data
- Y-axis metric selector switches correctly between all listed metrics
- Filters (category, tank volume, market, refrigerant) correctly filter the displayed products
- Hover tooltip shows correct data for each product
- EnergyAE staff see full product identities; manufacturer clients see their own products identified and others anonymised
- Anonymised products are consistently labelled within a session
- Reference lines can be drawn and removed
- Trendline renders correctly with R² value
- Own products are highlighted with a distinct colour and label
- Database size (“Based on N products”) is shown on the chart
- PNG export renders at correct resolution with clean white background
- EnergyAE staff data export includes full product identities
- Manufacturer client data export includes only their products in full, plus anonymised aggregate statistics
Open Questions
- Should retail prices be entered in AUD only, or maintained in both AUD and NZD separately? Many products have different RRPs in each market.
- How frequently does Alastair intend to update retail prices? A visible “last updated” date on the chart will be important if prices are not maintained regularly.
- Should the anonymisation be fully random within a session, or based on a deterministic mapping (so that if a user returns to the chart in a new session, “Product A” is still the same product)? Deterministic anonymisation is more useful but requires careful implementation to avoid leaking identity through a pattern.
- Should the trendline be shown by default or opt-in? A trendline through a small dataset can be misleading.