Short answers, several with a worked example, each linked to the user guide that goes further. The limits they mention are the
site's as they stand now.
Accounts and access
Do I need an account to read or download published data?
No. The portfolio dashboard, record downloads, the document library, the data dictionary, the validation rules, the filing calendar, the release notes and the limits are open to everyone. You need an account to file for a program administrator, to review filings for the CPUC, to run cost-effectiveness calculations, or to follow documents.
One thing needs signing in even for published data: a download too large to make while you wait is made in the background, and CEDARS tells you when it is ready.
I lost the phone with my authenticator app. How do I sign in?
Use one of the recovery codes CEDARS showed you when you set up your second factor: each signs you in once. Then set up the authenticator app again on your account page and keep the new recovery codes somewhere safe.
Without a recovery code, ask CEDARS support for help (Help, Getting support).
How do I get permission to file for my organization?
Open your account page and choose Ask an organization for access. Pick the organization and the permissions you need (for example claims, read and submit) and say why. Your organization's own administrators decide; the CPUC is not asked. Access to personal information in claims also needs a CPUC data steward's approval.
How do our own systems file or read through the API?
Make an API token on your account page for one organization and the modules it may use; it can do no more than you can. Send it with every call as an Authorization header. Calls are counted per person: 120 calls a minute with a token and 30 calls a minute without one. Over the limit a call gets 429 Too Many Requests and a Retry-After header saying how many seconds to wait. A token lasts at most 365 days.
Worked example: Reading your runs with a token
A script lists the calculation runs it can see, and waits when it is told to slow down.
Make a token on your account page for the organization, with Calculations ticked, and copy its key (shown once).
Call GET /api/v1/calculations/runs with the header Authorization: Bearer <your key>.
The answer is JSON. If the status is 429, read Retry-After (say 12) and call again after 12 seconds.
The script never needs a password or the second factor, and revoking the token on your account page stops it at once.
Can a program read the published data without an account?
Yes. The open data API at /api/v1/data serves what the dashboards and record downloads show, as JSON, with no account: the metric catalog, the dimensions and filters, sums by any dimension, and the measure-level records with the columns you choose, a page at a time (at most 1,000 rows a page). The same query string gives the same numbers as the dashboard page or download, and every answer says which release it read. Only fields the data dictionary marks public are served. Calls without a token are limited to 30 calls a minute per address.
Worked example: Total system benefit by PA for one year
A script reads each PA's claimed TSB for 2028, then the records behind one PA.
Call GET /api/v1/data/query with dataset=claims, metric=tsb, by=pa, year_from=2028 and year_to=2028.
Each row has the PA, its tsb and records; totals is over every PA; stamp.release names the release read.
Call GET /api/v1/data/records with the same years, pa=SCE and limit=500, and follow next until it is null.
The totals match the Total system benefit page for the same choices, because both run the same query on the same release.
My upload was refused as too large. What can I do?
Each file uploaded to Budgets, Claims or Monthly reports, and a calculation job's .zip, may be at most 400 MB. Zip a CSV file before uploading it: CSV files usually zip to a small part of their size. If a zipped table is still too large, split it into parts named after the table and upload them together: one filing upload may hold 20 files.
Worked example: Sending a large Measure table in parts
A claims upload whose Measure table is too large for one file.
Split Measure.csv into Measure_1.csv and Measure_2.csv, each with the same header row.
Zip each part on its own, or upload the CSV parts as they are, together with the other tables' files.
Choose all the files at once in the upload field.
The files chosen and the table CEDARS makes of them
File chosen
Holds
Becomes
Measure_1.zip
Measure rows 1 to 400,000
Measure.csv, rows 1 to 400,000
Measure_2.zip
Measure rows 400,001 to 750,000
Measure.csv, rows 400,001 to 750,000
Claim.csv
Every claim
Claim.csv
CEDARS joins the parts in the order the files were chosen into one upload and checks it as one file.
Yes, in Budgets, Claims and Monthly reports. Choose them all at once: each may be a .zip of tables, an Excel workbook with a sheet per table, or one table's .csv. A table may come in parts named after it (Measure_1.csv, Measure (2).csv, Measure-part3.csv); the parts must have the same columns, in any order and case. A calculation run always takes one job .zip.
The version's page lists the findings by rule, rejects first. A reject must be fixed before the filing can be priced; a warning does not stop it. The findings file names each finding's line, record, field and rule and says how to fix it. Each rule's page explains it, with the versions of the rule set in force.
Before the due date you can un-confirm and upload again. After it, choose Ask to reopen on the filing's page and say why; a CPUC approver decides. Approved, the correction is a new version: the version you correct stays as it was confirmed, and the new one is published with a change letter saying what changed. Subscribers to the PA and followers of the programs it changed are told.
A program's budget for a year is its ProgramCost row plus the rebates and incentives of its measures for that program year. Fund shifts then move budget between programs; the standing filing plus the shifts in effect is the operating budget that monthly spending is compared with.
Worked example: A program's budget for 2029
One program's ProgramCost row and its measures' incentives, then a fund shift.
How the program's 2029 budget adds up
Part
Amount
ProgramCost row (administration, marketing, direct implementation)
$1,200,000
Measures' rebates and incentives (100 measures)
$3,300,000
Budget filed
$4,500,000
Fund shift in effect: moved to another program
-$250,000
Operating budget
$4,250,000
Monthly reports compare the program's 2029 spending with $4,250,000.
Only the records that are new or changed since the last confirmed quarter. CEDARS compiles them over the earlier confirmed quarters: a record with the same key as one confirmed earlier replaces it, and every other earlier record is kept. To take a claim out, list its ClaimID in the Withdrawal table with the reason.
Worked example: The second quarter compiled over the first
Q1 confirmed claims A and B. The Q2 upload changes B, adds C and withdraws A.
What the year holds once Q2 is confirmed
Claim
Confirmed in Q1
In the Q2 upload
After Q2
A
True
In the Withdrawal table
Kept, marked withdrawn: not priced or counted
B
True
Yes, with a corrected quantity
Q2's record replaces Q1's
C
False
True
Added
The year to date is priced and confirmed as A (withdrawn), the new B and C.
Can I fix one rejected record without uploading the whole file again?
Yes, on a draft. On the filing's page choose Correct records, find the record by its key, change it and save: it is checked again at once with the records whose checks it affects, and every other record keeps its findings. For many records, upload a partial correction (only the changed and new records, plus a Delete table for records to remove) of at most 5,000 records; you see every change before it is applied.
A confirmed version never changes: un-confirm it before the due date, or ask to reopen it after, and correct the new draft. Every change is in the audit trail with the record before and after, and the version is priced again before it is confirmed.
Deemed measures are checked against eTRM: a deemed value that differs from eTRM's for the measure rejects the record. The net-to-gross fields may vary and only warn. Blanks that eTRM sets are filled in for you. The finding names the field, your value and eTRM's.
Never in the claims file. PII_Contact and PII_Site are uploaded on the period's page on their own, checked against the claims' ContactIDs and SiteIDs and kept in the PII vault. Uploading or reading them needs the PII permission, which a CPUC data steward approves; every use is recorded with its reason.
CET asked for an "Avoided Cost Version". Which ACC is that?
CEDARS names avoided costs by the year of the ACC (the CPUC's Avoided Cost Calculator), for example "2024 ACC". CET's Avoided Cost Version is a different number: it is not the ACC's year. New run's "Which ACC applies to my filing?" says which ACC a filing or a claim year takes.
Worked example: CET's versions and the ACCs they hold
CET's Avoided Cost Version and the ACC by year
CET Avoided Cost Version
ACC
2022
2021 ACC
2024
2022 ACC
2026
2024 ACC
A job CET priced on Avoided Cost Version 2026 is priced here on the 2024 ACC.
How is a cost-effectiveness ratio for several programs worked out?
Benefits are added up, costs are added up, and the ratio is one sum over the other. It is never an average of the programs' own ratios, which would count a small program as much as a large one. The dashboard, the Results page and the downloads all work this way.
Worked example: The TRC ratio of two programs
Two programs' TRC benefits and costs, and the ratio of their sums
Program
TRC benefits
TRC costs
Program's own ratio
Program A
$9,000,000
$6,000,000
1.50
Program B
$500,000
$1,000,000
0.50
Both
$9,500,000
$7,000,000
1.36 (9.5 / 7.0)
The two programs' TRC ratio is 1.36, not 1.00 (the average of 1.50 and 0.50): Program A is twelve times Program B's cost and counts that much more.
What does an impact profile do to a measure's savings?
An impact profile spreads one kWh of savings over the year's 8,760 hours, for each climate zone; its 8,760 shares add up to 1. A measure's annual savings times each hour's share is its savings in that hour, which is priced at that hour's avoided cost.
Worked example: One hour of a lighting measure
A measure's savings in one hour, and their value
Step
Value
Annual net savings
1,000 kWh
The profile's share for 7 to 8 pm on 15 July
0.0004
Savings in that hour
1,000 x 0.0004 = 0.4 kWh
The ACC's avoided cost that hour
$0.25 per kWh
Value of that hour's savings
0.4 x $0.25 = $0.10
The measure's first-year electric benefit is that sum over all 8,760 hours, then over each year of its life, discounted.
One run may hold up to 2,000,000 measures. Split the job into several runs (by PA, program or year) and compare or add up their results. Runs of up to 50,000 measures take the faster small-runs queue.
Yes, for a job of up to 500 measures: Edit inputs edits its Measure and ProgramCost tables row by row, checking each cell by the engine's own rules as you save, and the draft can be run or downloaded as a job .zip. Edit larger jobs offline and upload them.
You choose when you start it: a run for yourself is yours alone; a run for an organization is seen by that organization's members and stays with it. A run that prices a filing belongs to the filing's organization.
Downloads of up to 200,000 rows are made while you wait. A larger one is made in the background: sign in, request it, and CEDARS tells you when it is ready under your downloads. You may have 3 per person waiting at once.
Why do the dashboard's totals differ from a PA's own report?
The dashboard counts confirmed filings only, and says on every page what it leaves out: by default pension and benefits programs and codes and standards (and, on the Goals page, Energy Savings Assistance). Include them with the controls at the top. A download is the page's own query, so its totals match the page.
How do I find out about a change before it takes effect?
Every change to the specifications, the rules, a limit or how CEDARS works is announced in the release notes before it takes effect, usually at least 14 days before; a note given at shorter notice says why. Every page shows the changes coming within that time. Signed in, tick release notes on your notification settings to be sent each one as it is published.
On the Limits page: every limit as the site applies it now (upload sizes, files per upload, run and download sizes, API rates), where it applies, what happens over it, and any announced change with its date. Each upload field also says its limits.
Each user guide says the CEDARS release it was revised for and the release the site runs (the footer shows it too). Every change to a guide is recorded against the release that ships it, and each release's notes list the guides it revised.
These answers were revised for CEDARS release 0.2.0; this site runs release 0.2.0. Not answered here? Getting support.
SearchWords to look for and, optionally, one topic. It works without scripts.
An answerThe question, its answer, any worked example, and links to the user guide and to this answer.
Help on every pageThe question mark beside a page's heading opens this page's guide and its tour. All of Help, with the user guides and how to get support, is in the header.