Skip to content

Dashboard Panels

This page documents every panel on the dashboard at /ui/ — what each one shows, which upstream EirGrid endpoint it comes from, what transformation is applied between the raw payload and what you see on the screen, and any caveats worth knowing about.

Each panel section is organised the same way:

  • What it shows — plain-language description.
  • Upstream source — EirGrid backend, area, and region combination(s).
  • Calculation — aggregation, downsampling, unit conversion, or formula applied between the raw payload and the JSON summary.
  • Units & resolution — raw upstream sample interval and (where downsampled) the resampled interval.
  • Refresh cadence — how often the pipeline writes a fresh summary and how often the API cache refreshes it for the browser.
  • Caveats — null-region quirks, snapshot-only behaviour, derived ALL values, and other things that look weird until you know why.

If you want the source-of-truth pipeline-side documentation organised by upstream backend instead of by panel, see Upstream Data.


Refresh cadence (applies to every panel)

The dashboard reads from JSON summaries written by the pipeline; the API caches each summary in memory and refreshes it every CACHE_TTL_SECONDS (default 5 minutes) in a daemon thread. The pipeline itself runs every 15 minutes during the day (07:02-20:47 UTC) and hourly overnight (21:02-06:02 UTC), so daytime data is at most ~15 minutes fresh - see the Data updated … chip in the dashboard header for the actual age of the data you are looking at.

Frequency, demand, wind, solar, interconnection, CO₂, and SNSP series are persisted as Parquet partitions in S3; new partitions land at each pipeline run. Generation mix is a snapshot — see its panel below for the special handling.


Latest gauges — row 1

Demand gauge

  • What it shows — total power being consumed across the active region (All-island, ROI, or NI) at the latest reading. Switch units between GW and MW with the toggle in the section header; switch region with the All-island / ROI / NI buttons in the page header.
  • Upstream source — dashboard backend, area demandactual, regions ROI and NI. EirGrid does not publish an ALL demand series; All-island is derived in the export (see below).
  • Calculation — none for ROI and NI: the raw Value field is served as-is. For All-island, the export merges the ROI and NI series on timestamp and sums them (NI is forward-filled on the rare points where it is missing).
  • Units & resolution — MW, 15-minute intervals.
  • Caveats — the EirGrid demandActual endpoint returns 403 for region=ALL, which is why the pipeline reconstructs the All-island series rather than fetching it directly.

Wind gauge

  • What it shows — current wind generation across the active region, with a forecast curve shown on the 30-day chart below. The gauge displays the actual value.
  • Upstream source — vargen backend (vargen.smartgriddashboard.com/api/export/.../WIND), regions ROI, NI, ALL.
  • Calculation — MW_ACTUAL is exposed as actual; MW_FORECAST is exposed as forecast. Both are passed through unchanged.
  • Units & resolution — MW, 15-minute intervals.
  • Caveats — actual lags the forecast slightly — fresh forecasts are typically present an hour or two ahead of the most recent actual reading. The All-island series is fetched directly from EirGrid (no client-side merge).

Solar gauge

  • What it shows — current solar generation across the active region. Solar peaks at midday and is zero at night; the gauge max is shared with demand so the contribution stays in scale.
  • Upstream source — vargen backend, area SOLAR, regions ROI, NI, ALL.
  • Calculation — same as wind: MW_ACTUAL → actual, MW_FORECAST → forecast.
  • Units & resolution — MW, 15-minute intervals.
  • Caveats — Ireland's installed solar fleet is small relative to wind, so the gauge value will often be a fraction of demand even at noon in summer.

Net Imports gauge

  • What it shows — how much of demand is currently being met by electricity imported from Great Britain across the three undersea interconnectors (EWIC, Greenlink, Moyle). When Ireland is a net exporter, the gauge shows zero and the sub-label flips to "exporting to GB".
  • Upstream source — interconn backend (interconn.smartgriddashboard.com/api/Interconnector/...); the panel uses the precomputed NET connector entry.
  • Calculation — the gauge value is max(0, NET) so it only counts net imports, not exports. The 30-day chart below shows signed flow (positive = import, negative = export). The 30-day chart and the per-connector cards below the gauges are sourced from the same payload.
  • Units & resolution — MW, 15-minute intervals.
  • Caveats — see the Interconnector Flow Bars section for how the three physical connectors are grouped and what the regional metadata in the upstream payload actually means.

Other Generation gauge

  • What it shows — a derived bucket: everything that is not wind, solar, or net imports. In practice this is mostly gas-fired power stations, plus a small amount from batteries and hydro. It is the dispatchable backbone that balances the grid when wind and solar fall short.
  • Upstream source — no single source; computed in the browser.
  • Calculation — other = demand − wind − solar − net_interconnector_flow. Computed per region: All-island uses the All-island demand, wind, solar, and NET interconnector; ROI uses ROI demand, wind, solar, and EWIC + GRNLK; NI uses NI demand, wind, solar, and MOYLE.
  • Units & resolution — MW, derived at gauge-render time from the underlying 15-minute series.
  • Caveats — this is an approximation. It silently absorbs measurement noise, rounding error, and any contribution the four inputs do not cover (e.g. small embedded generation). Use the generation-mix donut for an authoritative fuel-type breakdown (ROI only).

Latest gauges — row 2

Frequency gauge

  • What it shows — current system frequency in hertz. The grid target is exactly 50.000 Hz; the gauge dial shows colour zones for the normal range (49.8–50.2 Hz), the warning zones (49.7–49.8 and 50.2–50.3 Hz), and the emergency zones outside that.
  • Upstream source — dashboard backend, area frequency, region ROI only.
  • Calculation — the gauge shows the latest non-null reading passed through unchanged.
  • Units & resolution — Hz, 5-second native resolution. The 30-day chart below shows hourly averages (computed in DuckDB at export time — never loads the raw 5-second rows into Python).
  • Caveats — EirGrid only publishes frequency for ROI, so the gauge does not change when the region toggle is set to NI or All-island.

SNSP gauge

  • What it shows — System Non-Synchronous Penetration, the share of electricity coming from sources that are not physically spinning in sync with the grid (wind, solar, batteries, HVDC imports). EirGrid currently caps instantaneous SNSP at 75 % to maintain grid stability.
  • Upstream source — dashboard backend, area snspall, region ALL.
  • Calculation — raw Value (already a percentage) passed through. The gauge fill colour shifts from green to amber to rose at the 60 % and 75 % thresholds.
  • Units & resolution — %, 30-minute intervals (15 min on the newer EirGrid feed).
  • Caveats — SNSP only exists at the all-island level; ROI/NI region filters do not change this gauge.

CO₂ Intensity gauge

  • What it shows — grams of CO₂ emitted per kilowatt-hour of electricity generated, ROI only. Lower is cleaner. Ireland's 2030 climate target is 105 g/kWh, marked on the gauge as a yellow tick.
  • Upstream source — dashboard backend, area co2Emission, region ROI (NI and ALL combinations return Value: null and are not requested).
  • Calculation — the raw EirGrid feed publishes CO₂ as tonnes per hour. The dashboard converts that to grams per kWh in the browser with (t/h × 1000) / demand_MW, using the matching ROI demand reading from the same timestamp on the 30-day chart and the latest ROI demand value on the gauge.
  • Units & resolution — g/kWh (derived); raw upstream is 15-min t/h.
  • Caveats — because the conversion depends on demand, a missing ROI demand reading at the same timestamp produces a null on the chart. The "above 2030 target" sub-label compares the current intensity to the 105 g/kWh line.

Generation Mix donut

  • Mix — last 24h (ROI) shows fuel shares of ROI electricity supply over the preceding 24 hours, in the order Renewables, Gas, Net Import, Other Fossil. Renewables includes wind, solar and hydro. Coal is excluded. Ireland's coal plants are retired, so the upstream FUEL_COAL row is always 0.
  • Upstream source — DashboardService.svc/data?area=fuelMix&region=ROI. The snapshot endpoint ignores date ranges and returns the current fuel rows. EirGrid describes the daily view as the last 24 hours.
  • Calculation — raw values are MWh over a rolling 24-hour window. The export preserves these values and the browser converts them to percentage shares.
  • Timestamps — the pipeline replaces upstream effective time with collection time. Snapshots are merged into daily Parquet partitions; their timestamps do not establish upstream freshness. The legacy API field generation_mw contains MWh and does not contribute to the current snapshot's as_of.
  • Mix now (all-island) estimates wind plus solar, positive net imports, and the residual of demand. It always uses all-island inputs, regardless of the region filter. Missing inputs become zero and exports are omitted, so the residual is not a measured thermal generation total. Hydro is in the residual. This estimate uses a different time window and renewable definition from the ROI fuel mix.

Interconnectors

Interconnector Flow Bars

  • What it shows — four horizontal bar panels — one for each HVDC link to Great Britain (EWIC, Greenlink, Moyle) plus a combined Net flow. Positive bars indicate import to Ireland; negative bars indicate export to GB. Each bar is annotated with the current MW value and a direction label.
  • Upstream source — interconn backend (interconn.smartgriddashboard.com/api/Interconnector/...), region ALL.
  • Calculation — none. The dashboard groups rows by Field_Name, not by Region — each connector carries its own region in the upstream payload (EWIC and GRNLK → ROI, MOYLE → NI, NET → ALL). Bar widths are clamped to a fixed maximum per connector (600 MW for EWIC/Greenlink/Moyle, 1800 MW for Net).
  • Units & resolution — MW, 15-minute intervals.
  • Caveats — the underlying payload is the same one feeding the Net Imports gauge and the 30-day interconnector chart. The three named cables are HVDC, so they are not synchronised with either AC grid and the flow can reverse on a sub-second time scale.

30-day history

Demand chart

  • What it shows — line chart of demand over the last 30 days at 15-minute resolution. When All-island is selected the chart overlays all three series (ALL bold, ROI orange, NI teal); otherwise it shows just the selected region.
  • Upstream source — same as the Demand gauge.
  • Calculation — none for ROI/NI. All-island is derived ROI + NI as documented above.
  • Caveats — large client-side series are downsampled to ≤ 720 points for chart performance (~hourly over 30 days). Chart values therefore appear slightly smoother than the underlying Parquet data, which retains 15-minute fidelity.

Wind chart

  • What it shows — actual and forecast wind generation over the last 30 days. Forecast is rendered as a dashed lighter line.
  • Upstream source — same as the Wind gauge.
  • Calculation — none. Both actual and forecast come straight from vargen.
  • Caveats — forecast continues into the future for a few hours ahead of the latest actual reading.

Solar chart

  • What it shows — actual and forecast solar generation over the last 30 days.
  • Upstream source — same as the Solar gauge.
  • Calculation — none.
  • Caveats — the diurnal cycle dominates the chart; output is zero overnight.

Interconnector chart

  • What it shows — four series on the same chart: EWIC, Greenlink, Moyle, and the combined Net flow over 30 days. Net is drawn thicker for emphasis.
  • Upstream source — same as the Interconnector Flow Bars.
  • Calculation — none.
  • Caveats — Greenlink is a recent connector — historical points may be sparse for the early part of the 30-day window.

CO₂ Intensity chart

  • What it shows — ROI CO₂ intensity in g/kWh over the last 30 days, with a yellow dashed line at the 2030 target of 105 g/kWh.
  • Upstream source — same as the CO₂ Intensity gauge, plus the ROI demand series for the unit conversion.
  • Calculation — each upstream Value (tonnes/hour) is divided by the nearest-in-time ROI demand reading, then multiplied by 1000 to give g/kWh. Performed in the browser at chart-render time.
  • Caveats — NI and ALL are never available. Points where ROI demand is missing become null on the chart.

Frequency chart

  • What it shows — ROI system frequency over the last 30 days, shown as the hourly mean of the 5-second raw feed. The y-axis is clamped to 49.75–50.25 Hz so normal deviations are visible.
  • Upstream source — same as the Frequency gauge.
  • Calculation — DuckDB runs avg(Value) GROUP BY date_trunc('hour', EffectiveTime) over the raw Parquet at export time. The dashboard never sees the raw 5-second rows.
  • Caveats — hourly averaging hides short-lived excursions. If you need second-level resolution, query the raw Parquet directly — see Data Model.

SNSP chart

  • What it shows — System Non-Synchronous Penetration over the last 30 days, with a rose dashed line at the 75 % system limit.
  • Upstream source — same as the SNSP gauge.
  • Calculation — none.
  • Caveats — SNSP routinely brushes the 75 % limit during windy overnight periods; that is normal operating behaviour, not a fault.

Generation Mix chart

  • What it shows — ROI fuel shares as lines over the last 30 days, including gas, renewables, net imports, other fossil and coal.
  • Upstream source — same as the Generation Mix donut.
  • Calculation — each collected snapshot contains rolling 24-hour MWh. genPctDatasets() in the browser divides each fuel by the sum at that timestamp.
  • Resolution — successive collected snapshots, not one calendar-day total per point. Daily storage partitions merge snapshots from multiple runs. The timestamps reflect collection time, not upstream effective time.

See also

  • Upstream Data — the EirGrid endpoints and raw payload shapes that feed every panel on this page.
  • Data Model — the S3 Parquet layout, JSON summary schema, and DuckDB query examples for going deeper than the dashboard exposes.
  • API Reference — the FastAPI endpoints the dashboard hits (/api/current, /api/{area}, /api/snapshot, /api/gaps).
  • Gap Detection - what the coloured dot in a gauge corner means when the reading for the viewed time is missing.