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.
- 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.
- Operations (§3) — was the recorded history complete, and how recently did the meter report? A full old month is not today’s diary.
- 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.
- Allocation (§5) — one named month: which agreement actually delivered, what fell to the grid, and whether it adds up to the meter.
- 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.
- 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.
- 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(passwordsupersecret). 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:
- recorded use, such as 72 MWh metered · Oct 2026 (may be partial), or an estimate such as ~72 MWh a month estimated when no month has readings;
- the municipality name, on a municipal site that has one;
- a fraction such as 3/5 contracts.
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.
- Review site record opens Operations. Inactive and Closed come first, even when the meter is also quiet.
- Check meter data opens Operations. The meter is overdue, or physical supply is booked and no month has readings.
- Set up supply opens Commercial. There is no physical agreement to judge.
- Review supply gap opens Commercial. Cover is under 60 %, so more than 40 % of that average demand is still on the grid.
- 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.
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.
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 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.
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.
- With no sites, it says No off-taker sites yet — add the first site to start buying.
- With sites but nothing to judge, it says how many are registered, how many meters have not reported, and how many are uncontracted.
- When some sites can be judged, it says how many are under a physical agreement, then either the fleet capacity cover and the energy-only saving, or the capacity gap when that cover is under 60 %. It closes with the other sites: uncontracted, without readings, or both.
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:
- no physical supply booked;
- physical supply booked, and the meter has never reported a month;
- capacity cover under 60 % (more than 40 % of that average demand still sits on the grid).
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.
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:
- None — no material change is planned.
- Planned expansions — the shop will grow, so more load is coming.
- Load changes — the existing process will use more or less energy.
- Operational shifts — hours or shift patterns will change, even if the year’s energy stays similar.
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:
- Not requested — no fee has been asked for yet.
- Requested — a fee is due and not yet paid.
- Paid — the fee has been paid.
- Waived — the network said no fee is needed.
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:
- Paid — the deposit is in.
- Pending — the deposit is still outstanding. Energy is not expected to flow until it is paid or waived.
- Waived — the network said no deposit is needed.
Buyer accepts contractual curtailment is one of:
- No — you want the contract to treat that cut as a shortfall.
- Yes — you will accept the agreed cut without treating it as a shortfall.
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
- Review readiness lists every badge. Missing core titles appear as a comma-separated list.
- Create off-taker site is shown only when nothing is missing.
- 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.
- 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
- Open OffTaker Sites.
- Choose the site’s name.
- 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]
- Press Import intervals. The modal shows this site’s meter number and configured metering interval when available.
- Download the demand CSV template. Its
meter_refis already filled for the site. Replace the example row; the example’s 125 kWh is not a measured reading. Demand goes inkwh_import; setkwh_exportto 0 when there is no export. - 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. - 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.
- 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.
- 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]
- 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.
- 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.
- 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.000and 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:
- Where did each kWh I used come from?
- Did I pay for more energy than I used?
- What did unused wheeled energy cost me?
- 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).
- Find midday (roughly 10:00–15:00). Is the stack mostly Wheeled, or is Grid still thick?
- Find evening (roughly 17:00–21:00). Does Grid swell when solar falls away?
- Check early morning. A tall Grid band here is normal for solar-heavy books.
- Glance at Virtual — thin or absent for most physical-only demos; thick virtual without wheeled means financial cover, not displacement.
- Look above the load line. Amber = you paid for energy you did not use.
- 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?
- 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.
Midday grid still tall — buy solar
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
React: add evening / firm / wind / storage-shaped supply — more midday solar mostly raises Over-contract.
Thin grid ribbon — healthy mix
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.
How to read it
- Find Year 1. Grid above Landed? You already save on a wheeled kWh today.
- Find Year 5. The live series is
grid × (1 + pct/100)^nfor n = 0…4. At 12 % and 128 c: 128.0 · 143.4 · 160.6 · 179.8 · 201.4. - Look at the wedge. The green fill and the vertical gap markers are the strategic argument for a multi-year PPA.
- Check the strip. The Grid line is only as honest as the escalation % you saved.
- Remember the limits. This chart does not include over-contract losses, TOU mix shifts, or a PPA that itself escalates.
Healthy wedge — grid climbs, landed flat
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
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
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.
- Read Over-contract cost and Saving vs all-grid together.
- On the load chart, find hours where Wheeled sits above load (often the amber bracket).
- 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.
- Do not add volume until this leak is closed.
- 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
- Read rank 1 first — that is the largest Rand (or the first remaining flag).
- If Trim is on the list, do that before any Buy / Green / Coverage add.
- Treat Price the SAWEM route / Hold: SAWEM… as a watch unless the cheaper-than-PPA title is showing.
- Do one card’s steps, then Run 12-month forecast.
- 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 (
megaflexor 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]
- 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.
- 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.
- 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.
- 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.
- 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 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:
- Green is hours your contracts already cover.
- Grey is hours you still buy from the grid. That grey band is the uncovered block.
- The dark line is your site’s use.
- The dashed red line is the grid’s time-of-use price: what the utility charges in that hour. Time of use means the price changes with the hour. A supplier is a discount only in the hours it actually covers, not because its headline cents look lower than some other hour.
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.
- A grey band at all. If the headline says your contracts already cover the whole forecast, there is nothing left to displace. A further purchase shows up as unused energy, not as a saving, unless you are replacing a contract that is about to end.
- Where the grey sits. Daytime grey suits solar. Evening grey needs a supplier that still generates then, or a trader who can sell a firmer block.
- The Rand on Option 0. That is the cost of doing nothing about the leftover. It is not the whole site bill. Do not compare it with the full-site total you will see after a simulation.
- The meter warning. A stale meter makes every later Rand figure a story about old behaviour.
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.
- Fit and coverage together. High fit means their shape matches your grey hours. Coverage tells you how much of the leftover they could take. Either number alone is not a reason to buy.
- Open routes. A physical PPA brings wheeled energy. A virtual PPA is only a bet on price: it does not fill the grey hours. Via trader buys through a trader. A route that is switched off shows why. Its untested money is marked unavailable and is left out of the saving chart.
- A card that already has your private draft. Resume private draft opens that draft. It does not start a second offer. You can also try the supplier again and keep the draft, including the private limits you have not sent.
- An empty list. “Already covered” means step 1 found no leftover. “No eligible suppliers” means this book has no one who can sell to it yet. “No match” means the search or filter is too tight.
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.
- Whether the starting size is the offer you would sign, or only the desk’s hint. Change it if the supplier quoted something else.
- The route you intend. Physical, virtual, and via trader are different products. The advice line under the route says why the desk suggested one.
- The message Editor terms differ from the latest assessed
run (
#procurement-stale-evidence). It appears when you change size, price, route, wheeling, term, or shelf after a run. Build proposal stays off until you simulate the numbers now on the form. The older versions underneath are unchanged. You may still press Build from v1 (or another named version). That button uses the frozen trial, not the half-edited form. Read that version’s terms before you press it. - An older trial whose money was calculated on a previous method. It stays as history. Run it again before you use its Rand figures.
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 headline Rand against staying on the grid, and the same sentence for the poor-supply year. A deal that only wins in a typical year is a weaker deal.
- Total spend, and whether it equals leftover grid plus contracts. If you cannot see that sum, do not invent one.
- The change from the current book, separately from the all-grid saving.
- Unused energy inside the contract cost, not as an extra line you add yourself.
- Year 5 only if you accept “same volume, stated price rules.” Do not read it as a forecast of your factory in five years.
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.
- Where “keep current contracts” sits. If it beats every new purchase, the call is to buy nothing more.
- Whether a point is below the zero line.
- A strategy that looks wonderful as two separate cards but shrinks when run together. That shrink is the overlapping hours being counted once. Believe the combined run.
- The version name on the row you are about to keep. Build from vN keeps that trial, not whatever is currently typed in the form.
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.
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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Cost of buying too little = 128 − 103 = 25 c/kWh.
- Cost of buying too much = 103 − 40 = 63 c/kWh.
- How far down the list = 25 ÷ 88 ≈ 0.28.
- Suppose the middle of the 12:00 history is 1,000 kWh and the 28th point on that list is 700 kWh. You plan for 700 kWh, not 1,000. Across the daytime block the desk’s sentence then reads as a hedge of about 70% of the typical daytime use — the ratio of the recommended hours to the middle hours, not a rule written on the wall.
- Set the size so the supplier’s noon output is about 0.7 MW for every 1 MWh of typical noon load. Simulate. Unused energy should sit low, and the saving should be close to 25 c times the kWh you actually moved off the grid.
- Push the size up to the average instead and simulate again. The saving barely moves, but unused energy for the year appears, and the note quotes what that wasted energy costs. That gap is what this tool saves you. It is also what the Dashboard will later not have to list as energy you paid for and did not use.
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:
- Grid door — buy from the utility at the retail tariff for that hour.
- 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.
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.
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:
- You still paid landed cost (103 c in the example).
- You only get the spill credit back (default 40 c).
- 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.
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
- Forget the PPA sticker; ask for landed cost.
- Confirm DLF and wheeling assumptions on the book.
- Pick the hour’s TOU (peak / standard / off-peak) — grid price changes by hour.
- Compute saving per kWh = grid − landed.
- Check whether that hour’s wheeled volume was used or over-bought.
- Sum used-hour savings into Bill saving; sum over-bought losses into Over-contract exposure.
- 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.
