SystemPower Generation & Desalination

Power Purchase Agreement Compliance

Power purchase agreement compliance that recalculates every IPP's availability from plant data, with the PPA's own wording

Pay IPPs exactly what the PPA says: every shortfall recalculated and claimed in time.

See one case, screen by screen ↓
demoAED 1.57Mdeducted from one plant's September invoice: AED 1,200,000 of availability damages and AED 365,148 of capacity charge on an untested 28 MW
demo94.6%availability recalculated from 8,760 hours of plant data, against the 95.3 % the IPP declared and a 95.0 % guarantee
target100%of contract claims notified inside the PPA's notice window
target2daysto check an IPP invoice line by line, not 3 weeks of spreadsheets
The problem

Why a utility overpays its IPPs without knowing it

A single-buyer utility pays each independent power producer a capacity charge for being available and an energy charge for what it generates, under a 20–25-year PPA with long schedules of definitions. The IPP declares its own availability, codes its own outages and invoices every month. The buyer checks it in spreadsheets, months later, against plant logs it rarely receives in full. Whether an outage counts against the IPP — a forced outage, a planned outage that overran its window, dispatched capacity not delivered — turns on words like “Grid System Event” and “Planned Outage Window”, often changed by an amendment the settlements team never saw.

In India, the regulator and the appeals tribunal have held that capacity charges follow declared availability whether or not the buyer schedules the plant, so the buyer's only protection is to check every declaration against what the plant could actually do. And the notice windows are short: under the sample PPA the buyer has 30 days after the contract year to notify a shortfall, or the claim is waived. A shortfall found late is a claim lost, and a capacity charge paid on capacity the plant could not deliver is never recovered.

typicalRs 139–150bna year of capacity payments to IPPs in Pakistan, with “hardly any monitoring” of availability against them, a PIDE paper finds
demo30daysafter the contract year to notify a shortfall under the sample PPA — a late notice waives the claim
demo4eventsin one contract year where the contract reading differs from the IPP's coding, worth 61.3 equivalent hours
Where a contract year's settlement days go, in working daysestimated
By hand35 days
With the solution4.7 days
  • Finding the clauses, schedules and amendments in force2 → 0.2 d
  • Getting plant logs, dispatch records and meter data5 → 0.5 d
  • Reconciling the hourly declarations with the records6 → 0.5 d
  • Recalculating availability and the damages3 → 0.5 d
  • Checking the IPP invoice line by line15 → 2 d
  • Drafting the notice and gathering the exhibits4 → 1 d

Estimated split for one PPA's contract-year true-up and its month's invoice, in working days, by hand and with the solution.

How it works

How a contract year is settled

Six specialist agents read the PPA, recalculate from plant data, check invoices and draft notices; the contract manager confirms.

What comes in
Contract and plant data in5 sources · PPA, declarations, plant logs, dispatch, invoices
Agents at work
Contract readerclauses in force
Then
Plant data reconciler8,760 hours
Availability calculatorcontract wording
Then
Settlement checker
Notice drafter
Then
Dispute pack builderexhibits
A person decides
IPP contract managerconfirms; Legal reviews; Director signs
What comes out
Clause ledger
Settlement with deductions
Signed notice + evidence pack
One case, step by step

One contract year, from the IPP's declaration to a signed notice

Lumina Utilities buys power from Qamar Bay CCGT, an 1,800 MW combined-cycle plant, under a PPA dated 12 Mar 2019 and amended by Amendment 2 on 18 Jun 2024. Contract Year 4 ended on 30 Sep 2026, and Qamar Bay has declared 95.3 % availability against a 95.0 % guarantee. Today is Tue 13 Oct 2026. Here is what happens, screen by screen, in the working solution.

  1. 01Tuesday morning

    The clause ledger opens on the breach

    Noura Haddad · IPP contract manager

    Noura owns five PPAs: 4,650 MW and 60 MIGD, AED 2.04B of capacity payments a year. Qamar Bay's ledger lists 63 obligations read from 214 pages, each with its contract threshold, the measured value, a 12-month trend and the penalty or bonus so far. Clause 11.3 is open in place: what the contract says, what the plant data shows, and what follows.

    “1 guarantee breached. AED 1,565,148 to recover. Notice due at Qamar Bay by Fri Oct 30 · 17 days.”

  2. 0206:10, replayed

    Recalculated from plant data, step by step

    Six agents

    The contract reader read the PPA, Schedules 6–7 and Amendment 2 and used the amended Schedule 6 para 3.5. The plant data reconciler matched 8,760 hourly declarations with the event log, dispatch log, meters and grid frequency: 4 events differ. The availability calculator applied clause 1.1, 10.4 and Schedule 6 paras 3.5 and 3.7. Pressing Run again replays it: the row falls from 95.3 % to 94.6 % and the damages count up.

    “Schedule 7 para 2: 0.40 points × AED 3.0M · AED 1,200,000”

  3. 03Hour by hour

    Every day of the contract year, and four events read differently

    Plant data reconciler and availability calculator

    The availability page shows all 365 days of Contract Year 4 as a calendar: available, derates and forced outages as coded, the approved planned outage, dispatched-not-delivered hours, recoded outages and late starts. Below it, the four events where the contract reading differs from Qamar Bay's: the GT-12 trip, 612 dispatched hours not delivered, the GT-11 outage overrun and 9 late synchronisations — 61.3 equivalent hours in all.

    Result, contract reading: 94.60 % · 473.0 of 8,760 hours unavailable · shortfall 0.40 points

  4. 04Aug 18, 14:20

    Coded a grid event — but dispatch issued no instruction

    Omar Bakri · Dispatch shift lead

    Qamar Bay coded the GT-12 trip as a Grid System Event. Clause 1.1 needs a dispatch instruction to reduce output, or system frequency outside 49.5–50.5 Hz. The control-centre dispatch log, with Omar on shift, has no instruction to Qamar Bay from 12:00 to 24:00; frequency stayed between 49.96 and 50.03 Hz; the plant event log shows fuel gas control valve FV-1204 failed closed at 14:20:07. Under the contract it is a forced outage.

    Plant event log: “14:20:07 FV-1204 fuel gas control valve position fault · 14:20:09 GT-12 trip, flame out”

  5. 05What if

    The contract as a calculator, not a PDF

    Noura Haddad · IPP contract manager

    For each disputed event Noura can switch the reading between the contract and the IPP. Accepting Qamar Bay's coding of the GT-12 trip alone gives 94.76 % and AED 731,963 of damages, and the September deduction falls to AED 1,097,111. Only the contract manager may override a coding; she resets to the contract reading.

    “Each event is read with the contract wording as amended. Accept Qamar Bay's coding on any event to see what it would cost.”

  6. 06Invoice day

    The September invoice, line by line

    Karim Saleh · Settlements analyst, Finance

    INV-QB-2609 claims AED 78,527,388. The settlement checker recomputes each line: the capacity charge falls by AED 365,148 because the Jul 14 test showed 1,772 MW and the retest only passed on Sep 15 (28 MW × 14 days × AED 931.50); energy matches the revenue meters; fuel is billed at the guaranteed 6,950 kJ/kWh; 6 start-ups match the dispatch log. With the AED 1,200,000 set off under clause 18.6, the amount to pay is AED 76,962,240.

    “The settlement checker never approves a payment. Karim Saleh in Finance approves; the deductions go with their evidence.”

  7. 0706:14

    The notice drafted under clause 11.3(d)

    Notice drafter

    Notice LU/PPA/QB/2026/117 is drafted on Lumina Utilities' letterhead, addressed to Qamar Bay's Managing Director and sent by courier and email as clause 27.2 requires. Each paragraph carries a margin note with its source — the amended Schedule 6, the hourly data, the event and dispatch logs — and 14 exhibits are enclosed. The clock shows 17 days until the notice must reach Qamar Bay.

    “Contract year ended Sep 30 · clause 11.3(d): a late notice waives the claim”

  8. 08Before noon

    Confirmed, reviewed, signed

    Rami Aziz · Director, Power & Water Purchasing

    Noura confirms the calculation, recorded in the audit trail. Leila Farouk's Legal review returns with no changes at 10:58. Because the notice is over AED 1M, Rami signs it with his password and the meaning of his signature, at 11:20. Only then can it be sent.

    Meaning of signature: “I approve this notice under clause 11.3(d)”

  9. 09Ready if disputed

    The evidence pack, before Qamar Bay replies

    Dispute pack builder

    If Qamar Bay disputes the calculation, clause 29 gives 30 days for senior executives to meet, then expert determination within 45 days. The pack is already built: a chronology from the exhibits, 14 exhibits each from a source record, AED 1,565,148 at stake, the strongest point and the weakest. The precedent: in Contract Year 3 the expert upheld the same clause 10.4 reading, and AED 640,000 was recovered.

    Weakest point: “Late starts: 2 of 9 within 5 minutes of the limit”

  10. 10Next

    The heat rate is inside the band — and on watch

    Availability calculator

    Clause 12.1 guarantees a net heat rate of 6,950 kJ/kWh with a 1.5 % band. The corrected measurement is 7,031 kJ/kWh, +1.17 %, so fuel is still paid at the contract heat rate and there is no penalty. The ledger marks it Watch and offers to warn Noura before it crosses.

    “At this drift the band is crossed in about 4 months.”

Who it’s for

Built for everyone who settles an IPP contract.

The same contract year, seen by the five people who carry it — what their month looked like, and what it looks like now.

NH
Noura HaddadIPP contract manager, Power & Water Purchasing · owns 5 PPAs
IPP contract manager
Before
Signs off each month's settlement and every contract-year true-up from spreadsheets. “Qamar Bay says 95.3 %. I need to know what the contract says it was, hour by hour.”
Now
Opens a ledger of every obligation recalculated from plant data, with the clause and the records behind each figure, and confirms the calculation.
KS
Karim SalehSettlements analyst, Finance · approves IPP payments
Settlements analyst
Before
Checks five IPP invoices a month in spreadsheets. “The invoice adds up. Whether it should is a different question.”
Now
Gets each invoice line recalculated against the PPA, meters and tested capacity, with the reason and the citation for every difference, and approves payment.
LF
Leila FaroukLegal counsel, commercial · reviews notices and disputes
Legal counsel
Before
Keeps the clause interpretations and reviews every notice. “Miss the 30-day window and the claim is gone, however right we are.”
Now
Reviews a notice drafted under the right clause with its exhibits, and rules on every ambiguous clause before the contract reader may use it.
OB
Omar BakriDispatch shift lead, control centre · issues dispatch instructions
Dispatch shift lead
Before
Logs dispatch instructions and grid events. “If there was no instruction in my log, it wasn't a grid event.”
Now
Sees his dispatch log and the frequency record set beside the IPP's outage coding, hour by hour.
RA
Rami AzizDirector, Power & Water Purchasing · signs notices over AED 1M
Director
Before
Signs every notice over AED 1M. “Show me the clause and the data, then I sign.”
Now
Signs with the meaning of his signature recorded, once the contract manager has confirmed and Legal has reviewed.
Built on the engine

6 agents. Each with one job, and hard limits.

Six specialist agents read the PPA, recalculate from plant data, check invoices and draft notices; the contract manager confirms.

Contract reader

Reads each PPA, schedule and amendment into an obligations register with the threshold, formula, measurement window, notice clause and page, applying each amendment to the clauses it changes.

  • Every obligation carries its page
  • Ambiguous wording goes to Legal — never interpreted by the agent
  • Uses the wording in force for each date
Plant data reconciler

Matches hourly declarations with plant event logs, dispatch instructions, revenue meters and grid frequency, and lists the hours where they disagree, grouped into events.

  • Read-only access to source data
  • Never changes a declaration
Availability calculator

Applies the contract definitions — clause 1.1 and Schedule 6 as amended — to compute availability, forced outage hours, derates and the damages or bonus, showing every step of the arithmetic.

  • Shows every step and the clause behind it
  • Coding overrides only by the contract manager
Settlement checker

Checks every invoice line against the recalculated values, the tariff, indexation, meters and tested capacity, and prepares the debit note.

  • Never approves or releases a payment
  • Each difference cites its clause and data
Notice drafter

Drafts notices in the Purchaser's template under the clause that gives the remedy, with the amounts, the deadline and the exhibits, before the notice window closes.

  • Never sends a notice
  • Legal reviews; the Director signs over AED 1M
Dispute pack builder

Assembles the chronology, exhibits, earlier determinations and the clause trail for a claim that may be disputed, with its strongest and weakest points.

  • Never contacts the IPP
  • Exhibits are unchanged copies of source records
IPP contract manager

Confirms; Legal reviews; Director signs; Finance pays. The agents propose; a named person decides.

Ask in plain words

Ask about any PPA, in plain words

Ask about any PPA, clause, invoice or penalty — or say what to change. Every answer points to its clause and its records.

Why is our availability lower than Qamar Bay declared?

Four events are coded differently from the contract. The biggest is the Aug 18 GT-12 trip: Qamar Bay coded it a Grid System Event, but there was no dispatch instruction and frequency stayed 49.96–50.03 Hz, so clause 1.1 makes it a Forced Outage. With the GT-11 overrun, 612 under-delivered hours and 9 late starts, that is 61.3 equivalent hours: 94.6 %, not 95.3 %.

What do we deduct from the September Qamar Bay invoice?

AED 1,565,148. AED 1,200,000 of availability damages (0.40 points × AED 3.0M), set off under clause 18.6, and AED 365,148 of capacity charge for Sep 1–14, when tested capacity was 1,772 MW. Energy and fuel match the meters and the contract heat rate.

Will Qamar Bay win if they dispute the GT-11 overrun?

Unlikely. Clause 10.4 treats any time past the approved window as Forced Outage, and the expert upheld the same reading for Contract Year 3 on 12 Jan 2026. The weakest point in the pack is the late starts: 2 of the 9 were within 5 minutes of the 30-minute limit.

Warn me before any heat rate drifts into a penalty

Done. New rule: warn when a heat rate drifts more than 1.0 % above its guarantee, before it reaches the contract band. Qamar Bay is at +1.17 % today against a 1.5 % band; at this drift it crosses in about 4 months. You can change the rule in Settings.

Every screen

The working solution, as it ships.

13 screens from the working solution, on its sample data. Pick one to see it large.

The clause ledgerEvery obligation of the PPA with its threshold, the recalculated value beside the declared one, the trend and the penalty so far; the breach row open on the contract wording, the plant data and the damages.
Recalculating from plant dataThe run log replays the true-up step by step, and the damages count up as the availability is recalculated.
Availability, hour by hourEvery day of the contract year as a calendar, the result by the contract reading, and the four events read differently from the IPP.
The GT-12 tripThe Grid System Event definition beside the plant event log, the dispatch log and the system frequency record for the hour of the trip.
What if we accept the IPP's codingSwitch any event to the IPP's reading and see availability, damages and the invoice deduction change at once.
The settlement checkFive IPP invoices for September; each line claimed, recalculated and explained, with the amount to pay and to deduct.
The drafted noticeThe notice of availability shortfall on letterhead, a source note in the margin of every paragraph, the approval route, the clock and the exhibits.
The Director's signatureConfirmed by the contract manager, reviewed by Legal, signed by the Director with the meaning of the signature.
The dispute evidence packThe clause 29 steps, the amount at stake, the strongest and weakest points, the chronology, 14 exhibits and earlier disputes.
The obligations registerEvery clause read from the PPA with its kind, threshold, measurement and page, and what Amendment 2 changed.
Heat rate on watchThe heat-rate guarantee with its wording and the corrected measurement, inside the band and on watch.
Another PPA: a peaking plantWadi Sahm's start reliability at 96.2 % against 97.0 %, and the damages ready to deduct from its September invoice.
Your rulesTolerances, approvers, notice clocks for each PPA, read-only data sources and the rules applied on every run.
Governance

Built for contracts: cited, confirmed, signed, on the record.

Every figure cites its clause and its recordEach value carries the clause, page and amendment it comes from and the data behind it — the plant event log line, the dispatch record, the meter, the capacity test.
Read-only on contracts and plant dataThe agents read PPAs, declarations, plant historian, dispatch logs, meters and invoices read-only. They recalculate and draft; they never change a declaration or a source record.
Only the contract manager changes a codingThe what-if shows the cost of accepting the IPP's coding of any event, but only the IPP contract manager may override how an event is read.
Confirmed, reviewed, signed before it is sentA notice goes from the contract manager's confirmation to Legal review to the Director's electronic signature over AED 1M, with the meaning of the signature recorded. No agent sends a notice or contacts the IPP.
Finance releases every paymentThe settlement checker prepares the deductions and the debit note; the settlements analyst in Finance approves payment, and each deduction goes with its evidence.
Every step on the audit trailEach recalculation, coding override, confirmation, review, signature and send is recorded with who and when. The contract wording used — as signed and as amended — is shown on every calculation.
Configuration

Your PPAs' rules, not ours

Tolerances, approvers, notice clocks and data sources are settings, chosen by Power & Water Purchasing for its own portfolio.

SettingDefaultChoose from
Availability alert margin0.2 pointsAny margin, in points — alerts when availability is within this of the guarantee
Heat-rate watch1.0 %Any share of the contract band, before it is reached
Invoice difference to flagAED 10,000Any amount, per invoice line
Energy against meters0.05 %The difference allowed between invoiced energy and the revenue meters
ApprovalsCoding override: IPP contract managerNotice review: Legal counsel · Notice over AED 1M: Director, Power & Water Purchasing · Payment release: Finance, settlements
Notice clocksFrom each PPAQamar Bay CCGT: 30 days after contract year (clause 11.3(d)) · Ras Kadeer IWPP: 45 days after contract year (clause 11.7) · Wadi Sahm Peaking: 21 days after quarter (clause 8.6(c))
Warn before a deadline10 daysAny number of days before a notice must arrive
Rules applied on every runOnFlag any outage coded as a Grid System Event without a dispatch instruction · read a planned outage past its approved window under clause 10.4 · check deemed energy against plant irradiance
Connections

Works with the records a PPA settlement already runs on

PPAs and amendmentsthe agreement, its schedules and every amendment, read clause by clause with the page
Availability declarationsthe IPP's hourly declarations and its contract-year declaration letter
Plant historian and event logshourly plant data for all five plants, the unit event logs, and capacity and performance tests
Control-centre dispatch logdispatch instructions, start instructions and synchronisation times
Revenue meters and grid frequency15-minute metered net output and the 1-second frequency recorder
IPP invoicesmonthly invoices from the IPP invoices mailbox, checked line by line
What it changes

The difference, in numbers.

Every figure is labelled: a target the solution is built to, an estimate, a typical published result, or a proven one.

estimated
AED 1.57M
recovered on one plant's September invoice: availability damages and an untested 28 MW
Claimed AED 78.53M78.53
Paid AED 76.96M76.96
target
100%
of contract claims notified inside the PPA's notice window
target
2days
to check an IPP invoice line by line, not 3 weeks of spreadsheets
3 weeks2 days

“demo” = seen in the working solution, on its sample contracts and plant data (AED 1,565,148 = AED 1,200,000, 0.40 points × AED 3.0M, plus AED 365,148, 28 MW × 14 days × AED 931.50) · “target” = the design goal, measured in the live solution · “estimated” = our estimate of where the days go · “typical” = published figures (Profit / Pakistan Today, Sep 2024: Pakistan's capacity payments run at about Rs 139–150bn a year; PIDE, “IPPs and capacity payments”: “hardly any monitoring” of availability against capacity payments). Regulatory context: CERC order 115/MP/2019 (GKEL v. GRIDCO) and APTEL, MB Power v. UPPCL (reported Feb 2025), hold that capacity charges follow declared availability. Lumina Utilities, its IPPs, plants, contracts and the people named on this page are fictional — characters and sample data in the working solution.

Questions

What IPP contract and settlements teams ask us.

What is power purchase agreement compliance software?

Software that checks what an IPP is owed against what its PPA actually says. Power Purchase Agreement Compliance turns each PPA into a clause ledger — every obligation with its threshold, the value recalculated from plant data and the penalty or bonus so far — and checks every invoice line. The IPP contract manager confirms; Legal reviews and the Director signs.

How does PPA availability verification work?

The plant data reconciler lines up the IPP's hourly declarations with plant event logs, dispatch instructions, revenue meters and grid frequency, and groups the hours where they disagree into events. The availability calculator then reads each event with the contract's own definitions, as amended, and shows every step of the arithmetic with its clause.

How are availability liquidated damages calculated?

By the PPA's own formula. In the sample PPA, Schedule 7 para 2 charges AED 3,000,000 per percentage point below the 95.0 % guarantee, capped at 10 % of the annual capacity charge. Qamar Bay recalculated at 94.60 % gives 0.40 points × AED 3.0M = AED 1,200,000, set off against the September invoice under clause 18.6.

Does it check IPP invoices line by line?

Yes. The settlement checker recomputes each line — capacity, energy, fuel, start-ups and damages — from the contract tariff, the meters and tested capacity, and explains every difference with its clause and source. It prepares the debit note but never approves a payment; Finance does.

How does it keep claims inside the PPA's notice window?

Each PPA's notice clock is a setting — 30 days after the contract year for Qamar Bay, 45 for Ras Kadeer, 21 days after the quarter for Wadi Sahm — and the solution warns 10 days before a deadline. The notice drafter drafts the notice under the right clause when a threshold is crossed; in the sample case it was ready with 17 days to spare.

What happens when the IPP codes an outage as a grid event?

The solution reads it against the definition. In the sample case Qamar Bay coded the Aug 18 GT-12 trip as a Grid System Event, but the dispatch log had no instruction and frequency stayed between 49.96 and 50.03 Hz, so clause 1.1 makes it a forced outage. A rule flags every such outage on every run.

Do people stay in control of the calculation and the notice?

Yes. The agents read contracts and plant data read-only, recalculate and draft, and never decide. Only the IPP contract manager overrides how an event is read, Legal reviews every notice, the Director signs notices over AED 1M, and Finance releases payment. Every step is on the audit trail.

How long does it take to go live?

The Agentic Solution Engine builds and deploys it from your requirements and documents — your PPAs and amendments, notice templates, and a past contract year's declarations, plant data and invoices — and it goes live once every quality gate has passed. We will walk you through it on one of your own PPAs first.

See it on
your PPAs.

We'll run Power Purchase Agreement Compliance on one of your PPAs and a past contract year's plant data.