Skip to content

Latest commit

 

History

History
382 lines (318 loc) · 20.7 KB

File metadata and controls

382 lines (318 loc) · 20.7 KB

Sources

Every requirement this tool enforces comes from a document in this list. Each was fetched from its publisher and read. Nothing here is written from memory or from a summary.

If you are reviewing a check, start here: open the source, find the locator the check cites, and read the sentence yourself.

Primary

Power Source Disclosure regulations

  • What: California Code of Regulations, title 20, division 2, chapter 3, article 5, sections 1391 through 1394.

  • Publisher: California Energy Commission.

  • Effective: 18 June 2025. The publisher's own docket cover sheet, docket 21-OIR-01, transaction number 264974, describes the document as "Effective June 18, 2025".

  • URL: https://efiling.energy.ca.gov/GetDocument.aspx?tn=264974&DocumentContentId=101752

  • Retrieved: 17 August 2026.

  • Yielded: the prescribed contents of the Power Content Label. Section 1393.1, "Retail Disclosure to Consumers", is the operative section. It supplies the twelve fuel type categories of subdivision (c)(1), the resource groups of (c)(2), the emissions intensity units of (c)(3), the contact details of (c)(4), the unbundled REC disclosure of (c)(5), the unspecified power annotation of (c)(7), and the three footnotes of subdivision (l), whose text the regulation prescribes. Section 1392 supplies the accounting methodology the tool cites but does not attempt to reproduce. Section 1391 supplies the definition of "Energy Commission", which is the State Energy Resources Conservation and Development Commission. The abbreviation "CEC" appears in the regulation, including inside the footnote text subdivision (l)(2) prescribes, but the regulation nowhere defines it, which is why PCL004 reports the abbreviation as present without reading it as the name.

    This is the document that made it possible to build a grounded checker rather than an empty one.

Labels the Energy Commission issues

  • What: annual Power Content Labels for data year 2024, generated by the Energy Commission on behalf of retail suppliers.
  • Publisher: California Energy Commission.
  • URL: https://www.energy.ca.gov/programs-and-topics/programs/power-source-disclosure-program/power-content-label/annual-power-5
  • Retrieved: 17 August 2026.
  • Yielded: the rendering of the prescribed format. This matters because section 1393.1(i) provides that the Energy Commission generates the label or supplies the template and that a retail supplier may not alter the format, so the issued rendering is itself authority for two checks whose basis is recorded as template_format. It is also where the accepted rendering "CA Utility Average" for the statewide disclosure comes from, rather than the regulation's own wording.

Public Utilities Code section 398.4

  • What: the authorising statute.
  • Publisher: California Legislative Counsel.
  • URL: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=PUC&sectionNum=398.4
  • Retrieved: 17 August 2026. Re-read in full on 22 August 2026 for the completeness sweep recorded below.
  • Yielded: the chain of authority, and confirmation that the disclosure obligation and its October 1 timing are statutory. No check cites it on its own, because the regulation is the more specific and more recent text. The sweep confirmed its disclosure duties mirror the regulation's at lower specificity; see the completeness sweep section.

Navigational

Fetched to find the documents above. No check cites them.

https://www.energy.ca.gov/robots.txt was fetched before anything else and permits every path used above. efiling.energy.ca.gov serves no robots.txt.

Calibration

Thirty four published 2024 labels have been fetched once, read locally, and used to confirm that the checks fire correctly on real documents rather than only on the synthetic fixtures. They are not committed to this repository. The index page lists ninety one labels.

Three were read first:

Five more were added to test whether what those three agreed on was a property of the format or a coincidence of three similar suppliers. They were chosen to be unlike each other: the third of the three investor owned utilities, a second large municipal utility, a community choice aggregator, an electric service provider, and a rural cooperative.

Sixteen more were added for the same reason again, and chosen the same way: two deviations holding on eight labels is suggestive and is not the ninety one. The sixteen add a fourth investor owned utility and a multi-state one, five more municipal utilities of very different sizes, three more community choice aggregators, a second electric service provider, a second rural cooperative, two irrigation districts, a transit district, and a university system.

Ten more were added on 22 August 2026, in two capped invocations of scripts/fetch_examples.py, chosen from the index page for type diversity the set did not yet have: a small city municipal utility, a large community choice aggregator, a second electric service provider from a different parent, a small mountain public utility district, a bi-state rural cooperative, a second irrigation district, a third community choice aggregator, a port district, a second very small rural cooperative, and a mid-sized municipal utility.

The standing result holds on all ten: readable, both known deviations and no others, nothing unevaluated except the twelve registered checks and PCL001 without a supplier name, and PCL016 evaluated. Artwork enumeration and placement were done for each (steps 1 and 2); rendering was not, because the pattern closed on the first eight held - every image drawn at 46 by 46 points or smaller, in the Electricity Sources band.

On all twenty four, the same two checks and only those two report a deviation: no telephone number appears, and the words "Energy Commission" do not appear. Section 1393.1(c)(4) lists both among the contents each label discloses. Of the seventeen checks that can be evaluated without a supplier name on the command line, fifteen conform on every one of the twenty four and two deviate. Nothing is left unevaluated on any of them, which was not true before the column reconstruction recorded below.

Read that result carefully. All twenty four labels were generated by the Energy Commission itself, and a supplier may not alter the format, so what the consistency across twenty four independent labels indicates is a property of the issued rendering. It is not a finding about any of the twenty four suppliers, and it is not a compliance determination, which only the Energy Commission can make.

One qualification on the second deviation, found while widening the set. The Energy Commission publishes a second file beside each label on the same page, an Excel workbook whose own text calls it "an alternative version of the 2024 power content label" and whose sheet is named "PCL Alternative Version". Four were read. Each names the "California Energy Commission" in full, which the PDF rendering of the same label does not. So the absence of the name is a property of the PDF rendering specifically, not of the disclosure as the Energy Commission publishes it. None of the four carries a telephone number either, so that deviation is not particular to the PDF.

This tool reads PDF and plain text and does not read the workbooks; they were opened by hand. Whether it should read them was decided rather than left to habit, and the argument is in adr/0009. The short version: the workbook says of itself that it provides three of the things the label discloses, and it does not carry the resource groups of section 1393.1(c)(2) or the unspecified power annotation of section 1393.1(c)(7). Run out to text and checked, each of the four produces seven deviations rather than two, five of which are true of a data extract and misleading about a disclosure. The tool keeps one document as its subject, and now names the files in a directory that it did not read.

Artwork, and how the two deviations were confirmed

Extraction reads a PDF's text layer, so content present only as artwork would not be seen. Until that possibility is excluded, "the tool did not find a telephone number" is a statement about the tool and not about the document. It was excluded, in three steps, on the eight labels read first:

  1. The images were enumerated. The pages declare four, four, four, five, seven, eight, ten and ten images. Every one is a one-colour shape, and the counts are exactly the number of coloured wedges across each label's pie charts: two for a two-tone pie, one for a single-tone pie.

  2. Their placement was measured, with scripts/inspect_artwork.py. The largest image on any of the eight is drawn at 47 by 47 points, and all of them sit in one horizontal band, the row headed "Electricity Sources". Nothing that size holds a legible telephone number.

  3. The pages were rendered and looked at, the first three at 150 dpi and the five added later at 110 dpi. All eight are a table plus one small pie chart per portfolio column. No logo, no wordmark, no contact block, and no telephone number anywhere on any of the eight pages.

Both deviations are therefore properties of the documents the tool was given. The labels name the regulator as "CEC" in the footnote prescribed by section 1393.1(l)(2), and link energy.ca.gov, and PCL004 reports both of those as present.

That is settled for those eight labels. The sixteen added later had steps 1 and 2 done and not step 3: each declares between three and seven images, every one of them drawn at 47 by 47 points or smaller, all in the same "Electricity Sources" band. Across all twenty four labels the largest image drawn anywhere is 47 by 47 points. Nothing that size holds a legible telephone number, so the picture explanation is narrowed on the sixteen rather than closed the way rendering closed it on the eight.

The tool does not generalise from either group. It counts the images on whatever document it is given and prints what that count permits it to say. See docs/adr/0003.

Two deviations the wider set showed to be the tool's fault

The five labels added to the set produced three deviations that were false, all of them absences of something the page plainly carries. Rendering the pages showed it, and both causes were fixed. See docs/adr/0006.

  • The footnote prescribed by section 1393.1(l)(2), reported absent on one label that carries it verbatim. The issued labels set the 2 of CO2 as a subscript, which extracts as a separate text run, so the phrase arrives with a space inside the word. Prescribed phrases are now compared with the spaces removed on both sides.

  • The separate statewide disclosure, reported absent on two labels that carry the "CA Utility Average" heading. A heading too long for its column wraps onto a second line and extraction reads across the wrap, so the words of the neighbouring heading arrive inside this one. PCL016 now reports not evaluated when every word of an accepted rendering is present but the rendering is not, because a wrapped heading and a missing heading look the same to a substring test.

The wrapped heading, and reading a page down its columns

Refusing to decide cost coverage, and widening the set showed how much. The wrap is common: PCL016 went unevaluated on seven of the twenty four labels, a little under a third.

The page is now read column by column before the check gives up. Text runs are grouped into the horizontal spans a reader would see, and two spans are one cell when one's horizontal extent contains the other's and they sit close enough together vertically to be lines of one cell. The heading comes back together on all seven, and PCL016 is evaluated on all twenty four.

Position is used for cell membership and for nothing else. It cannot produce a deviation: the check consults it only inside the branch that reports nothing, so the most it can do is turn "the tool cannot tell" into "the tool found it". See adr/0008, and adr/0007 for why position is still not allowed to say who a telephone number belongs to.

The statement required by section 1393.1(c)(6)

None of the twenty four labels, and none of the four alternative renderings, carries a statement that electricity portfolios represent retail sales and that total power content and total California loss-adjusted load represent retail sales, other end uses and losses. The tool reports nothing about that. Subdivision (c)(6) prescribes what the label must indicate but not the words, unlike subdivision (l), so any phrase this tool matched would be a rule it wrote. It is registered as PCL029 and enforces nothing.

Which ruleset governs a 2024 label

Section 1393.1(a) scopes a label to the previous calendar year and section 1393.1(b)(2) requires it to be provided by October 1 of each year, so a label for data year 2024 is the disclosure due October 1, 2025. That is after the June 18, 2025 effective date of the regulations above, so the ruleset this tool encodes is the one in force for these labels. The three labels agree as a matter of fact: each carries a PDF creation timestamp in September 2025 and names the California Energy Commission as its author.

The tool does not read those timestamps and does not switch rulesets. It prints the effective date it used. See docs/adr/0004.

Column arithmetic

The twelve displayed fuel type percentages were summed per column and compared against the total row the label displays. Fourteen of the thirty three columns across the first eight labels summed to 99 or 101 against a displayed total of 100. The figures are whole percentages and neither the regulation nor the issued format prescribes a rounding rule or a tolerance, so this is what correctly rounded arithmetic looks like. It is the reason PCL025 is registered and enforces nothing. See docs/adr/0005.

That per-column count has not been remeasured across the wider set, because splitting a multi-portfolio table into its columns reliably is the work PCL025 is registered as not doing, and a number produced carelessly here would be worth less than no number. One column was remeasured, because it needs no column splitting: the statewide column is the last figure on every row, the Energy Commission supplies it under section 1393.1(a)(3), and no supplier computes it. Its twelve components sum to 101 against a displayed total of 100 on all twenty four labels read. Widening the set strengthened the reason for PCL025 rather than weakening it.

Completeness sweep

A systematic reverse pass was done on 22 August 2026: the operative corpus was read end to end and every obligation it addresses to a label's content was enumerated, then diffed against the catalog. The corpus:

  • Sections 1391 through 1394 of the regulations, fetched from the docket document listed under Primary above (transaction number 264974), read in full.
  • Public Utilities Code section 398.4, fetched from the Legislative Counsel page listed under Primary, read in full.

The diff registered five requirements the catalog had passed over in silence, which is the failure docs/adr/0002 exists to prevent:

  • PCL031, section 1393.1(a)(2): marketing claims about GHG intensity must be consistent with the disclosed figure. Deciding consistency needs the advertisement, so permanent.
  • PCL032, section 1393.1(b)(1): the label shall be provided in all product-specific promotional materials. Distribution is not visible in the distributed file, so permanent.
  • PCL033, section 1393.1(c) chapeau: general portfolios are disclosed on a single label. Telling one shared label from several per-portfolio labels needs the supplier's offering list, so permanent.
  • PCL034, section 1393.1(d)(2): grandfathered firmed-and-shaped emissions shall be identified as excluded on the label. The trigger predates January 2019 agreements, which the document does not carry, and presence would be visible while absence would not, so permanent on PCL020's asymmetry.
  • PCL035, section 1393.1(l)(3): the bracketed sentence requiring the secondary resource group's percentage in footnote 3. It travels with the 2026 trigger questions of PCL023 and PCL024, so conditional alongside them.

The sweep also found one wording change to record rather than register: section 1393.1(a)(3) renames the statewide quantity for 2026 onward, "California's total loss-adjusted load". That phrasing is now an accepted rendering for PCL016, cited from the regulation itself; whether the Energy Commission renders labels that way is a question for the data year 2025 calibration vintage.

Considered and not registered, with the reason each was left out:

  • Section 1391.1 and section 1393 impose duties on generators, balancing authorities and retail suppliers' annual resource reports. They are where the second inputs live (PCL022), not obligations about a label.
  • Section 1394 imposes audit and proof-of-service duties on suppliers.
  • Section 1393.1(g) grants new community choice aggregators an exemption from reporting GHG intensity data early; exemptions are not duties a label can violate.
  • Section 1393.1(j) makes extra unbundled REC source information optional and conditional on Energy Commission approval; section 1393.1(k) is a permission. Nothing optional or permitted can deviate.
  • Public Utilities Code section 398.4 mirrors the regulation's disclosure duties in less specific words - its subdivision (b) is the regulation's (b)(1), its (d) the regulation's single-label rule, its (g)(2) and (k) the statewide disclosures already checked. No check cites it alone, as recorded under Primary above.

Not consulted

For completeness, since absence is easier to miss than presence:

  • No AI model was asked what the label requires. There is none in this tool and none was used to derive a rule.
  • No secondary summary, explainer, or article was used as authority.
  • No label was fetched in bulk.