Puerto Rico generation, live

Reading PREPA’s operational feed…

Supply Checking portal
Connecting to PREPA…
Loading the history saved on this device…
Unit alerts

Generation and frequency, last 24 hours and next 24

Drag across the graph to zoom in; double-click to zoom out.

Reserves

Same time span as the graph above; zooming one zooms both.

Capacity margin = available capacity minus generation (every 5 minutes). Spinning and operating reserve are PREPA’s figures at each reading. Dashed: projected margin from the forecast. The dotted line marks the largest unit online; a margin below it means losing that unit could not be covered.

Plants right now

Where the island’s power comes from at the latest reading, and the high-voltage lines that carry it from the plants in the south to the load centers in the north. Dots sit at each plant’s approximate location, sized by output. Select a dot or a table row to see that plant’s units; sort by any column and narrow the list with the filters.

References: line numbers and lengths from the Energy Bureau filing NEPR-MI-2024-0005 (230 kV line numbers, end points, lengths), the 2023 PREPA Fiscal Plan (the three 230 kV loops) and LUMA’s June 2025 report (San Juan-area 115 kV lines). Transmission map traced from BNamericas, “Puerto Rico opens 3,600MW to private operators” (Aug 11, 2020).

Generation over time

How much each plant or fuel supplied. The total follows PREPA’s 5-minute generation record, so the chart has no gaps; the split between plants and fuels comes from the nearest readings of every unit (ticks under the chart) and is estimated in between. 30 days and All show energy per day (GWh). Drag to zoom.

Unit availability and events

Generating units that are out of service now, ranked by what each produced in the latest filed month, and every unit that tripped or returned to service in the last 24 hours.

Units out of service now

A baseload unit (steam or San Juan combined cycle) that ran last month and is down now is the one to act on. Peakers start and stop every day.

AlertPlantUnitNet MWh last monthMW now

Unit event history

Every unit that went out of service and every unit that came back, with when it went out, when it returned, how long it was out and the megawatts involved. Times are when the change was first seen (readings every 15 minutes).

UnitWent outCame backDurationMWStatus

The full record is also written as text, one file per day, in logs/outages/.

Genera units out of service and spinning reserve, last 7 days

From every reading. Red area: Genera units not generating (left scale). Green line: spinning reserve in MW (right scale). Gaps mean no reading at that time.

Frequency against IEEE limits

The grid runs at 60 Hz. The further frequency strays and the longer it stays away, the closer generators and inverters get to tripping off. Each 5-minute reading from PREPA is placed in a level below; any reading outside Normal starts an excursion, logged with its duration and whether it outlasted the time allowed at that level.

Last 24 hours on the limit scale

The scale stretches the area near 60 Hz so small swings stay visible while the IEEE limits remain on the chart. Dashed lines are IEEE 1547-2018 trip settings.

Levels and where they come from

    Readings are 5 minutes apart, so short dips between readings can be missed and durations are estimates. “Possibly exceeded” means a single reading was outside the range and the event could have lasted longer than allowed.

    Frequency excursions

    Every period outside the Normal range since monitoring began, newest first.

    StartedDirectionWorst levelExtremeDurationAllowedTime limit

    Unit gauges

    Each unit as a gauge from 0 to its rated capacity, with its status. The pale band marks the lowest and highest output seen while it was running since monitoring began. Where no rating is published, the scale uses the highest output observed (marked “obs.”).

    Cost and energy mix right now

    Energy source

    Share of generation as published by the operator.

    Dispatch cost

    MW × each unit’s reported cost. Totals use every unit with a reported cost; 24-hour figures add up each check over the last day.

    Cost through the day

    How the cost of generation changes hour by hour, and how much of it each fuel accounts for. Use the last 7 or 30 days to see the typical daily pattern, or today to see how today compares.

    Cost by plant through the day

    Which plants make up the cost at each hour of the day. Pick one plant to see its hourly cost and its cost per MWh.

    How the island’s generation is dispatched

    Live analysis from every saved reading: which plants are cheapest, which ones carry the load, what a cheapest-first dispatch would change, and how much of the demand is constant.

    Merit order: the island’s supply curve

    Each block is a plant: its width is how much it can supply, its height what each MWh costs. Renewables producing now are taken first; the other plants follow from cheapest to most expensive. Where the demand line crosses the curve is the plant that should set the cost. Plants to the right of the line that are running anyway are “out of merit”.

    Who is carrying the load

    The share of generation coming from baseload plants (run all day), peaking plants (started for the highest demand, usually costly diesel) and renewables. A growing peaking share means more expensive power.

    What would change right now

    If the same demand were met using the cheapest running plants first, which plants would produce more and which less. Long bars mean the current dispatch is far from cheapest-first.

    Load duration curve, last 24 hours

    Every 5-minute reading sorted from highest to lowest. The lower block is base load, needed all the time; the band above it comes and goes during the day and must be met by plants that can follow load.

    Daily summary

    Written automatically on GitHub after every check, as a text log for each day. Demand comes from PREPA’s total at each check, generation and frequency from the 5-minute readings, fuel shares and cost from each unit’s output and reported cost.

    Summary log

    One row per day. Download all days (CSV).

    DayMax demandMin demandMax gen.Min gen.Majority fuelTotal cost$/kWhFreq. maxFreq. minFreq. avgOutagesText log

    Portal health

    Every 15 minutes a GitHub Action requests both PREPA feeds, whether or not anyone has this page open. Uptime and the check map use those checks; reads made by your browser appear in the table as “This browser”.

    Checks by hour, last 7 days

    One square per hour. Teal: answered. Red: failed. Grey: no check that hour.

    Response time

    Seconds for PREPA’s server to deliver each feed.

    Recent checks

    CheckedByFeedResultResponseSizePREPA timestampData age