← Manual home

V20 · Carbon Tax Compliance

The emitter seat: facilities, the year’s activity, the section-6 working, offsets, and the July pack the taxpayer files from.

1. This volume

You are an emitter — a company that may owe carbon tax under the Carbon Tax Act. You may own no meter and wheel no electricity. This volume is the Tax room: register the places that emit, capture the year, watch a live estimate of the liability, compare offsets, and leave July with a pack whose figures you can trace.

The platform computes, evidences, assembles and exports. It never holds SARS eFiling credentials and never submits a return. You file outside WeBill, then come back and record the reference number SARS gave you.

Where this is taught. Certificates, custody, and the COAS pipeline — V19 · Carbon and V19 §21. The shop where you buy offsets — V19 §20.

Where you are in the sidebar

Carbon → Tax (/org/carbon-tax). The heading is Your carbon-tax year. The page says you turn facility activity into an explained liability, then close the evidence gaps before you prepare the return.

Reporting year is a year list, from next year back to 2019. Changing it reloads that year’s rooms. Beside it, an amber line always reads: Working estimate · Tax treatment requires review. WeBill prepares working papers; you review and file through SARS.

If the organisation has no carbon participant profile, a notice says Taxpayer profile required for return packs. You can still organise the year. You cannot prepare a pack until the profile is active.

The tab bar is Carbon tax workflow. Each tab has a tooltip that matches the sentence under the bar.

Tab Address What you do there
Year overview ?tab=overview See the estimate, the gaps, and how each category becomes rand
Activity & evidence ?tab=activity Capture activity and confirm proposals with their papers
Facilities ?tab=facilities The physical boundary, the SARS licence, and which months have activity
Offsets ?tab=offsets Caps, surrenders, and holdings that are not yet surrenders
Return packs ?tab=returns Freeze a version, prepare a working pack, record that you filed

Think of the year as a tax file on a desk. Facilities are the cover (which sites are in). Activity is the receipts. Overview is the calculator on top of the receipts. Offsets are the credits you are allowed to set against the bill, and only after the right stamp. Return packs are the envelope you check before you walk it to SARS yourself.

flowchart TB
  F[Add each emitting facility] --> L[Record the SARS licence]
  L --> A[Capture activity with a published factor]
  A --> E[Attach evidence and confirm proposals]
  E --> O[Read the estimate on Year overview]
  O --> S[Save a provisional or FINAL assessment]
  S --> P[Prepare a pack per facility]
  P --> X[File with SARS outside WeBill]
  X --> R[Record the eFiling reference]
Tax room — five tabs in working order. Return packs is last because a pack without a facility, a licence, confirmed activity and evidence is refused by name.
1Facilitiesboundary and licence
→
2Activityquantity, factor, evidence
→
3Overviewestimate and allowances
→
4Offsetscaps versus surrenders
→
5Return packsfreeze, export, record filing

The overview’s next-step button follows that order for you. No facilities yet: Define the facilities you report. No activity: Build the year’s activity record. Proposals waiting: Review proposed activity. Confirmed rows with no file attached: Close the evidence gaps. A saved assessment that no longer matches the inputs: Update your saved assessment. Otherwise: Review the calculation and return readiness. The button label is the tab it opens.

Follow along. Seat: an organisation with a carbon participant profile. Path: Carbon → Tax. You should see Reporting year, the amber working-estimate line, and the five tabs above. A profile that is missing shows Taxpayer profile required for return packs and still lets you open the tabs.

Year overview

Four tiles:

Tile Meaning
Current estimated liability Rand from confirmed activity and the dated source records. Not calculated when the engine has nothing safe to say
Confirmed emissions Tonnes of carbon dioxide equivalent, and how many facilities sit in this organisation
Awaiting confirmation Proposed records. They are excluded from the estimate. Amber when the count is above zero
Evidence gaps Confirmed records with no supporting file. Amber when any remain

From emissions to liability is the path emissions → allowances → taxable tonnes → tax. Save assessment opens the drawer. It stays disabled until there is an estimate, at least one activity record, and you may edit.

Each category is a row: name, tonnes emitted, taxable tonnes, and rand. Open it. You then see the basic allowance, the additional allowances claimed, offsets applied against the cap, the combined allowance, the aggregate ceiling, and the tax rate per tonne. The percentages come from that year’s parameter register. The page says so. A missing register row is named. The screen does not invent a percentage.

If there is no estimate, the empty state is The calculation needs source data. No confirmed activity is not the same as zero emissions. A missing tax rate or allowance asks you to have the register completed. No liability is inferred from a blank.

Source register & assessment history is a closed disclosure. It lists each parameter row (category, allowance kind, percentage, source) and each saved version: version number, grade, rand total, and when it was saved. If nothing has been saved: No saved assessment. The estimate above follows the current confirmed records.

Saving is taught with the pack in §7. The formula those tiles rest on is §5. The 2026 register picture is §2.

Actions that change data open a drawer from the right, titled for the job, with the eyebrow Carbon tax and the year. A member who cannot edit sees the year and cannot press the save buttons.

2. The tax explained

Section 6 of the Act is one expression with four copies of the same idea — take the tonnes in a category, subtract what you may shield, tax the rest:

X = {[(E − S) × (1 − C)] + [D × (1 − M)] + [P × (1 − J)] + [F × (1 − K)]} × R

Phase 2 (2026) numbers live in register rows, never in code:

Parameter 2026
Headline rate R R308 / tCO₂e
Basic tax-free allowance 50%
Offset cap — combustion 15%
Offset cap — process and fugitive 10%

When the Budget moves a number, the platform moves a row. Historical snapshots keep saying what they said.

3. Your facilities and licences

The reporting boundary is the list of places whose emissions belong in this return. The SARS licence register — form DA 185 — is the evidence that a place is allowed to account for them. Unlicensed emitting is an offence. The platform records the facility and the licence. It does not submit the DA 185 application.

Open Carbon → Tax → Facilities (/org/carbon-tax?tab=facilities). The heading is Facilities, licences & coverage. The purpose line says you maintain emitting facilities, SARS licences, and reporting coverage.

Follow along. Path: Tax → Facilities. With no facilities you should see Set your reporting boundary, and the instruction to add each emitting facility and its physical address.

Add a facility

Add emitting facility (the add control) opens the drawer Add an emitting facility. You give a name that is unique inside the organisation, the physical address, the sector, and a SAGERS reference when you have one. SAGERS is the national greenhouse-gas reporting system. The reference keeps the carbon-tax numbers lined up with what you report there. Save facility writes the row.

An empty year shows no cards. That empty state is the honest start. It is not zero facilities invented for you.

Read a facility card

Each card is one facility. Under the name: the sector, then SAGERS and the reference, or not recorded. A badge reads Licensed or Licence needed.

A line counts records and missing evidence. Twelve month chips, January to December, are green when that month has confirmed activity and grey when it does not. Hover text is Activity recorded or No confirmed activity. The sentence under the chips is the limit of the picture: coverage means activity was recorded. Readiness for the return, which checks each reported category on its own, is on Return packs.

Each licence already stored prints as DA 185, the reference, the status, and the warehouse number or not recorded.

Record a licence

Record licence opens Record a SARS licence. You record the application or the outcome. A licensed outcome requires its supporting document. Save licence record stores it. Upload rules are the same as activity evidence: PDF, CSV, text, or image, up to 10 MB, kept with its content hash.

A licence is applied, licensed, or lapsed. Licensed requires the outcome file. Lapsed is recorded. It is not deleted. The history of the permission stays on the facility.

The DA 185 pre-fill, when you export it with a pack, is a PDF and a CSV you submit yourself. §7 is the envelope those files travel in. §8 is the promise that WeBill does not send them.

4. Capturing your year

Every tonne that can reach a return pack is born as an activity record against a published factor. The factor says how much emission one unit of activity represents. You do not type the tonnes by hand and hope. You type the activity, in the factor’s own unit, and the platform applies the factor it has on file for that date.

Open Carbon → Tax → Activity & evidence (/org/carbon-tax?tab=activity). The heading is Evidence behind the emissions. Declared activity is confirmed when you capture it. Imported proposals need a person to review them before they affect the tax.

Follow along. Path: Tax → Activity & evidence. With no rows you should see No activity for this year and a link Manage facilities. The add control stays disabled until a facility exists.

The table

When rows exist, the sticky header is Facility / source, Period, Activity, Emissions, Evidence / status, and Review.

Capture

Capture activity opens Capture activity with evidence. You pick the facility, the period, the activity quantity in the factor’s unit, and you can attach the source document in the same gesture. Save declared activity writes a confirmed row when you typed it yourself.

Supporting evidence is the upload. The hint is PDF, CSV, text or image, up to 10 MB, stored with its content hash. A hash is a fingerprint of the file. If the file changes later, the fingerprint will not match, so the pack can show you it is still the same document.

Three ways a row is born, one record underneath:

Five categories line up with the DA 180 annexures 01A.1, 01A.2, 01B.1, 01B.2 and 01C. The engine reads confirmed rows only. A proposed row is visible and is excluded from the estimate. That is why Awaiting confirmation on the overview can be above zero while the liability ignores those tonnes.

Review a row

Review opens Activity and its evidence. You see the facility, the capture method, the status, the activity, and the emissions. A Calculation provenance block lists the working: the factor and the inputs that produced the tonnes. If a file is attached, the drawer shows its SHA-256 fingerprint. SHA-256 is the name of the fingerprint method. If no file is attached, the drawer says this record will block return preparation.

Attach evidence & confirm record is there when the file is missing. Confirm reviewed activity is there while the status is still proposed, and it stays disabled until a file is attached and you may edit.

A factor revision never silently rewrites history. Recompute is an explicit action that versions the working. The overview’s saved assessments keep the version you saved. If inputs move after that, Return packs tells you the assessment is out of date.

4.5 Settled generation

A facility linked to a thermal generator can receive a SETTLED proposed record. Its quantity is FINAL settled megawatt-hours times the profile’s heat rate in gigajoules per megawatt-hour. The working keeps the settlement identifiers, the content hashes, and the heat rate. Playing the same settlement again writes nothing. A changed settlement rebuilds a proposed record and keeps the previous working. A confirmed record is left as it was, and the runner reports the variance. A SETTLED record can be confirmed without a separate uploaded file because the settlement is the source evidence. Review overlapping fuel you typed by hand before you confirm: the platform does not cancel a duplicate declaration for you.

5. The formula worked by hand

The 2026 cement-maker example with the corrected 60% basic allowance:

Step Calculation Result
1. Measure Combustion E = 100 000 tCO₂e; Process P = 50 000; Fugitive F = 10 000; S = D = 0 —
2. Combustion allowances Basic 60% + offsets 15% → C = 0.75 taxable share 25%
3. Combustion tax 100 000 × 0.25 × R308 R7 700 000
4. Process allowances Basic 60% + offsets 10% → J = 0.70 taxable share 30%
5. Process tax 50 000 × 0.30 × R308 R4 620 000
6. Fugitive allowances Basic 60% + offsets 10% → K = 0.70 taxable share 30%
7. Fugitive tax 10 000 × 0.30 × R308 R924 000
8. Total levy sum R13 244 000

Pinned by test/wb/carbon_tax/assessment_compute_test.exs. Changing the example without changing the engine (or vice versa) fails the build.

On /org/carbon-tax the same arithmetic is labelled a working estimate. The tax treatment requires review. The screen does not copy these percentages into the page; it reads the year’s register. A missing register row is named, and no liability is invented to fill the gap.

Settled peaker example

For an illustrative 1,000 MWh of FINAL diesel generation at a declared heat rate of 11.4 GJ/MWh, the bridge proposes 11,400 GJ. At the seeded 0.0741 tCO₂e/GJ factor, that is 844.74 tonnes. With only the 60% basic allowance and the seeded R308/t rate, the assessment is R104,071.968 before presentation rounding. The marginal-cost card therefore includes R104.071968/MWh of estimated carbon cost. These are worked inputs, not a claim about a particular month’s settled volume or an entitlement to additional allowances.

The SETTLED record lists the settlement IDs, quantities and heat rate used. Confirm it after review. Re-settlement may refresh a proposed record; after confirmation it produces a variance for review and retains the confirmed record.

6. Offsets and the market

An offset is a carbon credit you have given up, with the right papers, so it can reduce the taxable tonnes. A credit sitting in your cupboard is not yet an offset. The Tax room keeps those two facts apart.

Open Carbon → Tax → Offsets (/org/carbon-tax?tab=offsets).

Three tiles:

Tile What it counts
Remaining offset allowance Tonnes still inside the category caps on this estimate, or Not calculated
COAS holdings to review Free, confirmed holdings that are listed for the COAS (Carbon Offset Administration System). They are not a tax surrender
Recorded surrenders Surrender rows for this reporting year. Only these enter the estimate

The next step is titled A holding becomes a tax offset only with surrender evidence. The text tells you to check the project, the vintage, and COAS eligibility, finish the registry steps, and keep the SARS retirement certificate. Buying a credit does not reduce this assessment.

Find carbon credits opens Market with the carbon and COAS-listed filters already set (/org/carbon-market?kind=carbon&coas=true). Review COAS pipeline opens Certificates → Registry pipeline.

Where this is taught. How a trade is agreed and delivered — V19 §20. How a block moves through COAS — V19 §21. What a retirement claim is — V19 §15.

The cap table

One row per category: Cap, Surrendered, and Applied to tax, each in tonnes of carbon dioxide equivalent. Applied is the smaller of what you surrendered and the cap. Both numbers are in the working, so you can see a surrender that the cap did not fully use.

The registered picture for 2026 is a 15% cap on combustion and a 10% cap on process and fugitive emissions. Those percentages are register rows, not numbers typed into the page. §2 and §5 show the arithmetic. When the Budget changes a cap, a new register row changes the next calculation. An old saved assessment keeps the cap it was saved with.

Under the table, each surrender is its own card: category, quantity, the COAS reference or reference missing, then Surrender evidence attached or Surrender evidence missing — resolve before filing.

A closing sentence on the page draws the line the other way: RECs support renewable-electricity claims and are measured in megawatt-hours. They are not carbon-tax offsets. An avoided-emissions estimate is a report. It is not an issued credit.

flowchart LR
  H[COAS holding in Certificates] --> M[Buy or already hold]
  M --> P[Registry pipeline records the stages]
  P --> S[Surrender with evidence]
  S --> T[Offsets tab counts it inside the cap]
  T --> R[Return pack can include the line]

7. The July pack, page by page

July is when the year’s working has to leave your desk as a file a person can review and then file with SARS. The platform freezes one version of the calculation into a return pack: a working PDF, the annexure spreadsheets, and an index of every evidence fingerprint.

Open Carbon → Tax → Return packs (/org/carbon-tax?tab=returns). The purpose line says you resolve readiness gaps, freeze the calculation, and record the external filing.

Follow along. Path: Tax → Return packs. You should see Review, freeze, prepare, then file externally, or, if inputs moved after the last save, The saved assessment is out of date.

Freeze the calculation first

Review & save assessment opens Save the calculation. The drawer tells you that a provisional version supports review, and that you choose FINAL only after you have reviewed the reporting boundary, the activity, the allowances, and the surrenders. Save provisional and Save FINAL assessment are separate buttons. FINAL asks you to confirm. Earlier versions stay. FINAL freezes the working and its input fingerprint. It does not remove the working-estimate label, and it does not send anything to SARS.

The same drawer is Save assessment on Year overview.

Under the next-step panel, the current snapshot prints as Assessment v its number, its grade, and its rand total. Green text Matches the current calculation means you may prepare a pack. Amber text Inputs have changed. Save a new version before building a pack means the prepare buttons are off until you save again.

Readiness, one facility at a time

No facilities: Add a facility to start readiness checks, and a link Set up facilities. Packs are prepared per facility, against one version of the organisation’s assessment.

Each facility card shows either the named refusal or Checks complete. Prepare a working pack for review. Prepare pack stays disabled while a refusal is showing, while the assessment is stale, or while you may not edit. While it runs, the button reads Preparing….

Preparation is refused, by name, when:

The card states the first blocker in plain words, not only the internal name.

Saved packs

Saved return packs lists one button per pack: facility, version, status, and Review & download. None yet: No packs prepared for the year.

Opening a pack uses the drawer Review the return pack. It names the facility, the year, and the version, and it says the pack is a preparation aid. It is not an electronic SARS submission.

Downloads, all scoped to your organisation:

Control Address
Working PDF GET /org/carbon-tax/packs/:id/pdf
Audit index GET /org/carbon-tax/packs/:id/audit
CSV plus the annexure code GET /org/carbon-tax/packs/:id/:code

The annexure sheets follow the SARS field list for codes such as 01A.1 through 02. The audit index keeps the record identity, which working produced it, and the evidence reference, including the SHA-256 fingerprint. The PDF separates the organisation-wide assessment total from the facility’s own activity, so a reader does not treat one facility’s sheet as the whole company’s tax.

After you have filed

When the pack status is ready, the drawer asks for External eFiling reference. The tooltip says to record it only after you have submitted the return through SARS, and that WeBill does not send it. Record completed external filing stores the reference. The drawer then shows Filing reference and the value you typed.

That mark means you filed. It does not mean WeBill filed. There is no button that submits a DA 180 or a DA 185.

If you change activity, a licence, or a surrender after a pack exists, the assessment becomes stale, new packs stay disabled, and you save a new version. The old pack remains as the file you prepared from the old version.

8. What the platform will never do

The Tax room labels every liability a working estimate and says the tax treatment requires review. A FINAL assessment freezes the working. It does not upgrade that label into a filed return, and it does not transmit the pack.