← Manual home

V5 · OffTaker

Pay less, and greener — one Dashboard story, from the site directory through Operations, Performance, Allocation, Commercial, and landed cost.

You are here
1Setup
→
2Strategy
→
3Deal
→
4Nominate
→
5Market day
→
6Settle
→
7Statement

1. What this is, and why it exists

1.1 The off-taker’s problem

You run a place that uses electricity — a factory, a mall, a mine, a data centre. You already buy every hour. The wires will sell to you if nobody else does. Your commercial job is not to find energy. It is to pay less, and greener: take as many useful hours as you can from a cheaper wheeled (or virtual) contract instead of full retail, without paying for sacks you will not bake.

Think of a bakery that must have flour every morning. The supermarket down the road supplies the remaining bags in this model — that is the grid (Eskom or the municipality, at the site’s retail tariff). A miller on a long contract will sell you a cheaper bag if the truck can get through — that is a PPA (power purchase agreement) wheeled to your meter. If you order more sacks than you bake, you still paid for them. That leftover is over-contract.

This volume is the off-taker seat’s home. It is one bill story, not seven products. The Dashboard is the lifetime telling of that story: from the first metered month (commissioning), through “was demand met?”, through “what did it cost?”, to “what should we do next?”. Every other chapter is a page of the same story, at a different zoom.

Trader books stay in V6 · Trader. Generator plants stay in V4 · IPP. The shared engine picture stays in V3 · Strategy.

1.2 The Dashboard story, end to end

Read the site first. Then the period. Then the buy. Then the lifetime receipt.

  1. Sites (§2) — which shop is this, is it standing yet, and does the fleet look covered? Commissioning starts here. Until a site has a meter, a tariff and a first Performance click, the Dashboard has nothing to narrate.
  2. Operations (§3) — was the recorded history complete, and how recently did the meter report? A full old month is not today’s diary.
  3. Performance (§4) — this period: what you use, what you pay for, and the one job to do next. It is the morning noticeboard on the bakery door.
  4. Allocation (§5) — one named month: which agreement actually delivered, what fell to the grid, and whether it adds up to the meter.
  5. Commercial (§6) — the leftover supermarket hours, ranked millers, a deal you can try without signing. The coverage rationale (§6.1) says how many sacks to order so you cut the supermarket bill without paying for flour you will not bake. This is Dashboard chapter 6 (“what to do next”) with the sliders still open.
  6. Dashboard (§7) — since commissioning: was demand met, which supply was cheapest and most reliable, what it cost, what was left on the table, the five-year outlook, health today, and the next moves.
  7. Landed cost (§8) — the money rule under every saving: what the supermarket bag would have cost, minus what the miller’s bag actually cost at your door.

Creating a site on this seat is §2.3. The buy-side record and Edit stay in V2 §3. This volume then follows the site once it exists and you need to buy.

Words you will meet in every chapter

Word Plain meaning
Off-taker / site The place that uses the electricity.
Grid The utility door that always sells — Eskom or the municipality.
PPA A contract to buy energy (physical, wheeled) or a financial hedge (virtual).
Wheeled Energy that travels the wires from a generator to your meter.
Virtual A financial green claim — no extra flour on the truck.
Landed cost The true all-in wheeled price at your meter (§8).
c/kWh Cents per kilowatt-hour — the usual small unit for an electricity price.
Over-contract Sacks you paid for and did not bake.
Bill saving Rand you avoided versus all-grid, after unused-energy losses.
Dashboard The lifetime story of one site, from first meter month to today.

Where this is taught. How you open a site book: §2.4. How to read this period: §4. How to read a settled month: §5. How to read the lifetime story: §7. Why sticker price is not the bill: §8.

2. Off-taker sites

You need to find a site, check its meter history and decide what to do next. Open OffTaker Sites in the Wheeling sidebar. Each row represents one off-taker site. Open its name to enter the site’s workspace.

2.1 The directory

You need one list that says which shops use electricity, whether a miller is already booked, and which shop to open next. That list is OffTaker Sites (/org/off-taker-sites and /org/off-taker-sites/sites). The page title is OffTaker Sites. The line under it says Your consumption sites, their status, and the next step. The top bar counts registered sites, for example 3 sites. Drafts are not in that count.

Think of the table as a clipboard with one line per shop. The folded note at the bottom is the manager’s summary for the whole chain. That note is Portfolio summary & coverage notes.

Follow along. Seat: offtaker_c@webill.net (password supersecret). Path: OffTaker Sites. Open Filters & columns and tick Show price, savings & PPAs. Then open Portfolio summary & coverage notes. You should see the extra columns and four summary tiles. The figures depend on your local meters and agreements.

Add New Site starts a draft. §2.2 teaches that workspace. Import intervals accepts a file for meters your organisation owns. A site workspace’s import accepts only that site’s meter. §3 teaches the file.

While the list is loading you see Loading consumption sites…. If the load fails, the page says The site directory could not be loaded and offers Reload sites. An organisation with no registered sites sees No consumption sites yet. Add a site or resume a saved draft above. A search or filter that matches nothing leaves the headings and says No sites match the current search or filter.

The search box matches the site name, the street address, or the municipality name. Needs attention shows a count and keeps only the rows described in §2.1.5. Filters & columns opens:

Control What you choose
Status All statuses, Active, Inactive, or Closed.
Network All networks, Eskom, or Municipality.
Sort Attention first (the usual order), Name A–Z, or Name Z–A.
Show price, savings & PPAs The four extra columns in §2.1.1.

The column headings do not sort the table. Sorting lives in that panel. Attention first puts rows that need attention above the others, then sorts each group by name. Name order ignores capital letters.

Under the table, 3 of 5 sites means three rows passed the search and filters, out of five registered sites. Clear filters removes the search, status, network, attention, sort, and extra columns. How to read this repeats the coverage notes that also sit inside the portfolio summary.

Your choices stay in the page address (q, status, network, attention, sort, compare). Open a site and press Back to sites: the same search and filters are still there.

What each column means

Three columns are always on the table. Four more appear when Show price, savings & PPAs is ticked. A dash means the page has no figure to show. A measured zero is written as zero.

Column What the cell shows
Site / demand The site name, the network, last month’s use or an estimate, and a contract fraction.
Status The registration state: Active, Inactive, or Closed.
Capacity cover · est. How much of last month’s average demand the booked physical supply could meet.
Contract · c/kWh The energy price on those physical agreements, in cents per kilowatt-hour. Extra column.
Saving · month A Rand estimate for that same month, energy charges only. Extra column.
PPAs How many signed or active physical agreements this site buys on. Extra column.
Virtual PPAs How many signed or active virtual agreements this site buys on. Extra column.
Next step The one place to open next.

Site / demand. The name opens Operations for that site. Under the name you see the network — Eskom or Municipality — then a short line:

The left number is signed and active agreements, physical and virtual together. The right number adds agreements that are agreed but not yet signed. Drafts, negotiations, and ended agreements are in neither number.

Amber warnings can sit under that line. §2.1.5 lists them.

Status. A green dot means Active. A grey dot means Inactive or Closed. This is the registration state. An Active site can still have no supply booked, and an Inactive site can still have old agreements on its record.

Capacity cover · est. This is capacity cover. Picture the delivery van you have booked, set beside how much flour the shop used in the latest month that has meter readings. The van is the booked physical PPA (power purchase agreement), measured in megawatts (MW). The shop’s use is that month’s recorded kilowatt-hours, turned into an average megawatt over the hours those readings cover.

The page adds megawatts from physical agreements that are Agreed, Signed, or Active. A virtual PPA is a money hedge. It does not add to this van. The percentage is booked megawatts divided by average demand, and it stops at 100 %. A van twice as large as the shop still reads 100 %.

The figure is green at 60 % or more, amber from 30 % until just under 60 %, and rose below 30 %. The small line names the month and how much of that calendar month has 20-minute meter rows, for example Oct 2026 · 80 % of month metered. A short month can still show a percentage. The words est. mean this is a capacity estimate. It is not the energy that arrived. §4 shows the forecast. §5 shows settled delivery.

A site with no physical agreement, or with agreements but no metered month, shows a dash here. The page does not print 0 % as if the meter had been judged.

Contract · c/kWh. Shown only with the extra columns. For a site that has both booked physical supply and a metered month, this is the energy price on those physical agreements, weighted by each agreement’s megawatts. Agreements with no energy price drop out of the average. The portfolio tiles colour this price against the site’s grid energy price: green when it is at least 15 % cheaper, amber when it is cheaper by less than that, and rose when it is more expensive. The table cell itself stays in ordinary type. The price is the energy charge. It leaves out the network charge for wheeling, the capacity charge, and the cost of energy that arrives with nowhere to use it. When the site’s tariff rates cannot be read, the comparison uses 128 c/kWh.

Saving · month. Same extra columns, and only for a site that can be judged. Take the share of the month’s kilowatt-hours that the capacity cover represents. Multiply by how many cents the contract sits below the grid energy price. Divide by 100 to get rand. If the contract is not cheaper, the estimate is R 0.00. The small line repeats the month. This is an energy-only estimate for the recorded month. It is not a bill, and it is not a promise of next month.

PPAs and Virtual PPAs. These counts are signed and active only. Agreed-but-unsigned deals stay out, which is why the count can be lower than the 3/5 contracts line. Select the number to open Deals → Contracts for this site, already filtered to current physical or current virtual agreements.

Next step. The name always opens Operations. This link opens the section the row is pointing at. The page reads the tests from the top and stops at the first yes. Gold is the question. Green opens Operations. Purple opens Commercial.

Next step — read from the top and stop at the first yes
1first
RegistrationInactive or Closed?
yes→
Opens OperationsReview site record
2else
The meterOverdue, or no readings yet?
yes→
Opens OperationsCheck meter data
3else
Physical supplyNone booked?
yes→
Opens CommercialSet up supply
4else
Capacity coverUnder 60%?
yes→
Opens CommercialReview supply gap
5else
Capacity cover60% or more
then→
Opens CommercialReview commitments
  1. Review site record opens Operations. Inactive and Closed come first, even when the meter is also quiet.
  2. Check meter data opens Operations. The meter is overdue, or physical supply is booked and no month has readings.
  3. Set up supply opens Commercial. There is no physical agreement to judge.
  4. Review supply gap opens Commercial. Cover is under 60 %, so more than 40 % of that average demand is still on the grid.
  5. Review commitments opens Commercial. Cover is 60 % or more.

These words are a prompt to look. They are not a measured saving and they are not a meter-health certificate.

Worked sum. Illustrative, so you can see the arithmetic. It is not a reading from OffTaker C. One invented month: the meter recorded 72,000 kWh, and the booked van is 0.05 MW. Each step uses the number from the step before it.

The same sum in four results — illustrative, not OffTaker C
1720 hours30 days × 24
20.1 MW72,000 kWh averaged
350% cover0.05 MW ÷ 0.1 MW
4R 10,080energy charges only

Step 1 — Count the hours. A full month here has 30 days, and each day has 24 hours. Multiply: 30 × 24 = 720 hours. The average in the next step is spread across those hours.

Step 2 — Turn the meter into a steady rate. The meter recorded 72,000 kWh. Divide by 1,000 to leave megawatt-hours: 72 MWh. Divide by the 720 hours: 72 ÷ 720 = 0.1 MW. That 0.1 MW is average demand — how much the shop used, stated as a steady rate.

Steps 1 and 2 — from a 30-day month to average demand. Illustrative.
1hours
A full month30 daysevery day counted
each day×24 hours
Hours to average over720 hours30 × 24
2demand
Recorded on the meter72,000 kWh÷ 1,000 = 72 MWh
÷ 720 hours→spread evenly
Average demand0.1 MW72 ÷ 720

Step 3 — Set the van beside the shop. Booked physical supply is 0.05 MW. Capacity cover is 0.05 ÷ 0.1 = 50 %. Half of that average demand is covered by the van. The other half still sits on the grid. 50 % prints in amber: green starts at 60 %, amber runs from 30 % until just under 60 %, and rose is below 30 %.

The lower bar is the ceiling. A van of 0.2 MW is twice the shop, so 0.2 ÷ 0.1 would be 200 %. The cell still prints 100 %, not 200 %.

Step 3 — booked supply beside average demand, then the 100% ceiling. Illustrative.
This month0.05 MW booked ÷ 0.1 MW demand = 50%, amber
Booked physical supply0.05 MW
Average demand0.1 MW
↓ half the shop is covered
Capacity cover50% · amber
0.05 MW booked 0.05 MW on the grid
Ceiling0.2 MW booked would be 200%, and still prints 100%
What the cell shows100%, not 200%
prints 100%
Booked physical supplyStill on the grid

Step 4 — Price only the covered share. The grid energy price is 128 c/kWh. The contract energy price is 100 c/kWh. The contract is 28 cents cheaper on each covered kilowatt-hour. Only half the month is covered, so the covered share is 72,000 × 50 % = 36,000 kWh. Saving is 36,000 × 28 ÷ 100 = R 10,080.00. If the contract were not cheaper, this estimate would be R 0.00. It is an energy-only estimate. It is not a bill.

Step 4 — the covered kilowatt-hours, priced below the grid. Illustrative.
4rand
Covered share of the month36,000 kWh72,000 × 50%
28 c/kWh×128 − 100
Then divide by 100R 10,080.00energy charges only
Grid energy128 c/kWhthe comparison price
Contract energy100 c/kWhweighted by megawatts
Cheaper by28 c/kWh128 − 100
SavingR 10,080.0036,000 × 28 ÷ 100

Next step for this invented row would read Review supply gap, because 50 % is under 60 %. The same row with the 0.2 MW van would print 100 % and would read Review commitments instead.

Portfolio summary

Under the result count, Portfolio summary & coverage notes is folded shut. Open it for the whole organisation. The sentence inside says so: the tiles include every registered site, whatever the search and filters are doing to the table.

The first paragraph is a verdict in plain sentences.

A site counts as under contract here only when it has physical supply in the capacity-cover set and a metered month. A virtual agreement alone leaves the site in the uncontracted count.

A larger recorded month pulls the first two averages more than a small one. The weight is that site’s metered kilowatt-hours.

Tile The number How to read the line under it
Contracted capacity cover The energy-weighted average of the row percentages, for sites that can be judged. The leftover is the capacity gap. no metered site yet means there is nothing to average. Same green, amber, and rose bands as the column.
Contract c/kWh The same kind of average of the row energy prices. grid … c · energy only is the weighted grid energy price beside it.
Energy-only saving estimate The row estimates added together. estimated vs all-grid. A dash means no site can be judged. Above zero, the figure is green.
Cover Booked physical megawatts, added across every registered site. contracted vs … MW metered. Sites with no physical agreement are counted in N uncontracted, and the tile is amber while that count is above zero.

Under the tiles: 2 uncontracted · 1 without readings. Latest site data: 01 Oct 2026. The date is the newest metered month on any site, shown as the first day of that month. If no site has a month, the line says Not available.

The notes under that line are the same notes as How to read this. In short: capacity cover compares megawatts with average demand in the displayed month, which may be partial. Performance is the forecast. Allocation is settled delivery. Prices and savings use energy charges only. Physical agreements that are agreed, signed, or active feed the cover and the energy price. Virtual agreements do not. PPA counts are signed and active only. Status is registration. Needs attention is the wider list in the next section.

If any site has no network zone, an amber box (#off-taker-sites-zone-gap-notice) names those sites and the nearest zone. The nearest zone is context. The published network model does not cover that location yet, so the site cannot join a Trading Unit until it does. The rest of the site still works.

Where this is taught. How zones are drawn: V12 §2.

Attention and next steps

Needs attention is a filter on the table, not a second list. The count is every registered site that needs a look, even when the table is showing a smaller search. A row needs attention when it has a warning under the name, or when the glance behind the row has an issue.

Warnings under the name:

Warning When it appears
Meter readings overdue The latest reading is older than the meter’s freshness window. Inactive and Closed sites are skipped. The window is the same one Operations uses: the feed’s own cutoff, or three reading intervals when the feed has no cutoff.
No Market Zone The network model does not cover this location.
Market zone undecidable The model puts the site in two zones at once.
Location not available The page cannot place the site.
Trading Unit registration missing This organisation is an active market BRP (Balance Responsible Party) and this site has no Trading Unit id.

Issues, even with no warning line:

A site that is booked, metered, and at 60 % cover or more stays out of the filter unless a warning is also present.

The filter is a prompt. It does not confirm a saving, and it does not certify the meter. Follow Next step, then read the evidence on that screen. Overdue readings and empty months are taught in §3. Supply gaps open Commercial, taught in §6.

2.2 Onboarding a site

A factory, mall or cold store cannot buy wheeled energy on this platform until it is an off-taker site. The papers do not arrive on one afternoon. If you had to type everything in one sitting, you would lose the work the first time you closed the tab.

Think of a new shop joining the bakery’s delivery list. You start a shop card on the first visit and add stamps as the papers arrive. You do not open the shop until the core stamps are there. That card is the off-taker site draft. The live site is created only when you press Create off-taker site.

This is commissioning. Until the shop exists, has a meter and a tariff, the Dashboard has no first metered month to narrate, Overview cannot price “all-grid”, and Procurement has no leftover block.

Add New Site writes a draft and opens a full-page workspace at /org/off-taker-sites/onboarding/<draft id>. Edit on an existing card opens the same workspace, prefilled from that site — not a blank draft, and not a second shop. What locks after registration: V2 §3.3.

Words on this workspace

Word Plain meaning
Draft off-taker site Still a card, not a live shop.
Site checklist Seven sections. You may jump in any order.
Explanations A right-hand list of plain-language notes. Click a choice to fill that input.
Check & mark complete Saves this section and tells you what is still missing. It does not jump ahead.
Next: {section} Beside Check & mark complete: moves to the next section in the checklist. On the last section it reads Review readiness.
Review readiness Lists every section badge. Create appears only when the six core sections pass.
NMD Notified maximum demand — the highest load the network has agreed this site may draw, in kilovolt-amperes (kVA). Proposed NMD is a later figure, only when a change is planned.
TLF Transmission loss factor — how much energy is lost on the long-distance wires. Eskom TLF distance band is how far this shop sits from Eskom’s Megawatt Park hub.
VWA Virtual Wheeling arrangement — Eskom’s paper allocation product.
SAWEM South African Wholesale Electricity Market. Registration lives in standing data, not on this form.
REC Renewable Energy Certificate — proof the energy is renewable.
CIPC Companies and Intellectual Property Commission — South Africa’s company register. You store a reference, not the PDF.

The six core sections that must pass before create are Identity & location, Supply & network, Metering assurance, Demand profile, Authority & evidence, and Commercial & certificates. Market standing data never blocks create. A ready draft usually reads 6 of 7.

Draft to directory site — statuses the create path actually writes
DRAFT
→six core sections pass
READY
→Create off-taker site
ACTIVATED
The live site is then: ACTIVE INACTIVE

Discard deletes the draft and never creates a site. A foreign draft id never opens — you bounce to the directory.

Active only when Application status is Approved, Account standing is Good standing, and Assurance status is Compliant. Otherwise the new site is Inactive. Pending utility or meter approval is not a failure — the Dashboard simply has less to tell until those stamps land.

How to read the checklist badges

Badge What it means
Not started No answers yet.
In progress Some answers, required fields still blank.
Needs evidence Metering or Authority has some answers but is not complete.
Complete Every required field for that section is filled.
Optional Market standing data with no form — the usual state.

Check & mark complete flashes {section title} is complete. or Still needed: {plain field list} (site name, current tariff, calibration certificate). Review readiness is the same reading in one place: Ready to create the site or Core evidence is incomplete.

The section header counts the core sections on their own — Core section 2 of 6, and Optional section 1 of 1 on Market standing data — and stays pinned at the top while you scroll a long section. On a window narrower than 1280 px the checklist sits above the form as a compact two-column grid, so the form starts near the top; picking a section there scrolls the form into view.

Explanations drawer

Explanations opens a right-hand list for this section. Think of it as the card catalogue for the form: find the word, click a choice if you want it written in, close the drawer, keep working. Most fields here have no ⓘ on the label. Compulsory inputs still show the red *.

On a window 1280 px or wider the page makes room and the panel sits beside the form, so you can keep filling it in; the checklist shrinks to an icon rail, one icon per section with its name on hover. Narrower, the panel would cover the form, so it opens over a dimmed backdrop: click the backdrop, the header X or press Escape to close it. Its intro says which you have — You can keep filling the form while this panel is open. or Close the panel to return to the form.

What each section’s answers mean for the bill

1 · Identity & location

Who the shop is, and where the pin sits. Type at least six characters to search the physical address. A suggestion or a map click places the site and fills province, municipality and coordinates. The amber round pin is the site; the indigo square is the meter-point (the demand-meter pin — not a market metering point).

Field Required? What it means for the story
Site name Yes Everyday name. Becomes the directory card and the Dashboard title.
Utility account-holder name Yes Legal name on the Eskom or municipal bill.
Physical address Yes The pin. Municipality from the pin is needed for municipal tariffs.
Wheeling status — Read-only: whether that council already allows wheeling.
Facility category Yes Office · Retail · Manufacturing · Cold storage · Mining · Hospital · Residential · Mixed use · Other. Shapes later demand-pool classes.
Location classification Yes Urban / peri-urban or Rural. Rural sites can face different network charges.
Counterparty directory visibility Yes Public to eligible counterparties or Private.

On create, the platform writes strategy demand classes from category and connection. Manufacturing, Mining and Cold storage become Industrial; the other categories become Commercial; a Municipality connection also adds Municipal.

2 · Supply & network

Which supermarket you already buy from, and how a miller’s truck would reach you. Keep the distributor account and the settlement point distinct.

Field Required? What it means for the story
Wheeling pathway Yes Eskom virtual wheeling · Municipal wheeling · Traditional wheeling.
Network service provider Yes Eskom or Municipality — who owns the wires. Filters the tariff list.
Utility account number Yes Account on the bill.
Account standing Yes Arrears can block a wheeling application.
Point of delivery / supply ID Yes The utility’s node id. Settlement keys off this, not the street.
Supply voltage Yes The voltage where this shop takes supply. It chooses the tariff class and the loss lookup.
Current network tariff Yes The supermarket price list. Without it Overview cannot price “all-grid”.
Current notified maximum demand (kVA) Yes Today’s agreed NMD.
Proposed NMD (kVA) No A new NMD you have asked for, or plan to ask for. Leave it blank when no change is planned.
Loss-factor basis Yes How wire losses are counted when energy is wheeled — the distribution half of landed cost.
Eskom TLF distance band No How far the shop sits from Megawatt Park, so the transmission loss can be looked up. Leave it blank when it does not apply.
Wheeling registration status Yes Not submitted · Pending · Registered · Conditional.
Application / registration reference If Eskom virtual wheeling or Municipal wheeling The network’s application or registration number. Traditional wheeling may leave it blank.
Approval date No The day the network approved or registered that application. Leave it empty until then.

Supply voltage runs from low to high: 400 V, 11 kV, 22 kV, 33 kV, 44 kV, 66 kV, 88 kV, 132 kV, 220 kV, 275 kV, 400 kV, 765 kV, and VHV (very high voltage) when the exact level is not one of those. The menu is alphabetical, so 400 V is not the first line.

The distance bands are ≤ 300 km, > 300 and ≤ 600 km, > 600 and ≤ 900 km, and > 900 km. The menu lists the longer bands first.

Eskom-connected sites also keep an Eskom account number and Supply Agreement reference. Tariff refusals lock the list until connection and (for municipal) the municipality pin are set.

3 · Metering assurance

Without a settlement meter the Dashboard has no “since commissioning”. Typing the number is registration: on create the workspace makes the device and links it.

Field Required? What it means for the story
Primary settlement meter number Yes Serial or utility number. No number → no consumption history.
Manufacturer No Who made the demand meter. Pick this before the model, or the model list stays empty.
Meter model No The model of that meter. The list fills only after a manufacturer is chosen.
Meter connection Yes CT connected or Direct connected. CT connected also needs the commissioning sheet and the single-line diagram below.
Active-energy accuracy class Yes How tightly the meter may measure. Class 0.2S is the tightest, then Class 0.5S, then Class 1.
Interval granularity Yes 30 minutes or 60 minutes — the step Overview averages into a typical day.
Compliance basis Yes The rule the meter is held to: Eskom specification, or SANS 474 (South African National Standard 474, the national metering standard).
Assurance status Yes Compliant is one of the three stamps that make the live site Active.
Onboard interval-data recovery Yes Available means the meter keeps a local copy of the intervals, so a missed remote poll can be replayed. Not available means it cannot.
Remote data collection Yes Available means the meter can be read without a site visit. Not available means someone must go to it.
Communications method Yes How the meter is read from afar. None means someone must visit it, and the interrogation reference stays hidden. Any other method shows that reference.
Remote interrogation reference If not None A vault or ticket name for the remote login — not the password. The box says Credential-vault or platform reference. A blank one is listed as remote-access reference. Creating the site writes it onto the meter; a numbered check meter receives the same reference.
Calibration certificate reference Yes Certificate or job number — a reference, not the PDF.
Calibration / verification date Yes The day that test was done.
Meter configuration file reference Yes A document id for the meter’s programmed settings, not the file itself.
Commissioning sheet reference If CT connected The job sheet from first energisation. Direct-connected sites may leave it blank.
Metering SLD reference If CT connected SLD is the single-line diagram: the drawing of how the meter sits on the circuit. Same CT rule as the sheet.
Check meter number No Optional second meter. When present, create also writes a check-meter device.
Check meter manufacturer No Who made that second meter.
Check meter model No Its model. Empty until its manufacturer is chosen.

Once a check-meter number is typed, Check meter accuracy class appears, with the same three classes. It does not have to be filled to finish the section.

4 · Demand profile

How much flour this shop bakes, and in what shape. Contract sizing needs both energy and demand shape. There is no CSV dropzone. You store references, not the file.

Field Required? What it means for the story
Estimated monthly consumption (kWh) Yes A typical month. The directory uses this as estimated demand when there are no readings.
Estimated annual consumption (MWh) Yes A typical year, in megawatt-hours. This is the whole shop, not only the wheeled share.
Requested wheeled energy (MWh/year) Yes How much of the year you want a wheeled PPA to cover. It may be less than the full load.
Peak demand (kVA) Yes Highest load you expect.
Expected load factor (%) Yes Average load as a share of peak (0–100). High = steady; low = sharp peaks.
Consumption-profile interval Yes The time step in the historical interval file: 30 minutes or 60 minutes. This is the file’s step, not the meter’s Interval granularity.
Historical interval-data reference Yes A controlled file, data-room or API name for past interval reads. Not the file itself, and not the forecast.
Annual TOU forecast reference Yes Workbook that splits next year across peak, standard and off-peak. TOU is time of use.
Seasonal shutdowns Yes None or Yes — described below. Shutdowns are the hours Coverage must not over-buy.
Expected load change Yes Whether demand at this shop is about to change. The four outlooks are under the table.
Operating hours, shutdowns and material load changes No Free text for the hours the shop runs, the shutdown calendar, and the load change you flagged. Yes — described below points here.

Expected load change is one of:

5 · Authority & evidence

Proof you may buy for this shop. Store controlled references, not confidential files.

Field Required? What it means for the story
Application status Yes Approved is one of the three Active stamps.
Application acknowledgement reference Yes The reference or link that proves the wheeling application was lodged. This is not the Supply field Application / registration reference.
Meter-data authorisation reference Yes Proof the account holder lets this organisation read the demand meter. Store a reference, not the signed file.
Authorisation date Yes The day that meter-data authority was signed or issued.
CIPC / legal-entity evidence reference Yes Company-register extract.
PPA or letter-of-intent reference Yes A PPA (power purchase agreement) or a letter of intent that shows a seller is already in talks. Store a reference, not the contract file.
Managing agent acts for account holder Yes Yes requires a Power of attorney reference.
Municipal wheeling consent / agreement If Municipality Shown only when Supply’s network is Municipality.
Application fee status Yes Whether the network has asked for an application fee, and whether it is paid.

Application fee status is one of:

6 · Market standing data

This section is a placeholder handoff, not a form, so it has no Check & mark complete: Next: Commercial & certificates moves on. TUID, Point of Delivery declarations, BRP linkage and Market Operator approval stay in the standing-data workflow. Open standing-data registry goes to /org/brp/registry. You can still create the physical site and take wheeled energy on a physical or virtual PPA without SAWEM registration; the site is then not yet a market participant.

Where this is taught. Trading-unit registration: V9 §3.9B.

7 · Commercial & certificates

Opening preferences for later proposals — not a signed tariff. Deposit, curtailment, spill and shortfall are written onto the site. The certificate-registry line stays on the draft.

Field Required? What it means for the story
Preferred contract period (years) Yes Horizon you want. Minimum 1.
Energy-price preference Yes Escalated · Fixed · Indexed · None · Tou linked.
Spill treatment Yes What happens when a seller delivers more than this site can use: Zero value · Discounted · Banking · None.
Wheeling deposit status Yes Whether the network’s wheeling deposit is in. The three stamps are under the table. Creating the site writes this onto the site, and later proposals copy it from there.
Preferred shortfall remedy Yes When the seller delivers less: Liquidated damages · Replacement energy · Capacity reduction · Penalty premium.
Buyer accepts contractual curtailment Yes Whether you will accept a clause that lets the seller cut delivery when the network is constrained. Curtailment here is that agreed cut. Yes and No are under the table.
Renewable-energy certificates required Yes Yes or No. Dashboard “green share” cares about the used claim.
Certificate registry / claim preference No Where you want those certificates issued, or how you want the green claim recorded. Leave it blank if you have no preference yet.

Wheeling deposit status is one of:

Buyer accepts contractual curtailment is one of:

Certificate registry / claim preference is free text. The box suggests zaRECs, the South African certificate registry, or a bundled Scope 2 claim — the green attribute stays with the electricity you buy, instead of a separate certificate. The draft keeps what you type. Creating the site does not copy this sentence onto the site, and Edit site record opens the box empty.

Where this is taught. How settlement applies spill, banking and shortfall: V8 §2 · V8 §7.

What “done” looks like

  1. Review readiness lists every badge. Missing core titles appear as a comma-separated list.
  2. Create off-taker site is shown only when nothing is missing.
  3. On success the draft is ACTIVATED, the primary meter (and check meter, if numbered) are created, and you return to the directory with {name} was created successfully.
  4. Done on this seat is: a directory row with the name you typed, a meter, a tariff, and no amber draft row for that id. Strategy still needs a first Performance visit (§2.4).

Save & exit leaves an amber rail Off-taker site drafts above the site table. A clean OffTaker C seed has no drafts until you press +.

You see It means
Untitled off-taker site Brand-new draft. Type Site name.
Still needed: … Required answers still blank.
Review without Create A core section is incomplete.
That onboarding draft is unavailable… Wrong organisation or unknown id.
Market section with no inputs Built that way — not an unfinished screen.
Edit site record Same workspace, Editing chip, site already filled. Review & apply changes → Apply to registered site writes that site. Leave editor keeps edits in the draft. Connection type, address and GPS stay locked.

2.3 Getting in — the buy-side strategy area

  1. Open OffTaker Sites.
  2. Choose the site’s name.
  3. Start in Operations to check readings, or select the view you need.

Routes use /org/off-taker-sites/sites/<site id>/<section>. A foreign or unknown site returns you to the directory. The strategy views initialise the site’s book when needed: Own Load, Wheeled Supply, Virtual Supply and Grid. This setup does not create a contract.

Where this is taught. The engine’s site book: V3 §12.3.

2.4 The strategy tabs

Tab What you inspect Taught in
Operations Consumption, read gaps, freshness and imports §3
Performance The period’s modelled load, supply and cost §4
Allocation A settled month’s agreements and energy sources §5
Commercial Compare suppliers, simulate and build a proposal §6
Dashboard The site’s longer history and next steps §7

3. Operations — meter history and imports

Use Operations to answer two different questions: was the recorded history complete? and how recently did this meter report? A complete old month is like a full diary from last year: no missing pages does not make it today’s diary.

Route: /org/off-taker-sites/sites/<site id>/operations. The header names the site and its meter. Consumption is the measured-energy chart. The numbers, and the control that chooses a month or a day, sit under View energy data and choose a month (§3.2). Reads is that month’s coverage (§3.3). Site location, under the history, is the registered pin (§3.4). A 20-minute interval is the smallest row in the energy table.

SAST (South African Standard Time, UTC+02:00) is the default. The Time zone selector also offers UTC (Coordinated Universal Time). Changing it groups the actual intervals again in that zone, including month and day boundaries. An interval at 22:20 UTC on 30 September belongs to 1 October in SAST. Tables, heatmap, chart axes and tooltips use the selected zone. Uploaded times keep their stated offset and are stored as instants; changing the display does not rewrite the source data.

The selected Consumption or Reads subtab, month, drilled day and zone are in the page address. They remain when you visit Performance or another workspace view or the site editor and return, or use the browser’s Back button. Refresh meter data reloads the evidence and reports when the refresh completed in the selected zone.

Readout What it tells you
Latest read and age The latest recorded interval for this meter, independent of the month selected below
Freshness cutoff The configured feed policy’s boundary, or three recorded intervals of grace when no policy exists
Recorded window First through last interval in the selected month; future slots are excluded
Expected in window / Gaps in window Completeness inside that recorded window; these counts do not certify freshness
No recorded consumption There is no meter evidence to assess; an estimated demand is not a reading

A manual import describes historical data. It does not establish a live meter connection. If the latest read is older than the cutoff, obtain a Check this meter’s collection. You land on organisation feed settings with the site, meter number, latest stored interval and source feed identified. Check collection with your meter data operator or obtain a provider export. Return to this meter in Operations preserves the selected month and zone. Refresh reloads stored data; it does not request a new reading. Dashboard health, reliability, coverage and savings remain unassessed when there is no consumption history.

A gap-free month can still contain replacement values. Reading quality and Vintage are counted on Reads and in the energy table (§3.2, §3.3). Quality and vintage answer different questions from completeness.

Allocation uses a fixed UTC settlement month: midnight UTC to midnight UTC at the next month (the end is excluded), or 02:00 SAST at both boundaries. Use Compare this month in Operations using UTC to match its total. The SAST calendar month can include different readings at the boundary.

3.1 Import demand readings

flowchart LR
  A[Open site Operations] --> B[Download demand template]
  B --> C[Replace example with provider readings]
  C --> D[Validate file]
  D --> E[Review dates, quality, conflicts and totals]
  E --> F[Confirm import]
  F --> G[Refresh meter history]
  1. Press Import intervals. The modal shows this site’s meter number and configured metering interval when available.
  2. Download the demand CSV template. Its meter_ref is already filled for the site. Replace the example row; the example’s 125 kWh is not a measured reading. Demand goes in kwh_import; set kwh_export to 0 when there is no export.
  3. Use ISO timestamps with an offset, such as 2026-10-01T00:00:00+02:00, and 20-minute intervals. This file feed accepts 20 minutes even if the metering configuration says 30 or 60. Ask the provider for a 20-minute export; the importer does not automatically convert those readings.
  4. Choose a CSV or JSON file up to 5 MB and press Validate file. The entire file is checked, including meter ownership and the site’s meter binding and timestamps already recorded. Unknown columns, invalid rows or any occupied timestamp refuse the whole file, including new rows. No readings are saved at this step.
  5. Review the meter number, demand direction, interval count, cadence, imported energy, exported energy and reported gaps. Check first and last timestamps in SAST and UTC, quality and vintage counts, new/conflicting row counts and the sample rows. If the demand total is zero unexpectedly, replace the file before proceeding.
  6. Press Import N intervals to save the validated file atomically. Existing timestamps are checked again before writing. A re-export never overwrites a stored interval; ask the meter data operator for corrections. Success reports the number imported and gaps found; gaps are not filled. Operations refreshes its meter evidence. Closing the modal before confirmation leaves readings unchanged.

Where this is taught. File schema and refusal details: V2 §7.7.

3.2 View energy data and choose a month

The chart is a picture of the month. The table under it is where you read the kilowatt-hours and choose the next period.

Stay on Consumption. The tab’s tooltip reads Measured energy by month, day and 20-minute interval. From the site directory, Meter opens this same Operations page. Under the chart, open View energy data and choose a month. The summary changes as you drill: View energy data and choose a day once a month is open, and View energy data on a single day.

flowchart LR
  A[All months chart] --> B[Open View energy data and choose a month]
  B --> C[Choose a month]
  C --> D[Open View energy data and choose a day]
  D --> E[Choose a day]
  E --> F[View energy data for that day]
  1. The chart title reads Monthly consumption (kWh). Each stack is that month’s time-of-use split: Peak, Standard and Off-peak (the chart legend prints Off-Peak). June, July and August are high season; the legend above the chart names them. The same stacks are sketched in V2 §7.2.
  2. In the table, Period is a button. Choose a month to open its days. The title becomes Daily consumption — Jun 2026 (kWh) (the month you chose), and the breadcrumb shows All months › Jun 2026.
  3. Choose a day. The title becomes 20-minute consumption — 15 Jun 2026 · Monday (kWh). Each row is that interval’s start time, such as 14:20. All months, or the month name in the breadcrumb, steps back out. Clicking a chart bar drills the same path.
Column What it shows
Period (SAST) or Period (UTC) The month (Oct 2026), the day number, or the 20-minute start, in the zone selected above
Peak, Standard, Off-peak Kilowatt-hours in each time-of-use period, to three decimal places
Total kWh Those three periods added
Reading quality How the value was obtained. Month and day rows count actual, estimated, substituted and interpolated intervals. Any estimated energy is listed in kilowatt-hours under the counts. A 20-minute row names that interval’s own quality
Vintage Provisional, verified or revised. Counts on month and day rows; the interval’s own vintage on a 20-minute row

The chart’s accessible name says the values and the drill-down controls are in this table. The address keeps meter_tab=consumption, the chosen month (meter_month), the chosen day (meter_day) and the zone. The Reads month is stored on its own, so opening Consumption leaves it in place.

If the site has no meter, the panel says No meter is assigned to this site. When nothing has been stored yet, Generate Reads builds history from the site’s estimated monthly consumption, for 1 to 24 months (the box opens at 12). The button stays off until that estimate is set, and the panel then says Set Estimated Monthly Consumption on the site before generating reads. How that history is shaped is in V2 §7.2. No consumption data has been recorded for this meter yet. is the other empty line, when there is no month to list and Generate Reads is not offered.

Follow along. Seat: Off-taker C (offtaker_c@webill.net). Path: OffTaker Sites → OffTaker C Midrand DC → Operations → Consumption → View energy data and choose a month. You should see the June 2026 row among the high-season months, totalling 1,168,000 kWh.

Data. Same sealed roll-up as V2 §7.2: full_demo · seed 42 · peak 205,333 + standard 481,600 + off-peak 481,067 = 1,168,000 kWh. The table prints three decimal places (205,333.000 and so on). The sum is the same.

3.3 The Reads tab

Consumption answers how much energy was recorded. Reads answers whether each hour has its pages. Choose the Reads tab. Its tooltip reads Read coverage and missing intervals. The month control appears once a month of history exists. The empty panels in §3.2 replace both tab bodies until then.

Month lists every month that has history, newest first. The page opens on the latest of those months. Changing it updates the tiles, the heatmap and the table together, and stores meter_reads_month in the address. Consumption’s month and this month are independent.

Tile What it counts
Reads Recorded 20-minute intervals inside the recorded window
Expected in window Intervals that window should contain
Gaps in window Expected minus recorded. Rose when the count is above zero; green when it is zero
Days w/ gaps Days in that window with at least one missing interval. Amber when above zero; green when zero

Recorded window names the first and last interval in the zone you selected. Expected reads and gaps describe only that window. Hours outside it are blank on the heatmap, and future slots are excluded. The latest-read age stays in the strip above this tab.

Reading quality and Vintage sit beside Inspect this month’s energy. That button opens Consumption on the days of the same month, so you can see which energy was estimated or still provisional. A full set of hours can still contain those rows. Quality and vintage name the words.

The heatmap is one cell per hour of read coverage. Days run down the side; hours 0 to 23 run across, in the selected zone. A full hour holds 3 × 20-minute reads. The scale runs from Missing (red) to Complete (green). Hover a cell for the day, the hour, Reads: actual / expected, and the missing count when it is above zero. The same picture is sketched in V2 §7.2.

Open View hourly coverage data for the table behind the heatmap. Columns are Day, Hour, Reads, Expected and Missing — one row per hour inside the recorded window. The caption uses the selected zone.

A month with nothing in the window says No reads recorded for this month.

flowchart LR
  A[Choose Reads] --> B[Choose Month]
  B --> C[Read the four tiles]
  C --> D[Read the heatmap]
  D --> E[Open View hourly coverage data]
  C --> F[Inspect this month’s energy]
  F --> G[Consumption days for that month]

3.4 Site location

The history above belongs to a premises. Site location sits under Meter history & interval coverage, on Operations only.

The line under the heading is the site’s physical address. When none is stored, it reads No address recorded. Update the site record from Site details.

When the site has both a latitude and a longitude, a map opens on the Street layer, centred on that pin. The control at the top right switches to Satellite. The pin’s label is the site name and the address. This pin is the facility. The demand meter’s own coordinates are the meter-point, set on Identity & location.

The map shows the pin that was saved with the site. On a registered site, Edit & complete site record keeps the address and the GPS as they were saved (§2.2). When coordinates are missing, the panel says Add GPS coordinates in the site record to display the map. and shows no map.

Site details, at the top right of the workspace, opens the record drawer. Edit & complete site record is in that drawer’s footer.

Last verified: 2026-10-11 · Operations energy table, Reads tab and site location.

4. Performance — buy the right shape

Route: /org/off-taker-sites/sites/<id>/performance · Tab: Performance Recorded delivery lives on the Allocation tab (§5).

You already buy electricity every hour. Performance is the thirty-second check for this site, this period: what you use, what you pay for, and what to buy next. It does not sign a deal. It reads the latest completed P50 forecast risk snapshot and turns it into a bill picture.

Think of the bakery from §1. Performance is the morning noticeboard on the bakery door. The Dashboard is the same shop’s lifetime accounts: commissioning → demand met → cost → what to do next. Performance is the displayed forecast period of that book. A tall grid band here is the leftover the Dashboard later prices as “left on the table”. Unused wheeled energy here is the leak the Dashboard later calls over-contract. Rank 1 on Next best actions is the same job Dashboard chapter 6 will name as a yearly move.

Words for this screen (no foreknowledge)

Word Plain meaning
Use vs pay kWh your site consumed, versus kWh you contracted (including unused wheeled energy)
Bill saving Rand you avoided this period versus full retail, after over-contract losses (SAVINGS_R)
Over-contract / spilled back Wheeled energy you paid for but did not use that hour. You still paid landed cost; you only get the spill credit back
Coverage Share of own-load demand that has a supply plan (COVERAGE_PCT)
Green Share of consumption that is non-grid (wheeled + virtual) (GREEN_COVERAGE_PCT)
Grid / Wheeled / Virtual Retail filler · physical PPAs · financial green claims
Landed cost True all-in wheeled cost at your meter — §8
Spill credit Partial credit for unused wheeled energy (book default 40 c/kWh)
Grid escalation How fast you assume retail cents climb each year (book default 12 %/yr)
SAWEM South African Wholesale Electricity Market — a trader can sell you energy indexed to its price
SAWEM reference An optional cents-per-kWh yardstick you type so Overview can price a trader route
Typical day The forecast run’s hours averaged by South African Standard Time (SAST) clock hour
P50 The “expected” weather grade — half the time the plant makes at least this much
q* Coverage-quantile hedge: how far up the load distribution to contract (§6.1)
Hedge band Book planning range; use the cost-based quantile for the current reference prices
Risk snapshot The sealed daily KPI row Overview reads. No snapshot → empty page

4.1 Use vs pay — the mix hero

The hero answers four questions in one panel:

  1. Where did each kWh I used come from?
  2. Did I pay for more energy than I used?
  3. What did unused wheeled energy cost me?
  4. Did I pay less than all-grid?

4.1.A The headline

One sentence, chosen in this order from the latest run:

When Headline you see
Unused contracted energy ≥ 200 % of use You pay for N× the energy you use (N is 1 + unused/use, whole number)
Unused contracted energy ≥ 1 % of use You pay for N% more energy than you use
Grid share of use ≥ 1 % N% of your consumption still comes from the grid
Otherwise, with lines Fully covered, nothing spilled
No allocation lines, but over-contract Rand > 0 You are paying {compact Rand} for energy you do not use
No lines, green under 99.5 % N% of your consumption still comes from the grid (N = 100 − green)
No lines, otherwise Fully covered, nothing spilled

The grey line under the headline names the forecast window when the run has hours (1 Nov – 30 Nov 2026 · 30 days: where each kWh you consume comes from, and how much contracted energy spills back unused.).

Good is a headline about a thin leftover grid share, or fully covered with nothing spilled. Worrying is “you pay for N× the energy you use” — that is the bakery ordering more sacks than it bakes. On the Dashboard that leak becomes over-contract and, if it repeats, “spill forfeited” on the left-on-the-table ledger.

4.1.B The mix bar

One horizontal bar. The solid segments are shares of what you use. An optional hatched amber tail is energy you contracted but did not use. A vertical tick labelled what you use sits at 100 % of consumption — anything to the right of that tick is the unused tail.

Segment Colour Meaning
Grid (Eskom / Munix) Slate Retail filler — you pay the site’s tariff
Wheeled PPA Brand green Physical PPA energy that landed at the site
Virtual PPA Teal Financial green claims (no physical wire flow)
Contracted but unused (spilled back) Amber hatch, only if unused > 0 Paid-for wheeled energy that did not meet load

Percentages on the legend are whole percents of use. The unused segment is extra, not a fourth share of the 100 %. If the run has no allocation lines, the bar falls back to snapshot Green: grid ≈ 100 − green, wheeled ≈ green, virtual = 0.

Reading What it means Do this
Thick slate A large share is still the supermarket Shop those hours on Procurement — that is the Dashboard leftover
Thick green, no hatch Wheeled energy is used Healthy. Watch the load chart for evening grid
Thick green + long amber hatch You bought green you did not bake Trim before you add volume (§4.4.A)
Thick teal, thin green Financial cover, not displacement Fine for a green claim; the Dashboard still counts the grid as served

4.1.C What you use

The left column is What you use.

Field What it is
Big number Period consumption in kWh / MWh. Fallback if no lines: {Coverage %} covered
Typical day One-day total and the peak hour ({energy} · peak {energy} at {HH}h)
Night base Average load from 00h–05h SAST
Load variance How jumpy midday weekday load is: low (CV under 0.15) or high. no meter history when there is nothing to measure. Under 60 settled days the note says thin

CV is the coefficient of variation — spread ÷ average. A low CV means the bakery uses a similar bag-count most days; a high CV means some days you bake twice as much. High variance is why Coverage (§6.1) does not contract the average hour.

4.1.D What you pay for

The right column is What you pay for.

Field What it is Tone
Big number Wheeled + virtual + unused kWh for the period. Fallback: compact Over-contract Rand —
Spilled back none, or {energy} · {n}% of contract Rose when unused kWh > 0
Over-contract cost Snapshot OVERCONTRACT_EXPOSURE_R, compact Rand Rose when > 0
Saving vs all-grid Snapshot SAVINGS_R, compact Rand Brand green when > 0; rose when < 0; slate when 0

Compact money uses R 59.9 m / R 450 k once the amount reaches R 10,000. Smaller amounts print as whole Rand.

Saving vs all-grid is bill saving: what the grid door would have cost, minus what you actually paid, after unused-energy losses. The arithmetic lives in §8. A negative figure means over-buying (or a bad shape) wiped the benefit — the screen will not flatter the PPA. That is the same honesty as the Dashboard waterfall: paid can sit above a naive “cheap sticker” story.

Read Saving and Over-contract together. A large green saving with rose over-contract means you still beat all-grid after the leak. A small saving with large over-contract means the leak is eating the miller’s advantage — trim first.

4.2 Load vs supply

The panel title is Load vs supply, typical day (Forecast) or Where settled energy came from — typical day, {Month Year} (Settled).

Forecast is the default. It is a stacked area across 24 SAST hours. For each hour the stack shows where that hour’s consumption came from. The whole stack plus any shortfall tracks Metered load. The amber band above the load line is energy you contracted but could not use.

Band (legend) Meaning
Grid Retail backstop — Megaflex (or the site’s category) time-of-use
Wheeled Physical PPA energy that landed
Virtual Financial green claims
Over-contract (spilled) Supply-side surplus from contracted pools

A day / night wash sits behind the hours. Night is the expensive story for a solar-heavy book.

This chart is the hour-by-hour version of Dashboard chapter 1 (was demand met?) and chapter 2 (which supply filled it?). The leftover grey is the need band on the Procurement Desk (§6) and the “daytime block never contracted” line on the Dashboard ledger.

4.2.A Forecast or Settled

Use Performance for forecast load and supply, and Allocation for recorded delivery in a chosen UTC month. The canonical routes are /org/off-taker-sites/sites/<id>/performance and /org/off-taker-sites/sites/<id>/allocation?month=YYYY-MM. Legacy strategy routes remain aliases. Read the evidence and calculated residual in §5.

4.2.B Typical day or Tomorrow

The load chart uses the book’s Typical day, grouped by SAST hour. Tomorrow is disabled while the forecast is whole-plant output rather than this buyer’s allocated share. The supplier’s full output is not substituted into your wheeled supply band.

How to read Typical versus Tomorrow

Read the typical-day supply stack as the book’s allocation model. There is no whole-plant P50 overlay or buyer coverage claim on this chart. The supplier outlook below shows plant output separately.

4.2.C Metered load, recommended contract, spill highlight

An amber bracket over a run of hours is the tightest window that holds at least 65 % of spilled energy, labelled {from}–{to}: {energy} paid for, never used ({n}% of the spill). Match it to Over-contract cost on the hero.

How to read the chart (step by step).

  1. Find midday (roughly 10:00–15:00). Is the stack mostly Wheeled, or is Grid still thick?
  2. Find evening (roughly 17:00–21:00). Does Grid swell when solar falls away?
  3. Check early morning. A tall Grid band here is normal for solar-heavy books.
  4. Glance at Virtual — thin or absent for most physical-only demos; thick virtual without wheeled means financial cover, not displacement.
  5. Look above the load line. Amber = you paid for energy you did not use.
  6. Read the supplier plant outlook separately from your allocated supply. A lower plant day may warrant a closer review of your noon hole / a spill bump?
  7. If the lighter dashed recommended line sits below the wheeled stack in soft hours, the book is over-hedged there — that is the trim story.
Supply mix — three day shapes (illustrative)
Metered load Grid (retail) Wheeled

Midday grid still tall — buy solar

retail still thick at noon 06h12h20h

React: that midday grey is the Dashboard leftover. Procurement for daytime solar / as-generated.

Grid only in the evening — solar won’t finish the job

midday covered · evening retail spike 06h20h

React: add evening / firm / wind / storage-shaped supply — more midday solar mostly raises Over-contract.

Thin grid ribbon — healthy mix

retail residual only 06h20h

React: maintain; watch Over-contract stays ~0 while Green holds.


4.3 Grid escalation vs landed cost

This chart answers a long-horizon buyer question:

If retail grid prices keep rising, and my wheeled energy stays near today’s landed cost, does the deal get better or worse over five years?

It is not a bill forecast of Rand totals. It is two lines of c/kWh over Yr 1–Yr 5. The filled gap between the lines is the saving per wheeled kWh.

This is Dashboard chapter 4 (future-proof outlook) drawn as price paths rather than annual Rand. The Dashboard then compounds those paths on the site’s actual leftover block.

What each axis and line is
Part What it shows
Horizontal Yr 1 → Yr 5. Yr 1 is now. Yr 5 is four escalation steps later
Vertical Price in c/kWh
Grid rate Representative retail kWh — Megaflex standard when that cell exists (seeded 128 c), else flat, else the mean of the TOU cells. Climbs at the book’s grid escalation %/yr
Landed cost Volume-weighted buy price of non-grid allocation lines, held flat — a planning picture of “keep today’s landed price”

The chart is hidden until a snapshot exists.

The two lines — retail climbing, landed held for the planning picture (Megaflex standard 128 c, 12 %/yr)
Gridretail
Yr 1128.0 cstandard × 1.12⁰
×1.12⁴four steps
Yr 5201.4 csame TOU cell
Landedwheeled
Yr 1103 c§8 blend
=held
Yr 5103 cplanning flat
How to read it
  1. Find Year 1. Grid above Landed? You already save on a wheeled kWh today.
  2. Find Year 5. The live series is grid × (1 + pct/100)^n for n = 0…4. At 12 % and 128 c: 128.0 · 143.4 · 160.6 · 179.8 · 201.4.
  3. Look at the wedge. The green fill and the vertical gap markers are the strategic argument for a multi-year PPA.
  4. Check the strip. The Grid line is only as honest as the escalation % you saved.
  5. Remember the limits. This chart does not include over-contract losses, TOU mix shifts, or a PPA that itself escalates.
Reading the wedge — three pictures (illustrative)
Grid rate (climbing) Landed cost (held)

Healthy wedge — grid climbs, landed flat

gap grows → more c saved per wheeled kWh Yr1Yr5

Look for: rising grid line, flat landed line, widening gap. React: multi-year wheeling still makes strategic sense even if year-1 Bill Saving looks modest.

Thin wedge — escalation low or landed already high

little separation by year 5 Yr1Yr5

Look for: lines nearly parallel / close. React: check the escalation %; pressure PPA price / wheeling; do not rely on “time will fix it”.

Crossed or inverted — landed above grid

wheeled dearer than retail early on Yr1Yr5

Look for: Landed above Grid at Yr 1 (or only meeting late). React: do not Promote on “long-term hope” alone — fix price/shape first.

Worked numbers (same formula as the chart)
Year-1 vs year-5 saving per kWh (flat landed)
Grid today (standard)     = 128.0 c/kWh
Grid year 5 @ 12 %/yr     = 128 × 1.12⁴ = 201.4 c/kWh
Landed held               = 103 c/kWh   (§8 example)
Saving today              = 128 − 103 = 25 c/kWh
Saving year 5             = 201.4 − 103 = 98.4 c/kWh
Even if the PPA itself escalates at 5 %/yr
Landed year 5 ≈ 103 × 1.05⁴ ≈ 125.2 c/kWh
Saving year 5 ≈ 201.4 − 125.2 ≈ 76.2 c/kWh

Still about three times today’s 25 c — the wedge stays open, just thinner. The Overview chart itself does not draw that rising landed line; this is a board-pack check you do by hand.

You see It means Do this
Wide, growing gap Retail pulls away from landed Comfortable long-term case — Procurement to improve shape
Flat / tiny gap Escalation low or landed near retail Revisit the escalation %; negotiate price/wheeling
Landed ≥ Grid at Yr 1 Wheeling not cheaper today Fix the deal before celebrating year 5
Grid line jumps after Save You changed escalation % Re-read the wedge; write the % on the pack

Bill Saving is money this period after over-contract. This chart is future price paths. Save on Assumptions redraws the wedge immediately; sealed Bill Saving still needs Run 12-month forecast.

4.4 Next best actions

The header is Next best actions · ranked by rand at stake. A pill on the right reads N open.

It is advice, not a signed order. Every card deep-links to Procurement. None of the links run a forecast or change the book.

Cards are sorted by Rand at stake, highest first. Rank 1 wears an amber card; the rest are slate. This list is Dashboard chapter 6 (what to do next) written for this period. The Dashboard then ranks the same kinds of move by yearly worth.

When nothing qualifies you see:

Nothing flagged — coverage and green on target.

That empty line is rare, because the SAWEM card is almost always present (§4.4.C). Treat a Hold: SAWEM… or Price the SAWEM route line as a watch, not an emergency.

No snapshot → no panel (empty Overview asks you to Run 12-month forecast first).

4.4.A Trim

When it fires. Over-contract Rand > 0 or unused kWh > 0.

Title (with a recommended line). Trim the wheeled contract to the {q*%} hedge band

Title (without). Trim contracted volume in low-load hours

Why. The action names this run’s net spill exposure and the shortest contiguous hourly window containing at least 65% of its spill. That is the same window highlighted on the chart; night spill alone does not make night the priority. Review signed volumes and constraints before modelling a trim.

Impact chip. A positive sizing-model estimate is labelled indicative. Otherwise the chip reads {R} at stake. Exposure is not a guaranteed saving.

What to do.

  1. Read Over-contract cost and Saving vs all-grid together.
  2. On the load chart, find hours where Wheeled sits above load (often the amber bracket).
  3. Select Review contract sizing → Commercial. Coverage Rationale opens beside the desk. The handoff names the Performance period; the desk shows its current monthly simulation period. Compare the windows, then review signed contract commitments before changing supply.
  4. Do not add volume until this leak is closed.
  5. Run 12-month forecast — unused energy should move toward none.

4.4.B Buy the uncovered block

When it fires. There is an uncovered block and the routes table picked a recommended key.

Recommended route Title you see
Virtual PPA Cover the {night / HH–HH} block with a virtual PPA, not more wheeling
Physical PPA Cover the {…} block with more wheeled energy
SAWEM via trader Cover the {…} block through a SAWEM-indexed trader
Stay on grid Keep the {…} block on grid for now

What to do. Open Procurement, keep Option 0 · stay on the grid as the baseline, and only Promote if the simulation beats that baseline without a big over-contract spike (§6).

4.4.C SAWEM watch

This card is always built when the other filters run. It is a watch, not a “you must trade today” order.

Condition Title Impact
No SAWEM reference set Price the SAWEM route no action · unpriced
Reference below landed SAWEM-indexed supply is cheaper than your PPA ≈ {R} over the period
Reference at or above landed (or no landed) Hold: SAWEM-linked supply is not cheaper yet no action · watching SMP

SMP is the System Marginal Price, the uniform hourly price SAWEM clears at. Type the reference on Assumptions (§4.5). Dashboard chapter 4 uses a stricter rule (P90 still below the grid) before it recommends a market share.

4.4.D Green coverage below 30 %

When it fires. Snapshot GREEN_COVERAGE_PCT < 30.

Title. Green coverage below 30% — add wheeled or virtual supply

What to do. Confirm the mix bar; shop the tall Grid hours; prefer wheeled if you need physical displacement, virtual if a financial claim is enough; Simulate and watch Δ Green vs Δ Over-contract.

4.4.E Coverage below the hedge band

When it fires. Snapshot COVERAGE_PCT < 70.

Title. Coverage below the 70–80% hedge band — procure more supply

What to do. If a Trim card is also showing, trim first. Then shop the tall Grid hours. Seeded Own Load target is 75 % — inside the band, not a separate alarm.

4.4.F How to use the list

  1. Read rank 1 first — that is the largest Rand (or the first remaining flag).
  2. If Trim is on the list, do that before any Buy / Green / Coverage add.
  3. Treat Price the SAWEM route / Hold: SAWEM… as a watch unless the cheaper-than-PPA title is showing.
  4. Do one card’s steps, then Run 12-month forecast.
  5. Verify on the hero (Saving, Over-contract, mix bar) before you trust the sentence.

4.5 Run Forecast & Assumptions

The strip under the banner names the dials the charts are using: Grid escalation {n%} · spill credit {n.n c/kWh} and, when set, · SAWEM reference {n.n c/kWh}. Those three numbers change how you read the wedge, over-contract, and the SAWEM row. They do not change today’s published Megaflex table or the PPA sticker.

Assumptions opens Book assumptions — a branded modal with those three fields. Save writes the dials and redraws the wedge / routes immediately. Sealed Bill Saving still needs Run 12-month forecast. Cancel, X or Escape writes nothing. Focus stays inside the modal and returns to Assumptions when you close it.

Run 12-month forecast rebuilds and seals a new risk snapshot for this off-taker book only: today’s members, PPAs, load shapes, grid tariff, and book assumptions, for the exact 12-month date range printed beside the button. Dates are labelled South African Standard Time (SAST), with the end date excluded. There is no period picker. The displayed run may have a different window; compare the ranges before refreshing. The button shows Running… until the job finishes. Flash Forecast updated. on success; Forecast run failed. or Forecast run crashed. on error. The previous good snapshot stays until a successful seal.

Empty state (no snapshot, Forecast view):

No snapshot yet — run a forecast to see the bill saving, coverage and green mix.

Situation Press Run?
First open / empty Overview Yes
After a deal becomes an active PPA Yes
After you trim or reshape, then want sealed KPIs Yes
After Assumptions → Save, when the hero must match the new dials Yes
After loading missing retail rates Yes
You only wanted the escalation wedge to move Optional — Save alone redraws the 5-yr chart
Missing grid rates still up Wait — fix rates first
You are mid-Simulate Purchase on Procurement Wait — Simulate does not rewrite this snapshot
Grid escalation (%/yr)

Required; default 12.0. Enter more than −100%, up to 1,000%. Negative values model falling grid prices. Steepens the Grid line on the 5-year chart and the engine’s grid-backstop prices inside the 12-month window. Does not change today’s published Megaflex table.

Spill credit (c/kWh)

Required; default 40.0. Enter zero or more, up to 999,999.9999 c/kWh. What you get back for wheeled energy paid for but not used. A higher credit makes over-buying less costly (Co = landed − spill credit).

SAWEM reference price (c/kWh, optional)

A trader’s SMP-indexed offer for your hours. Negative market prices are allowed; the range is −999,999.9999 to 999,999.9999 c/kWh. Leave blank and the SAWEM route stays unpriced. Does not change the live market SMP.

The seed also stores eskom_tariff_category (megaflex) and wheeling_ckwh (15.0). Those still affect pricing. You do not turn them here.

Same engine belt as the trader’s V6 §4.10 — different cards at the end.

4.6 Missing Grid Rates

When the book’s tariff category has no in-force KWH rates, Overview shows an amber banner:

Missing grid rates. No in-force KWH rates for this site’s tariff category (megaflex or whatever is stored). Grid-backed savings can’t be priced until the retail rates are loaded.

Without rates, Bill Saving vs “all-grid” would be fiction — the product refuses to invent quiet wrong numbers. You can still open Assumptions. You should not trust savings, the price rail, or priced actions. The price rail empty copy is Load grid rates to place the routes on the rail. Load in-force retail rates for the category (demo seeds Megaflex — V3 §21), then Run 12-month forecast.


4.7 Supply route comparison

A comparison table, not a shopping cart. Intro is either Ways to cover the {energy} {night / HH–HH} block… or No additional supply is needed for the displayed period. A zero uncovered block removes the additional-buy recommendation. You can still compare indicative replacement or repricing options.

Column Meaning
Route Name, optional recommended pill, and a one-line detail
Landed ≈ {n.n} c — or unpriced (SAWEM with no reference) or —
Fit high / medium / low / — (Stay on grid has no fit)
Spill risk none / low / medium / high

When the current run has uncovered grid or shortfall energy, the recommended row is the cheapest priced route whose fit is not low, excluding Stay on grid — unless even that cheapest route is still at or above the grid yardstick, in which case Stay on grid is recommended. That row is Option 0’s cousin: the Dashboard will not credit a leftover you should have left on the supermarket shelf.

4.7.A Virtual PPA

A virtual PPA settles financially against your tariff. Its price is an indicative target cap, not an available quote or offer. It never spills. Fit is high when the uncovered block is night-heavy (more than half the leftover kWh sits in 18h–05h), else medium. Spill risk is none.

4.7.B Physical PPA

More wheeled energy from a generator. Fit is low if the leftover block is night-heavy, medium if there is leftover kWh, high if the leftover is empty. Spill risk steps up with unused share of contract: high above 10 %, medium above 2 %, else low. Landed here is the effective physical cost: today’s landed, scaled up by the spill share (capped so a spill share above 50 % stops pretending the figure is meaningful).

4.7.C SAWEM via trader

SAWEM is not a door you buy on yourself. A trader can firm hours at an SMP-indexed price. Landed is your SAWEM reference, or unpriced. Fit is medium. Spill risk is none.

4.7.D Stay on grid

Option 0 on this page: keep buying the leftover at retail. Landed is the representative grid rate (seeded ≈ 128.0 c). Spill risk is none. The desk is where you rank real sellers against it (§6).

When Footnote
Unused share of contract > 50 % You spill {n}% of the physical contract — more wheeled energy cannot be priced sensibly until the trim.
Unused share > 2 % (and ≤ 50 %) Physical PPA landed {n} c rises to {n} c once the {n}% you spill is counted.

4.8 Will your supplier deliver?

Supplier plant output forecast shows a three-day P50 outlook for the first wheeled generator in a contracted pool. Each tile names its day and whole-plant energy. A lower output day is compared with the other plant days, before any buyer allocation. The forecast’s stale badge remains visible when relevant.

These amounts are not your contracted share. They do not establish your site’s demand coverage, grid top-up or spill. No supplier or no forecast produces an explicit empty state. The buyer’s allocation remains in the Performance book model; do not infer it from a plant total.


4.9 What a kWh costs you

A one-axis price picture. Intro: Grid time-of-use against your landed PPA cost and the spill credit. Anything you spill earns the credit, not the saving.

Marks (left → right by cents):

Mark Where the cents come from Tone
spill credit Book param (default 40) Slate
landed PPA Volume-weighted non-grid buy price Brand green
SAWEM ref Only if you set a reference Slate
grid off-peak In-force off-peak cell (seeded 95 c) Slate
grid standard In-force standard cell (seeded 128 c) Slate
grid flat Only when there is a flat cell and no standard Slate
grid peak In-force peak cell (seeded 210 c) Rose

The rail describes the delivered-allocation weighted PPA price alongside your current assumptions. Different supply sources can have different prices, and their spill shares can differ from their delivered shares. Do not multiply this delivered price minus the credit by all spilled energy to infer the total loss.

Below it, Reconcile the spill cost shows the actual spill-weighted net loss from this run’s allocation lines. Expand View spill by source and reconcile to headline to inspect each source’s spilled quantity, net cents per kilowatt-hour and Rand loss. Source losses plus the snapshot difference equal the sealed headline exposure. Stored lines are rounded to cents; the screen distinguishes a difference within the combined half-cent-per-line tolerance from a larger difference that needs investigation. Displayed values are rounded. No spill lines means the source bridge is unavailable.

This rail is where Effective Cost has a home on the screen. Full landed-cost steps stay in §8. The Dashboard’s “cheapest / most reliable / best value” badges use the same idea on settled landed cents.


4.10 Explanations sidebar

Every word and abbreviation on this Performance screen also lives in a right-hand drawer so you can look it up without leaving the bill picture.

Explanations sits on the assumptions strip, to the left of Assumptions and Run 12-month forecast. It does not start a forecast and it does not open the assumptions modal.

Think of it as the card catalogue for this one screen: press the button, find the word, close the drawer, keep working. The drawer opens on the right, branded green header, title Explanations, eyebrow OffTaker Overview. Close: header X, the dimmed backdrop, or Escape.

The body is one alphabetic list (leading “The” ignored, case-insensitive). First term Assumptions, last Wheeled PPA. Each abbreviation is spelled out on first use in its own row — CV (Coefficient of Variation), PPA (Power Purchase Agreement), q*, SAWEM (South African Wholesale Electricity Market), SAST (South African Standard Time), SMP (System Marginal Price), Time-of-use (TOU). CV is spread ÷ average on midday weekday load: under 0.15 is low, 0.15 or above is high (§4.1.C). DLF and NMD are not on this Overview; they are taught with landed cost and onboarding. The generator Overview uses the same lookup with a different list (V4 §4.8).

The words table at the top of this chapter is still the teaching home. The drawer is the lookup while you stay on the screen.

4.11 Check the forecast basis and inspect values

Open OffTaker Sites → your site → Performance. Read Displayed forecast before acting on the totals: it names the exact period, expected P50 scenario, generation time and saved inputs. Selection follows the latest completed run, including a refreshed snapshot whose original row was created earlier. A future business date on an older snapshot does not override a newer completed run.

If you save different assumptions, Assumptions changed asks you to run the forecast again. Restoring the saved inputs clears this cue. Older snapshots without recorded inputs ask you to run a new forecast to establish a verifiable basis. The route prices and five-year comparison preview current assumptions; the hero and source spill bridge retain their sealed run values.

For a load hidden by a large spill band, select Show load detail. The chart hides spill and rescales, while the state beside the button says what is hidden. Select Show full supply and spill to restore it. The labelled chart-series checkboxes show or hide each source or overlay using either pointer or keyboard. Expand View hourly values for every SAST hour, or View five-year values for the escalation chart. These tables use the same data as the charts and can be inspected with a keyboard.

See trader candidates opens Commercial with the Traders filter selected. Review contract sizing opens Coverage Rationale. Both carry the source forecast period into the handoff banner. Commercial keeps its current monthly simulation window visible; an empty trader list means no eligible candidate matched that desk window and filter. When the desk has no uncovered load, its empty Traders view explains why an additional purchase is not eligible.

5. Allocation — recorded delivery and calculated residual

You need to explain how much of a site’s electricity is covered by recorded agreement delivery, and how much evidence supports that calculation. Sign in on the Organization door, open OffTaker Sites, select your site and open Allocation. Its route is /org/off-taker-sites/sites/<id>/allocation?month=YYYY-MM.

flowchart LR
  A[Choose UTC month] --> B[Review meter evidence and status]
  B --> C[Read sources and hourly values]
  C --> D[Open agreement for that month]
  D --> E[Return to site Allocation]
  1. Choose Allocation month (UTC) with the month field or previous/next buttons. The URL changes with the month and status scope. Refresh, browser Back and site tabs retain your selection. The site header’s Latest meter snapshot describes the latest available meter month; it can differ from the selected Allocation month.
  2. Review Meter evidence. A month in progress counts expected readings only for elapsed time, using the meter’s interval cadence. Future time is excluded. Quality and vintage counts describe the recorded inputs. Latest reading in this month and Overall meter feed distinguish the selected window from current feed freshness. Incomplete recorded days are reported separately; an entirely unrecorded day contributes to unrecorded slots.
  3. Choose Settlement status included. For the site’s current active agreements, the default includes every non-reversed period: DRAFT, PRELIMINARY, FINAL and DISPUTED. Status counts and delivered period totals appear together. FINAL periods only recalculates delivery, shares and residual for that scope, while the meter stays unchanged. Excluded delivery does not prove additional grid purchases. Even a FINAL period can have incomplete meter or allocation evidence.
  4. Read each source’s agreement, true status and evidence basis. Recorded zero delivery means interval records exist and their delivery totals zero. No interval records; no positive period total means evidence is absent. A period total has no hourly profile. The fraction of metered hours with interval records is a coverage clue, not a certificate that every sub-hour interval is present. Review disputes opens that contract’s dispute tab.
  5. Open an agreement reference. Its Settlements page is filtered to your month and includes zero-activity periods. All totals on that page use the declared period selection. Show all periods with financial activity deliberately broadens the view. Back to [site] Allocation restores the month and scope. Opening a settlement window keeps a return link to the filtered list.
Column Meaning
Delivered (kWh) Recorded interval delivery, or the period total when the summed interval delivery is zero
Share of meter Included delivery divided by this UTC month’s metered consumption
Unmet by agreement (kWh) Demand left unmatched in this agreement’s settlement; not the site’s calculated residual or curtailment
Current rule The source’s current allocation rule, not a historical snapshot of the selected month

The mix bar follows the same sources as the table. Energy values display three decimal places; rounding can make displayed sums differ slightly. A positive excess above the meter keeps the residual at zero and makes the arithmetic warning visible.

5.1 Read the typical day without a mouse

The chart groups physical agreement intervals by South African Standard Time (SAST) hour. Each hour’s monthly energy is divided by the number of UTC dates with meter data. Missing readings are not filled. A partial recorded day still enters this denominator, so check meter completeness before comparing shapes. Virtual and period-only delivery have no hourly profile and are not plotted.

Use the labelled checkboxes to show or hide chart series, then Restore all series to reset. Chart filtering does not change monthly totals or the data table. Open View all 24 hourly values (kWh, SAST) with Enter or Space to read all agreements, calculated residual and metered load by hour.

The UTC month starts and ends at 02:00 SAST, with the end excluded. Operations normally groups SAST calendar months. Compare this month in Operations using UTC aligns its month boundaries with Allocation and preserves your return context.

If evidence fails to load, totals are unavailable and Retry rereads it. A month with no meter readings or included settlement periods says so; choose a recorded month or inspect Operations. Refresh evidence rereads the current selection.


Last verified: 2026-10-10 · Allocation is its own chapter.

6. Commercial — the Procurement Desk

Route: /org/off-taker-sites/sites/<id>/commercial · Tab: Commercial · Page title: Procurement Desk

You already buy electricity. Some hours are covered by contracts. The rest still come from the grid — the utility that always sells, at the site’s retail tariff. Commercial is where you decide whether to buy any of those leftover hours from someone else, from whom, and on what terms.

Think of a bakery that must have flour every morning. The supermarket down the road fills whatever the miller does not deliver. That supermarket is the grid. A new miller is only worth signing if the whole flour bill falls, after you count sacks you paid for and did not bake. A cheap sack that arrives at midnight, when the ovens are off, can make the bill worse.

The tab is Commercial. The page itself is titled Procurement Desk. Nothing you try here is a signed contract. Send, later, in the private draft, is the first moment the other party sees an offer.

The job, in one pass

The rail at the top (#procurement-steps) is the whole job. A step lights up when you have done enough to read it. You can jump back. You do not have to finish every step in one sitting: leave and return, and this month’s trials are still there.

flowchart TB
  A[See the hours the grid still sells you] --> B[Pick a supplier whose power arrives in those hours]
  B --> C[Set size, price and route, then try the purchase]
  C --> D[Read the whole-site bill, including unused energy]
  D --> E{Is the bill better than doing nothing?}
  E -->|Yes| F[Keep that trial and build a private draft]
  E -->|No| G[Change the terms, try another supplier, or buy nothing more]
  F --> H[Send only when you mean to make an offer]
The five steps on the Procurement Desk. Each one answers a different question. A later step cannot repair a bad answer in an earlier one.
1The needwhat the grid still sells, and what it costs
→
2Whowhose power arrives in those hours
→
3The trialsize, price, route
→
4The billsaving, unused energy, a poor year
→
5The choicebuy, combine, or buy nothing more

The overall judgement is one question: does this purchase make the site’s electricity bill better than leaving the leftover hours on the grid? Better means the whole site, not a pretty price on one line. Count energy you pay for and do not use. Count a poor year at the plant, not only a typical one. Buying nothing more is a real answer, not a failure.

Step on the rail What it achieves What to look for The call you make
1 · The need and what it costs today Shows the hours your contracts do not cover, and what the grid charges for them A grey band of leftover hours, a fresh meter, and a Rand figure for staying on the grid If there is no leftover, stop or only test a replacement. If the meter is old, fix that before you trust the money
2 · Who could supply it Ranks generators and traders by how well their power matches those leftover hours Fit, how much of the block they could cover, and which ways of buying are actually open A good shape is not a good price. A price hedge does not fill a physical gap
3 · Build the purchase Lets you try a size, a price and a way of buying, without signing The starting numbers are a suggestion. Simulate Purchase is what tests them If you change a number, the old result is no longer the one on screen. Run it again
4 · Saving and security vs the grid Turns that trial into a whole-site bill Total spend, the change from today’s contracts, unused energy, and the poor-supply year A saving against “everything from the grid” can still be worse than the contracts you already have
5 · Compare strategies and decide Puts every trial next to doing nothing The ranked table, the chart’s zero line, and any combined purchase Keep the trial that wins the question you care about. Building a draft still does not send it

Words you need

Word on the screen Plain meaning
Uncovered block The electricity your existing contracts do not cover, hour by hour. This is the shopping list. The money on the need card is this leftover only, not the whole site bill.
Option 0 · stay on the grid Do nothing new. Keep buying the leftover from the grid. Every later trial is judged against this.
All-grid reference Pretend the whole site bought every hour from the grid. Its saving against itself is R 0. It is a common ruler, not a plan you would sign.
Keep current contracts · no new purchase Stay with the contracts you already have. This can already be cheaper, or dearer, than the all-grid ruler.
Fit How closely a supplier’s power arrives in the hours you still buy from the grid. A perfect fit at a high price can still lose.
Route How the electricity would be bought. A physical PPA (power purchase agreement) is energy wheeled to your meter — it travels the wires. A virtual PPA is a price hedge: no extra electricity arrives. Via trader buys through a trader’s agreement. A closed route shows its reason and cannot be selected.
Landed cost The all-in price of wheeled energy at your meter, not the sticker on the offer.
Spill Energy you paid a supplier for and did not use. You may get a small credit back, but not the full price. That leftover cost is already inside the contract cost. Do not add it a second time.
Version One frozen trial, named v1, v2, and so on. Editing the form does not change an old version.
Strategy Two or more trials run together, so an hour that two suppliers would both cover is only counted once.
c/kWh Cents per kilowatt-hour. The small unit for an electricity price. kWh is the energy itself. MW (megawatt) is the size of the tap, not the energy in a year.
SAST South African Standard Time. The hourly chart uses this clock.
Step 1 — the need and what it costs today

What this step achieves. It answers “what am I still buying from the supermarket, and what does that leftover cost?” Until you can see that leftover, a supplier price has nothing to beat.

Open Assessment basis (#procurement-assessment-basis) before you treat the Rand figures as a decision. It tells you which month the forecast uses, whether the shape comes from your meter or from a stand-in pattern, how many past daytime hours were available, which tariff date was used, and when the meter last reported. An amber line means the meter history is old or missing. Follow Review meter history to Operations and bring readings in before you decide. The desk does not turn a missing hour into zero use.

The forecast is one full calendar month, including hours that have not happened yet. The yearly Rand figures repeat that month’s pattern over 365 days. They are a what-if, not a settled bill and not proof that every hour was metered.

The chart (#procurement-need-band) is a typical day:

View hourly demand data opens the same hours as a table: uncovered kWh, contract-covered kWh, and grid cents per kWh.

The card Option 0 · stay on the grid prices that grey block for a year at your tariff, weighted by when you use it. A sentence under the chart may also offer an indicative share of the daytime block to hedge. That share is a sizing hint at a reference price. It is not a tested offer. The tool in §6.1 shows the working.

What to look for.

The judgement. Proceed only if there is a leftover you might want to move off the grid, and the meter is fresh enough that you would defend the picture. If the site is already covered, the honest call is to buy nothing more, or to test a replacement on purpose. If the meter is stale, stop and collect readings.

Step 2 — who could supply it

What this step achieves. It answers “whose electricity shows up in the hours I still buy from the grid?” The list is Who could supply the block (#procurement-candidates). Find a supplier searches generators and traders. Filters narrow the list. Show all returns to the full list when a search finds nothing.

Each card shows fit, how much of the block that supplier could cover, which routes are open, and what could go wrong. Details opens the supporting facts. The note under the list is the key: fit is the overlap between their hourly output and your uncovered hours; coverage is the energy that would actually be delivered to you. Green on a card is daytime. Teal is evening.

What to look for.

The judgement. Shortlist suppliers who can arrive in the grey hours, on a route you are allowed to use. Do not promote a supplier because the fit badge is green if you have not seen a price. Do not choose a virtual hedge when the problem in step 1 was physical leftover hours. Park a supplier whose route is closed until the reason is one you accept.

Step 3 — build the purchase

What this step achieves. It turns one supplier into a trial: how big, at what price, by which route. The panel is Build the purchase. Until you pick someone, it only asks you to pick a supplier on the left.

The form starts from a suggestion: a size from the coverage hint, a price from your tariff, and risk terms from your preferences. The screen names where that starting size came from — a size you already tested, a declared load, or the reference-price hint. A starting value is not a result. Capacity cannot be set above what that supplier can sell. Before you run anything, unused energy has not been assessed.

Choose the route, then the supply shelf that matches it. A physical delivery cannot be filed on the virtual shelf. The route and the shelf must agree before a run or a draft is allowed.

Enter the size, the energy price, the wheeling charge and the length of the deal, then press Simulate Purchase. The button’s own line says this is a safe what-if: nothing is contracted. The run is kept as the next version, v1, v2, and so on, with the terms that were actually tested.

What to look for.

The judgement. Simulate the terms you would actually be willing to discuss, not the numbers that happened to be in the boxes. If you edit after a run, do not decide on the old result. If you prefer an earlier version, build from that version on purpose, and say so.

Step 4 — saving and security vs the grid

What this step achieves. It answers “if I signed this trial, what happens to the whole site bill?” The result sits under the builder once a version exists. The headline is a sentence such as “Beats staying on the grid by … a year” or “Costs … a year more than staying on the grid.” Three chips sit beside it: saving out of 100, security as a percent, and risk out of 100.

All of the money uses the same full-site forecast and the same stretch to 365 days.

Total spend = what you still pay the grid + what you pay on contracts.

Net saving = all-grid reference − total spend.

Contract cost includes the energy charge, the modelled wheeling charge, and the net cost of unused energy. Spill is already inside that contract cost. The line change from the current book asks a different question: does adding this purchase improve the contracts you already have? You can beat the all-grid ruler and still make today’s book worse. If the cost evidence is incomplete, the desk will not let that trial become a proposal. The draft’s Evidence section uses this same bridge.

Worked arithmetic, not a live seed result. Suppose the all-grid cost for the year is R 12,000,000, the leftover grid cost is R 3,000,000, and contract cost is R 7,000,000, of which R 500,000 is unused energy. Total spend is R 3,000,000 + R 7,000,000 = R 10,000,000. Net saving is R 12,000,000 − R 10,000,000 = R 2,000,000. Do not add the R 500,000 again.

Year 5 asks whether the deal still helps if prices move for four more years and you still use the same amount of electricity. The grid reference and the leftover grid cost are grown on their own. A fixed contract price stays fixed. A contract that escalates by a fixed percent, by CPI (the consumer price index), or by another index uses that rule, and the screen names the assumption. Fixed wheeling and recovery stay fixed. Year 5 is four annual steps from year 1. It is not “this year’s saving times the escalation rate.” A second figure uses 6% grid escalation, so you can see a milder rise. These lines do not guess that the contract will expire, that demand will grow, or that a future index will be published. If the contract is shorter than five years, year 5 only means something if you accept the continuation the screen states.

Security and coverage answer different questions. Coverage that counts the grid as a backstop can read 100% while your contracts cover much less. Security uses a poor year for the supplier’s plant (the screen calls this the conservative estimate, P90). Read that poor year next to unused energy, how long the price is locked, and how much you would depend on one counterparty. The five small gauges are those pieces: supply security, curtailment (the plant being told to turn down), unused energy, price lock, and counterparty.

What to look for.

The judgement. Prefer a trial whose whole-site spend is lower than today’s book, whose unused energy is small, and which still helps in a poor supply year. Reject a trial that only beats the imaginary all-grid site while making your real contracts worse. Reject one whose saving disappears when the plant has a poor year, unless you have decided that risk is acceptable and the price is locked in a way you understand. If the evidence is incomplete, do not build a proposal from it.

Step 5 — compare strategies and decide

What this step achieves. It puts every finished trial on one table so you can choose, including the choice to buy nothing. The comparison ranks assessed purchases, any combined strategy you have run, Keep current contracts · no new purchase, and the All-grid reference.

In saving order, a purchase that loses money sits below a better benchmark. The chart has a zero line labelled all-grid reference · saving 0. Points below that line lose money against buying everything from the grid. The corner marked “big saving · low risk” is the direction you want, not a guarantee. The table under the chart has the same numbers, so you do not have to hover. G on a point is the all-grid reference. Your current book’s saving is in the table, but its existing contract risk has not been re-scored, so it has no risk dot. Do not read a missing dot as “no risk.”

A strategy is how you try two suppliers at once. Add assessed versions and simulate them together. The combined run gives each hour to one of them, so you do not double-count the same grey hour. You still build each supplier’s draft from that supplier’s own version. A strategy does not create one contract with several parties.

Refreshing the page, or leaving for the draft and coming back, restores this month’s versions, the supplier you had selected, the form, and the strategies. A draft does not hide its supplier from the list. If one part of a strategy can no longer be loaded, the desk does not pretend the old combined result is complete.

What to look for.

The judgement. Decide which question you are answering: lowest bill, or a bill you can still live with in a poor year. Pick the row that wins that question, including the row that buys nothing. Build a private draft only from a named, current trial. Combining suppliers is worth it when the combined run still saves money after the overlap is removed. Stop before Send unless you mean the other party to receive an offer.

What the desk suggests, and what you still decide

The desk will offer a starting point. You remain responsible for the call.

Suggestion Why it is there What you still decide
Starting size Taken from your load, a reference price, or a size you already tested Whether that size is the offer in front of you. Test the real price and hours before you rely on it
Buy nothing more At the reference price, the next block does not beat the grid This does not cancel contracts you already have. A named supplier can still win if its own landed cost is below the grid in the hours it covers
Route What this supplier, this site, and this kind of contract allow A physical deal does not need the checks that a virtual hedge needs, and the reverse is also true. Read a disabled route’s reason
Best row in the comparison Whichever measure you have selected, and it includes “no new purchase” An untested hedge, or an old calculation, is not given a made-up rank. If it is missing, it was excluded on purpose
Private target and limits Carried from the tested size, with limits that stay in proportion Read them before you send. They stay private until Send

Worked example

Select an IIP with the correct fit. Leave the route on Physical PPA. Read the starting size and price and notice that they are suggestions. Press Simulate Purchase.

Check three things before you fall in love with the headline. Total spend should equal leftover grid plus contracts. The change from the current book should be read on its own, not assumed from the all-grid saving. The ranked comparison should include Keep current contracts. If the offered price loses, change the price and simulate again. The previous version stays in the list with its own name.

Press Build from vN for the version you want to keep. The studio asks the site questions once, under Evidence. Delivery, price, and risk stay on the main form. Extra devices — sharing upside, or a volume strike — open more fields only when you switch them on. Ending-the-contract terms stay folded until you need them.

If you then change size, length, price, or escalation inside the draft, press Reassess current draft terms. That attaches a new test to the same private draft and keeps your limits. Reassessment currently supports As generated supply, meaning you take the plant’s shape rather than a flat block. An unsupported shape shows a recovery message and leaves the previous evidence against the previous terms. The readiness panel stops you sending while something important no longer matches.

Keep draft & exit returns you to Commercial. Resume draft continues. Only Send shares the offer. For a physical PPA, the send checklist is the physical one. Being allowed to sign a virtual hedge does not make a physical draft look unready, and it does not make an unready physical draft look ready.

Where this is taught. The shared desk idea, including the trader and generator twins, is summarised in V3 §13.2. How a draft becomes a contract is V7 · The Deal Room.mix


6.1 The coverage rationale — how much to buy before you promote

Route: the same Commercial page · Tool: Coverage Rationale · how much to buy (#subtab-rationale-btn), above the purchase builder

How this continues from the desk above

Step 2 found a supplier. Step 3 asks how big the purchase should be. The green sentence on the need card already names an indicative share of the daytime block. This tool is the working behind that sentence. It is a sizing aid. It does not certify an offer you have not simulated.

The question, in bakery words:

For each kind of hour, how many sacks should I plan to order — enough to cut the supermarket bill, but not so many that I pay the miller for flour I will not bake?

Get the size roughly right, set it on the form, press Simulate Purchase, then keep a draft that will not bake in a habit of over-buying. That is also why the Dashboard’s unused-energy line, and the amber hatch on Performance, stay small when you add a supplier.

Where the coverage tool sits. It sizes the purchase. It does not replace Simulate Purchase.
1Right suppliertheir power matches your grey hours
→
2This toolhow much in each kind of hour
→
3Set the sizeon the purchase form
→
4Simulatebill down, unused energy small
→
5Keep a draftstill not a sent offer

How to read the table

The table has three rows: weekday 10:00, 12:00 and 14:00. Those three hours stand in for the daytime block. Each row was solved on a spread of “how busy was the site in this hour?” When the meter has 60 or more readings for that hour-type, the spread is your own history. Otherwise the desk says it is using a synthetic spread, a stand-in around the expected shape. Missing hours are left out. They are not treated as zero.

The prices in this table are the book’s reference prices, not the offer you typed in the builder. There is no fixed rule such as “always buy 70%.” Change the price and the recommended size changes.

A baker who does not know tomorrow’s queue will get this wrong in two ways. Order the average, and on a quiet day you throw flour away (you still paid the miller). On a busy day you run out and pay supermarket prices. Those two mistakes do not cost the same, so the best order is not the average. This is the newsvendor rule: size the order from the cost of each mistake.

Idea What it means here Seeded daytime hour
Cost of buying too little (Cu) The saving you miss on each kWh you did not contract and had to buy from the grid. If the grid is not dearer than the landed price, this cost is zero. 128 − 103 = 25 c/kWh
Cost of buying too much (Co) What each contracted kWh you did not use costs you, after the small spill credit. 103 − 40 = 63 c/kWh
How far down the list to order (q*) Too-little cost divided by both mistake costs, kept between 0 and 1. Zero means “buy none of the next block.” One means “buying too much is free, so cover the busiest hour.” 25 ÷ (25 + 63) = 25 ÷ 88 ≈ 0.28
Recommended kWh The busy-ness level that sits at that point in the hour’s history. At 0.28 you are below the middle of the list: you plan for a quieter hour than the average, because unused flour costs more than a supermarket top-up. Below the median
Buy nothing more When the landed price is already at or above the grid, there is no saving to miss. The sentence on the need card says the indicative target is 0%. Stop, unless this supplier’s own price is cheaper

Because unused energy usually costs more than a missed saving, the recommendation sits below the average. Do not round up “to be safe.” Rounding up is how you start paying for flour you will not bake. On the trader’s nomination screen the costs are reversed, so their number sits above the average. You do not need that chapter to use this tool. It is V6 §10.2 if you want the same idea from the seller’s side.

What you see What it means The call
Too-little cost is positive, and q* is near 0.3 A missed kWh hurts less than an unused kWh Size to the recommended kWh, not to the average hour
Buy nothing more At the reference price the miller is already dearer than the supermarket A new purchase pays only if this supplier’s landed cost is below the grid in the hours it covers. Step 4 tests that
Recommended kWh far below the middle of the list Use jumps around, and unused energy is expensive Do not round up
The 10:00, 12:00 and 14:00 rows disagree Those hours are different shapes Use the smallest as a safe “take the plant’s shape” size, and the largest as a ceiling

The process, and the call at each step

  1. Open the tool. Press Coverage Rationale · how much to buy. It is available before you pick a supplier. What to look for: three daytime rows, and a note that says whether they came from metered hours or from a stand-in. The call: if the note says the meter was too thin, treat the kWh as a sketch and go back to Operations before you treat it as a bid size.
  2. Read the two mistake costs. What to look for: a positive cost of buying too little. The call: if that cost is zero or negative, stop sizing a bigger purchase. A named offer can still win later, but only when its own landed cost beats the grid. Step 4 is that test.
  3. Read the recommended kWh. Divide by one hour to get MW for that hour. What to look for: the smallest of the three daytime rows, and the largest. The call: the smallest is the cautious size when you take the plant’s shape. The largest is a ceiling, not a target.
  4. Set the size on the purchase form. If the supplier only overlaps part of your grey hours, scale the coverage hint by the share they actually cover. The call: a supplier who covers half the block should not be given the full-block size.
  5. Simulate Purchase. What to look for: unused energy near zero, and a saving that is most of what those covered hours would have cost on the grid. The call: if unused energy jumps, the size is too big even when the headline saving still looks fine. Reduce it and run again.
  6. Keep a draft from the version you prefer, using Build from vN. The call: promote the version whose size you just checked, not the suggestion you started with.

Worked example — size the hybrid for weekday noon

Data. These are teaching numbers, not a fresh reading of Midrand DC. Grid standard rate 128 c/kWh · solar-shaped landed cost 103 c/kWh · spill credit 40 c/kWh · weekday 12:00 load taken from meter history.

Optional depth. The same “order against two unequal mistakes” idea appears on the trader nomination side, with the costs flipped: V6 §10.2.

Last verified: 2026-10-12 · Commercial tab, Procurement Desk five-step rail.

7. Dashboard — the story of the site

You need to distinguish delivery records from assumptions before changing your energy purchases. The Dashboard brings historical costs, conditional price comparisons and the current forecast together, like three separate pages in the bakery’s accounts.

Route: /org/off-taker-sites/sites/<id>/dashboard · Tab: Dashboard.

Follow along. Seat: OffTaker C (offtaker_c@webill.net). Path: Off-taker Sites → OffTaker C Midrand DC → Dashboard. You should see the historical verdict, four facts, the current review action, meter freshness and chapter links. Open How to read this for supporting explanations and the exact-data disclosures for keyboard-readable figures.

No history. Meter history needed to assess this site means delivery, costs and observed reliability are unassessed. Open Operations to import and check readings. The grid backstop is a modelling assumption, not evidence that the lights stayed on.

7.1 The verdict

The headline gives historical load, calculated grid residual and the difference between ledger plus estimated grid cost and the estimated all-grid bill. The cheapest priced delivered contract is identified consistently with the source table. A model or an unpriced contract cannot win that price comparison.

Fact How to read it
modelled demand coverage A 100 % result assumes the grid fills the modelled gap. Outages remain unassessed
of energy from contracts Physical contracted kWh as a share of historical load
ledger + estimated grid cost Historical contract charges plus residual grid energy at tariff; draft charges are not confirmed payments
retrospective price benchmark Historical daytime grid energy compared with another price; not recorded or guaranteed savings

The settled, preliminary, draft and estimated chips grade the historical window. The primary review link opens Commercial or Performance according to the current forecast. Its period and provisional status sit beside it.

Provisional forecast · meter stale or meter empty tells you to check the basis before acting. The page gives the latest read, assessment time, recorded and expected elapsed meter slots and missing slots. Expected slots start at the calendar month boundary and exclude future time. Forecast source and tariff basis expands the forecast’s provenance, eligible stored series or synthetic fallback, and tariff effective dates. Check or import readings in Operations opens recovery. Refresh evidence reloads this read-only assessment without changing contracts or meter readings.

7.2 Chapter 1 — was demand met?

This chapter answers one question: in each past month, how much of the metered load came from a physical contract, how much from the grid, and whether a contract owed energy it did not deliver.

The monthly bars show metered load, physical contracted delivery and calculated grid residual. A red slice shows recorded contract shortfall. The served strip underneath describes modelled coverage or recorded shortfall, with the month’s evidence grade.

How to read the chart

Read one month at a time, from the bottom of the bar upward.

What you see What it is
Coloured slices Physical delivery from each contract. The legend uses the seller’s name. A virtual hedge is not a slice here; it has its own column in the table
Grid (retail) The grey slice. Metered load minus physical delivery. This is calculated residual, priced later at the tariff
Contract shortfall, grid-filled The red slice. Energy a contract owed and did not deliver. It is drawn from the contracted amount upward, so it can sit over the grey
Modelled coverage · full A green block in the thin strip under that month. The model treats the grid as having filled the gap. It is not a record that the lights stayed on
Recorded contract shortfall An amber block in that same strip. The month has a recorded shortfall. Estimated months are drawn lighter

Click a name in the legend to hide that slice and look at the others on their own. Click it again to bring it back. Hiding a slice does not change the table.

First recorded contracted delivery is the dashed green line on the first month with any positive physical delivery. It is not the contract’s start date or signature date. Earlier delivery may be unassessed; review the agreement for its effective and execution dates.

The vertical axis is energy, in compact form (thousands and millions of kWh). Do not read a Rand figure off this chart. Cost is Chapter 3.

View exact monthly data

View exact monthly data opens the keyboard-readable table for the same months. The header stays visible while you scroll. The caption states the rules: UTC settlement months, energy in kWh to two decimals, grid residual calculated, physical delivery and virtual hedges in separate columns.

Column How to read it
Month The UTC settlement month, such as Jan 2026
Metered load Kilowatt-hours recorded for the site that month
A contract column That source’s delivered kWh. The heading names the source and whether it is physical or virtual. A virtual column is a hedge, not energy that arrived at the meter
Grid residual Load minus physical delivery, and never below zero
Contract shortfall Kilowatt-hours included contracts owed and did not deliver
Evidence The month’s grade (settled, preliminary, draft or estimated) and elapsed meter slots, written as recorded/expected. Expected slots start at the calendar month boundary and leave out future time

Use the table when you need a figure to quote. Use the chart to see which months changed shape. A green strip with a shortfall of 0.00 kWh still assumes the grid backstop. It does not measure an outage.

7.3 Chapter 2 — most reliable, and cheapest

This chapter compares the sources that actually delivered, on one dated history window. The sentence above the table names that window in UTC settlement months. Read the table first. The plot is the same comparison drawn in two dimensions. The three facts under the chart describe one contract; they do not award a reliability prize.

The source table

Each row is one source. The last row, Historical cost total, is the same Rand total as the headline and the Chapter 3 waterfall.

Column How to read it
Source Grid, each contract, and SAWEM (South African Wholesale Electricity Market) as a price model. A coloured dot matches the plot
Delivered Recorded energy. A model row prints a dash, because nothing was bought there
Share That delivered energy as a percent of historical load. A model row has no share
Landed c/kWh Landed cost: energy plus wheeling, transmission, distribution and levies, from priced settlement energy. Draft months are left out of the price where the ledger allows it. SAWEM shows a P50 and, beside it, a P90
Recorded obligation fulfilment For a contract, included delivery ÷ (delivery + shortfall). The small line under the percent is the evidence: metered hours that had agreement intervals, the interval or period-total basis, and statuses such as FINAL and DRAFT. The grid says not assessed. SAWEM says unrated · price model
Cost Historical charges. A second line names the ledger grade (settled, preliminary, draft or estimated). Amber text means the ledger charged the contract in months with no allocated delivery; those charges stay in the total

A high fulfilment percent over a short evidence line does not mean the supply never failed. You are reading included records, not a continuous outage log.

Badges on the name:

Badge When it appears
cheapest The lowest landed price among sources that delivered and have a price. A model, and a contract with no price, cannot win it. The grid can, if its tariff is the lowest delivered price
best value Among priced sources whose recorded fulfilment is at least 50 %, the lowest landed price. It appears only when more than one source has a price. Read the evidence line beside it. The grid has no fulfilment percent, so it cannot win this badge
reference · model SAWEM. A price to compare, not a purchase

There is no most reliable badge. Nobody on this page has been scored for observed uptime.

The plot

The plot is fulfilment against landed price. Bubble size is recorded energy, not how complete the evidence is. Names are not written on the bubbles. They are listed, one per line, under the plot, with the same colour. That list is the key. A name on the list is the same source as the row in the table.

Part of the plot How to read it
Horizontal axis Landed cents per kWh. Left is cheaper
Vertical axis Recorded obligation fulfilment, 0 % to 100 %, for contracts only
A contract bubble Higher is a larger share of owed energy recorded as delivered. Further left is a lower landed price
Unrated · price references only The lower rail. The grid and SAWEM sit here. They have a price and no fulfilment coordinate. Do not read a percent off their height
SAWEM and SAWEM P90 Two dots on that rail. P50 and P90 are model prices for the site’s grid hours. P90 is the dearer case. Neither dot is energy you bought

A cluster of contract bubbles means those sellers landed at similar prices and similar recorded fulfilment. Use the table to separate them. The list under the plot names every dot, including P90.

What the three facts add

Under the table, the first contract is described in three facts. They are seller records, not a certificate of uninterrupted supply.

Fact How to read it
Availability The seller’s HAF (Historical Availability Factor), printed as HAF and a score, plus how many monthly forecasts are on file. no HAF yet means the seller has not filed a monthly forecast
Curtailment Credit lines in the settlement ledger, and any System Operator instructions on the plant. Zero instructions means none are on file, not that the plant could not have been curtailed
Shortfall Energy owed and not delivered. No shortfall in included records still depends on the hours and statuses in the table

Take the cheapest badge, the fulfilment percent and these three facts together. A cheap row with a thin evidence line is not yet a reason to buy more of that seller. Chapter 6 is where the current forecast tells you which desk to open next.

7.4 Chapter 3 — what it cost, and what could have been saved

This chapter walks from a pretend all-grid bill to the historical cost total, then sets that total aside and prices a separate what-if. The source table, the headline and the waterfall use one cost total. Contract charges with no allocated delivery remain included. Draft and preliminary charges are labelled. Grid cost is estimated from metered residual load and the tariff.

How to read the waterfall

Read the chart from left to right. Each bar is a step. The two end bars are totals. The middle bars are changes.

Bar What it does
All-grid bill What the same historical load would have cost if every kWh had been bought from the grid at the tariff then in force
Contract saving The drop from that bill to the contracts you actually held, before shortfall and spill are put back. Drawn in green
Shortfall at retail Recorded shortfall, valued at the gap between the grid price and the contract’s landed price. Drawn as an added cost
Spill / over-contract Historical spill charges in the ledger that were not credited back. Drawn as an added cost
Cost total Where you land: contract ledger charges plus estimated residual grid cost. This matches Historical cost total in Chapter 2 and ledger + estimated grid cost on the verdict

The legend has three names: Totals, Saving and Added cost. Click one to hide that kind of bar. The two totals are measured from zero, so hiding the saving does not move the cost total. The chart’s vertical axis uses compact Rand (thousands and millions). Quote money from the disclosure, not from the axis.

View exact cost bridge

View exact cost bridge lists every waterfall step in the same order, in Rand, including a step of R 0. A saving is a negative amount. The last line is the cost total. If a step on the chart is hard to see because it is small, the disclosure still prints it. The caption of the chart reminds you of the month count, the grid price in force, the estimated bill difference, and that the benchmark below is a different figure.

The estimated bill difference on the verdict is all-grid bill minus cost total. It is not the benchmark.

The retrospective benchmark

Under the chart, Retrospective benchmark and recorded cost exposure lists five lines and then one total. The total, Retrospective price benchmark, is only the first line. It does not add the market model, the shortfall, the spill or the escalation line. Those sit in the list so you can see them. They are not inside the total.

The retrospective price benchmark multiplies historical daytime grid kWh — the hours the line names, between 06h and 17h — by the positive gap between the grid price and a contract’s landed price. Without a priced delivered contract, the line says it is using an indicative price, grid less 25 c/kWh. Either way, the figure does not prove that an offer, spare capacity or an hourly fit existed in those hours.

Line What the number is What it is not
Daytime price benchmark · retrospective Daytime grid energy × (grid price − comparison price), when the grid price is higher A saving you could have booked
No market share A model: 30 % of the grid energy that is not in the daytime block, priced at a SAWEM P50 landed price. Marked model Part of the benchmark total
Contract shortfall bought at retail Recorded shortfall × the price gap. Included settlement statuses still apply Proof the grid was the only energy available
Historical spill charges Spill charges and credits already in this historical ledger The current forecast’s spill, which Chapter 5 prices separately
Escalation not locked Shown as R 0 → grows. The note is the share of load that still takes the grid’s yearly increase Money already lost

The older left on the table name means this panel. Report the benchmark as a counterfactual price comparison. Do not report it as savings that were available, missed or guaranteed.

7.5 Chapter 4 — future-proof outlook, and SAWEM

Three conditional paths annualise historical load: as-is, plus a daytime PPA (Power Purchase Agreement) and plus a SAWEM share. Grid escalation is the book’s percent-per-year assumption, shown on the page. Contracts and the modelled market price use an assumed CPI (Consumer Price Index) escalation, also shown on the page. These paths do not use the current book forecast and do not size a purchase.

How to read the chart

The horizontal axis is the calendar year. The vertical axis is annual cost in Rand. The axis labels are compact (a million rand prints with an M). The table under View exact yearly scenario data keeps the full comma-grouped amount.

Line in the legend What it assumes
As-is Historical load stays constant. What is already on contract stays on contract and escalates with CPI. The rest stays on the grid and escalates at the book’s grid rate
+ daytime PPA From the second year, a daytime block moves off the grid onto a contract at the landed price already used on this page, then escalates with CPI. The first year matches as-is, because the addition has not started
+ SAWEM P50 The dashed line. From the second year, 30 % of the grid energy that would remain after that daytime block is priced at the P50 landed market price instead of the grid. The shaded band around it is the P10 to P90 price path. P10 is the lower annual cost, P90 the higher

Click a legend name to hide that line. The band stays with the market path; it is not a fourth legend item. A dashed vertical line labelled first full year marks the first year in which the PPA and the market share are applied. If a contract ends inside the window, a red dashed line names that ending. The label at the right-hand end of each line is that path’s last year, in Rand. The SAWEM label sits under its line.

In the first year the three lines meet. A gap that opens later is the scenario, not money already saved.

The callout under the chart is the decision rule, and it uses P90, not the attractive P50 line. Wait · P90 market price above grid stays the result when the dearer market price fails the comparison with the grid. Historical scenario · P90 market price below grid means the price test passed; you still review hourly fit, capacity, terms and market access before buying. The site has no market seat of its own. The route named in the callout is a trader.

View exact yearly scenario data lists every year and five columns: as-is, daytime PPA, and market additions at P10, P50 and P90. The caption states the units, both escalation rates, that additions start after the base year, and that offers, capacity and delivery fit are unvalidated.

7.6 Chapter 5 — health today

Six cards summarise the site. Open How to read this on the chapter for the one-sentence frame: coverage, green share and price lock describe historical delivery; over-contract exposure uses the dated current forecast.

Read the big number, then the sentence under it, then the bar. On a card that has a target, a dark tick is that target and the fill is the card’s percent. Over-contract exposure and Counterparties have no tick. Their bars are a visual weight, not a percent you can quote. Contracted coverage, green share and price lock all use the contracted share of recent load. They differ in the target and in the sentence. The other three cards answer different questions, on different windows, and can disagree with those three.

The recent window is the last 12 months that had metered load. Supply security uses the whole history on this dashboard, not those 12 months. Over-contract exposure uses the forecast period named in its note.

Card The number The sentence under it Colour and target
Contracted coverage Physical contracted kWh ÷ metered load, over that recent window target N % of load · last 12 months. N is the demand pool’s coverage target, or 70 % when the book has none Red below half the target, amber below 90 % of the target, green at or above that. The tick is the target
Green share The same recent contracted share. This card does not count certificates separately alert below 30 % Red below 15 %, amber below 30 %, green at or above 30 %. The tick is 30 %
Supply security Recorded obligation fulfilment for the whole history: delivered ÷ (delivered + shortfall). A dash means no contract has settled of what contracts owed arrived · grid filled the rest, or no contract has settled yet Red below 70 %, amber below 90 %, green at or above 90 %. The tick is 90 %. No percent means the card stays neutral
Over-contract exposure Modelled spill cost, in Rand, on the current book forecast. Not assessed when that forecast is unavailable Forecast · the forecast’s dates · modelled spill cost, or a prompt to review Performance before buying Amber when the amount is above zero. No target tick. A low number does not verify the scenario
Price lock The same recent contracted share, read here as the share treated as a fixed or CPI price of load on a fixed or CPI price · the rest inherits the grid’s yearly increase Red below 30 %, amber below 60 %, green at or above 60 %. The tick is 60 %
Counterparties How many sellers, physical or virtual, delivered energy in the history window. The bar is full when that count is at least one, and empty when it is zero One seller: carries all contracted energy · fine at that seller’s megawatts. Several: largest seller N % of load. None: no contracted supply yet Amber when the largest seller is over half of load and contracted coverage is over 40 %. No target tick

Compare the forecast dates on Over-contract exposure with any saved Performance run before you treat the two Rand figures as the same exposure. A provisional forecast does not become a verified plan because the card shows a small amount.

7.7 Chapter 6 — what to do next

The first action comes from the dated current forecast. Spill opens Performance for review. A covered forecast opens Commercial to review replacement terms. A remaining grid gap opens Commercial to compare hourly fit before selecting a supplier. An unavailable forecast asks you to check Performance. The freshness and provenance panel repeats beside these actions.

Other links open contract terms and historical Allocation evidence. Commercial, Performance and Allocation links carry Back to Dashboard when opened from this review. Contract review keeps the site filter and Dashboard chapter through the register and contract overview. Unrecognised or foreign return context falls back to the normal site destination. Browser Back restores the Dashboard’s scroll position, open data disclosures and the link you used.

Use the chapter links to jump directly to delivery, sources, costs, scenarios, evidence or actions. They move keyboard focus to the chapter. Supporting explanations remain under How to read this.

Desired outcome for §7

You can choose the next review desk while distinguishing historical ledger evidence, model assumptions and conditional scenarios. Exact values and their basis remain available without interpreting chart coordinates.

Last verified: 2026-10-13 · D01–D11 Dashboard implementation.

8. The landed-cost model — where “saving” comes from

This section answers one buyer question in plain language: “If I buy wheeled energy instead of grid energy, how much money do I actually save — and how can that number go wrong?”

You do not need trading jargon. Read it as a factory (or mall, or mine) that already buys electricity every hour. The only choice is from whom.

Every saving number in this volume uses this rule. Overview Saving vs all-grid is the period sum. The directory Saving · month tile is the energy-only cousin (it skips losses and wheeling — do not quote it as the bill). The Dashboard waterfall is the lifetime sum. Procurement Cu and Co are this rule, per kWh, before you promote.

The story in one picture

Every hour your site needs energy. Two doors:

  1. Grid door — buy from the utility at the retail tariff for that hour.
  2. Wheeled door — buy from a generator over the network, at a contract price, then pay network losses and wheeling so the energy arrives at your meter.

Saving is simply: what the grid door would have cost minus what the wheeled door actually cost you. If wheeled is cheaper, you save. If you buy more wheeled energy than you use, you still paid for it — and that can eat the saving.

Two doors for the same kilowatt-hour — saving is the gap
1grid door
Retail tariffGrid pricethat hour’s TOU
2wheeled door
ContractPPA priceat the generator
÷losses
+ networkWheelingadder
=landed
At your meterLanded costtrue all-in
Δsaving
Grid128 cexample
−landed
Landed103 cexample
=save
Per kWh used25 cbill saving

Words you will meet (no prior knowledge)

Word Plain meaning
Off-taker / site The place that uses the electricity (factory, mall, mine).
c/kWh Cents per kilowatt-hour — the usual small unit for electricity prices.
PPA / contract price What the generator charges at their gate (e.g. 85 c/kWh for solar).
DLF (distribution loss factor) A number less than 1 that says “some energy is lost on the wires”. To get 1 kWh at your meter, you must buy a little more than 1 kWh at the generator. Dividing by DLF scales the contract price up to a delivered price.
Wheeling The network fee to move energy from the generator to your site (e.g. 15 c/kWh).
Landed cost The true all-in cost of one wheeled kWh at your meter: contract after losses plus wheeling.
Grid tariff / TOU What the utility charges that hour. TOU = time-of-use: peak, standard, and off-peak hours each have their own rate (seeded Megaflex example: peak 210 · standard 128 · off-peak 95 c/kWh).
Saving per kWh Grid tariff for that hour minus landed cost. Positive = wheeled was cheaper.
Over-contracting Buying wheeled energy in an hour when your site did not use it. You still paid landed cost; you only get a small spill credit back.
Spill credit A partial refund / bank credit for unused wheeled energy (book default 40 c/kWh). It does not repay the full landed cost.
Green coverage Share of your consumption that came from non-grid (wheeled / green) energy — the sustainability percentage.

The common mistake

People often compare:

PPA sticker price (85 c) vs grid tariff (128 c) → “I save 43 c!”

That is the wrong pair. The sticker ignores losses and wheeling. The engine compares:

Landed cost (what you truly pay at the meter) vs grid tariff (what you would have paid the utility for the same hour).

The OffTaker Sites Contract c/kWh and Saving · month tiles use the sticker pair on purpose — they are a shop-front check. Overview, Procurement and the Dashboard use the landed pair.

Step by step — build landed cost, then saving

Step 1 — Start with the contract price at the generator. Example: solar PPA = 85 c/kWh.

Step 2 — Scale for wire losses (DLF). With DLF 0.966, each delivered kWh costs:

Step 2 — price after losses
85 ÷ 0.966  ≈  88 c/kWh   (at your side of the wires)

Why divide? Because you pay for energy that never arrives; the DLF turns “price at the plant” into “price for 1 kWh that does arrive”.

Step 3 — Add wheeling. Book default 15 c/kWh:

Step 3 — landed cost
landed cost  =  88  +  15  =  103 c/kWh

Step 4 — Look up the grid alternative for that same hour. On a Megaflex standard hour the grid is 128 c/kWh.

Step 5 — Subtract.

Step 5 — saving per wheeled kWh you actually use
saving per kWh  =  grid tariff  −  landed cost
                =  128  −  103  =  25 c/kWh

About one fifth off, per wheeled kilowatt-hour used — before any future grid-price escalation.

Worked standard-rate hour — 85 c sticker becomes 103 c landed
Acontract
Sticker85 cat generator
÷0.966
After DLF88 cdelivered equiv.
Bnetwork
After DLF88 c
+wheel
Landed103 c+ 15 c wheeling
Cvs grid
Megaflex std128 c
−landed
Saving25 cper used kWh

The formula card (same maths, compact)

Landed cost and saving (every hour)
landed cost (c/kWh) = contract price ÷ DLF + wheeling
saving per kWh      = grid tariff (that hour's TOU rate) − landed cost

On the engine’s allocation lines this is honest bookkeeping: buy = landed cost, sell = grid price avoided, margin = the saving. Every Rand of headline Bill saving is the sum of those hourly lines — you can drill into them the same way a trader drills into margin lines.

When saving goes wrong — over-contracting

Saving only happens on wheeled kWh your site actually used. If you contracted more than you consumed in that hour:

  1. You still paid landed cost (103 c in the example).
  2. You only get the spill credit back (default 40 c).
  3. You lose the difference on every unused wheeled kWh: 103 − 40 = 63 c/kWh.

That loss is over-contract exposure — the buyer’s cousin of trader spill. The coverage optimiser (§6.1) exists to keep it small. On the Dashboard it is the red “spill forfeited” step on the waterfall.

Same landed cost — only the used slice earns the 25 c saving
IllustrativeUsed vs over-bought wheeled energy
Hour demandwhat the site used
Used 70% Unused 30%
Wheeled buysame 100% bought
Saves 25 c/kWh Loses 63 c/kWh
Used / saving slice Unused demand Wheeled kWh that earned saving Over-contract loss (landed − spill credit)

Three numbers that fall out of the model

KPI Plain meaning How to react
Bill saving (R) Sum of hourly savings on used wheeled energy, after over-contract losses. Up is good. If it goes negative, you over-bought so badly the PPA hurts the bill — the screen will not flatter you.
Over-contract exposure (R) Rand lost on unused wheeled energy (landed − spill credit). Down is good. Rising exposure → trim MW, change shape, or use the coverage optimiser (§6.1).
Green coverage (%) Non-grid delivered energy ÷ total consumption. The sustainability report number. Rising green with rising over-contract is a warning: you bought “green” you did not use.

How to read it — seven steps

  1. Forget the PPA sticker; ask for landed cost.
  2. Confirm DLF and wheeling assumptions on the book.
  3. Pick the hour’s TOU (peak / standard / off-peak) — grid price changes by hour.
  4. Compute saving per kWh = grid − landed.
  5. Check whether that hour’s wheeled volume was used or over-bought.
  6. Sum used-hour savings into Bill saving; sum over-bought losses into Over-contract exposure.
  7. Read Green coverage beside those two — green without unused energy is the healthy pattern.

Learn → act

You see It means Do this
Sticker 85 c looks “cheap” vs 128 c grid Incomplete comparison Recalculate with DLF + wheeling → landed
Landed 103 c, standard hour 128 c Healthy ~25 c saving on used kWh Scale only to hours/shape you actually consume
Saving positive but over-contract rising Buying unused green Reduce MW or reshape; open Coverage rationale
Bill saving negative Over-contract wiped the benefit Do not promote that deal; cut volume first
Green up, over-contract flat More of your load is wheeled and used Good — that is the off-taker win

Desired outcome

You can explain landed cost to a non-trader in one minute, recompute the 85 → 103 → 25 c example without notes, and spot when a “cheap” PPA is actually an over-contract problem — on Overview, on the desk, and on the Dashboard waterfall.