# WattGap Score Methodology **Version:** 1.1 **Last updated:** 2026-07-29 **Authoritative page:** /methodology **Canonical model:** `docs/strategy/wattgap-score-definition.md` This document describes the WattGap Score in enough detail for a journalist, lender, utility, or skeptical homeowner to evaluate it independently. It is the companion reference for the public-facing Methodology page. --- ## 1. What the WattGap Score Is The WattGap Score (0-100) quantifies how much recoverable financial value a household may be missing in home energy spending. A higher score means more potential savings have already been identified and captured. A lower score means more uncaptured value remains -- which is an opportunity, not a grade. The score is a financial opportunity metric, not a home condition assessment. --- ## 2. What the WattGap Score Is Not - **Not a credit score or financial rating.** It has no bearing on loan eligibility, creditworthiness, or any financial instrument. - **Not a certified energy audit result.** It does not replace a professional energy audit performed by a qualified energy auditor. - **Not a guarantee of rebate eligibility or savings.** Program eligibility depends on income, equipment type, contractor certification, and other factors that vary by household and program. - **Not a certified home energy rating (HER).** It uses similar inputs but is not issued under any certification standard. --- ## 3. How the Score Is Calculated The WattGap Score is your home's energy standing, 0-100, where higher is better: the share of the energy-money optimization worth going after for your home that you have already locked in. 100 means nothing worth doing is left on the table. A low score is not a failing grade; it is recoverable money still sitting there. For each capturable dimension of your home's energy picture, WattGap derives two dollar figures: `achievable$`, the frontier of capturable value for this home, and `captured$`, the value already locked in. The score and the dollar Gap are exact inverses: ``` Score (0-100) = sum(captured$) / sum(achievable$) x 100 Gap ($) = sum(achievable$) - sum(captured$) ``` **What the two totals actually contain, which is narrower than you might assume.** Today `achievable$` is the incentive total for your home: rebates and credits at their full one-time value, the same figure shown on your results. Recurring opportunities, such as a better rate plan, bill assistance, or a demand-response program, are **not** in that total and therefore not in the dollar Gap either. They act on the score only through the captured share, described next. So the Gap is "incentive money still on the table," not "every opportunity we found," and a household whose biggest opportunity is a rate switch will see that reflected in the score without seeing it in the Gap. **How the captured share is worked out.** Every dimension, including the recurring ones absent from the totals, is folded in here. Each dimension's dollars are first divided by the useful life of what they buy: roughly 15 years for electrification equipment, 20 for envelope work, 25 for solar, and 1 for money you receive every year. So a one-time $8,000 heat-pump rebate is weighed at about $533 a year against a $400-a-year rate saving, rather than at twenty times its size. That blended capture rate is then applied to the incentive total to produce `captured$`. There are no hand-set category weights: nothing is scored by a percentage we assigned to a category in advance. A dimension moves the score in proportion to the money in it for your home, once that money is put on a common annual footing. The denominator is your own home's frontier, so a studio and a large house can both reach 100. Aligning the displayed frontier with the dimensions the score weighs is a runtime change, not a wording one, and has not been made yet. The score is forward-looking, never a historical audit. A household that already installed a heat pump scores high even if it missed a rebate at the time: the upgrade is captured, and the expired rebate is sunk, so it leaves the frontier rather than dragging the score. **A v1 limitation worth stating plainly.** Today that filter is expiry only. WattGap does not yet drop an opportunity from your frontier because its payback is poor for your home, or because it would not pay back within the time you expect to own the place. Until those exclusions land, an opportunity that is open but uneconomic for you can still sit in your achievable total and hold your score down. Treat the score as "value still on the table," not yet as "value that is certainly worth your money today"; your results page and its per-program detail are the better guide for whether a specific action pays for you. When no frontier can be estimated at all, WattGap does not show a zero or a guess. It withholds the precise number and shows a coarse status plus the recoverable dollars. --- ## 4. Confidence Tier System There are two different confidence signals in the product, and conflating them is easy, so this section separates them. **Score confidence** is the one badge shown next to your score. It is set by what kind of coverage WattGap has for your home, and nothing else: | Tier | Coverage for your home | | -------- | ----------------------------------------------------------------------------- | | `high` | A certified program record exists for your territory and applies to your home | | `medium` | No certified record; the frontier is estimated from territory and Census data | | `low` | Neither is available; national averages applied locally | **Per-program confidence** is separate. Each individual program on your results carries its own tier from its own source, not from your household's coverage, and it is downgraded independently: a program whose published status is overdue for re-checking, or has no date at all, is relabelled as possibly outdated no matter how good your household coverage is. So a household at high score confidence can still see individual programs flagged, and that is working as intended rather than a contradiction. **What "certified" does and does not mean for score confidence.** It means a program record for your territory was ingested from a program source, not that the record was re-checked recently. The score tier is derived mechanically from coverage: a certified record yields high score confidence without a freshness test, so a stale certified record can still read as high at the score level. The per-program freshness relabelling above is what currently surfaces staleness; the verification date shown alongside a program is the figure to trust for recency. Tightening score confidence to require a freshness check is a change to the runtime, not to this document, and is not yet made. Confidence describes how much WattGap knows, not how well your home is doing. It never moves the score up or down: a home with thin data gets a clearly labelled lower-confidence reading, not a lower score. --- ## 5. How Recommendations Rank **Which surface this describes.** The weighted formula below is what the ranking API returns. The recommendation list on your results page does not use it today: it orders by dollar value alone, so a $1,000 high-friction upgrade appears above a $900 low-friction rate action even though the formula below would score them 700 and 900. Read the formula as how WattGap intends to rank, and the results list as ordered by size until the two are wired together. Within each lane, the ranking API scores programs by effective_score: ``` effective_score = value * confidence_weight * friction_multiplier ``` - `value`: Program dollar amount (rebate, credit, or annual savings) - `confidence_weight`: 1.0 (high), 0.7 (medium), 0.4 (low) - `friction_multiplier`: 1.0 (low friction, automatic enrollment), 0.85 (medium), 0.7 (high friction, requires contractor quote + application) These weights order recommendations. They never change the WattGap Score itself, which is the captured-over-achievable share described in Section 3. Rebates are first-class. A $1,000 rebate at high confidence always ranks above a $1,000 tax credit at medium confidence, which always ranks above a $1,200 estimate at low confidence. WattGap never demotes a verified rebate below a cheaper non-rebate alternative, even if the non-rebate has lower friction. --- ## 6. Data Sources | Source | What it provides | | ------------------------ | ------------------------------------------------------------------- | | U.S. Census Bureau (ACS) | Home age, heating fuel type, income, home value by ZIP | | Rewiring America | Rebate eligibility, program details, ML savings predictions | | OpenEI / NREL URDB | 3,700+ utility rate structures for rate plan optimization | | NASA POWER / Open-Meteo | Heating and cooling degree days, solar irradiance, climate zones | | EIA | State electricity rates, utility service territories, bill averages | | NREL PVWatts | Solar production estimates by location | | Google Solar API | Rooftop solar potential for US buildings (when API key present) | All sources are public or permissively licensed. No proprietary data is required. --- ## 7. Data Limitations 1. **Programs change frequently.** State and utility rebate programs open, close, and modify amounts throughout the year. WattGap checks program sources on a rolling schedule, but the status shown is accurate as of the last verification date -- not the date you view it. Always verify program details with the administering agency before making a purchase. 2. **ZIP-level estimates.** Many inputs (income, home age, heating fuel type) use ZIP-code averages from Census ACS data. These averages may not reflect your specific address. Where address-level data is available, WattGap uses it and marks it accordingly. 3. **Federal availability changes with the law, and two credits are already gone.** The 25C efficiency credit and the 25D residential clean energy (solar) credit expired on December 31, 2025. They are not included in any WattGap estimate, and solar incentives are now state and utility programs only. Federal programs that remain, such as HEAR, depend on continued appropriations. Program status shown reflects the law as understood at the last verification date. 4. **Income-based programs require self-attestation.** AMI eligibility is calculated from Census median income data. Actual eligibility requires income documentation through the program administrator. 5. **Equipment condition is inferred, not inspected.** The `fix_before_failure` lane estimates equipment age from Census home age data as a proxy. A professional inspection may find conditions that differ significantly. --- ## 8. Why Existing Static Home Energy Scores Fall Short Most home energy scores (HER, EnergyScore, utility tools) were designed before real-time rebate data was available at scale. They have three structural gaps that the WattGap Score addresses: 1. **Static scores don't account for real-time program availability.** A score calculated in January may not reflect a new rebate program that launched in March, or an expired credit that ended in December. 2. **Static scores don't rank actions by financial value plus friction.** They tell you to upgrade your insulation without telling you that a specific rebate covers 60% of the cost and a qualified contractor can be booked within two weeks in your ZIP code. 3. **Static scores don't distinguish renter-eligible from homeowner-only programs.** A renter can't claim a solar installation rebate. A homeowner can't access a utility program that only runs in a neighboring territory. WattGap filters by eligibility from the first question. --- ## Revision History | Date | Change | | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | 2026-05-20 | Initial version published | | 2026-07-29 | Section 3 rewritten to the shipped `captured$/achievable$` model; the 30/30/40 hand-set lane weights it described were never implemented. Section 4 corrected: confidence follows coverage and never moves the score. Version 1.1. | | 2026-07-29 | Section 3 discloses the v1 frontier limitation (no payback or ownership-horizon exclusion yet, so an open but uneconomic opportunity can still sit in the denominator). Section 5 friction multipliers corrected to the shipped 1.0/0.85/0.7. Section 7 corrected: 25C and 25D expired 2025-12-31 and are excluded, not merely contingent. | | 2026-07-29 | Section 3 states the annual-equivalent weighting (dimension dollars are divided by useful life before blending). Section 4 replaced with the shipped coverage semantics; the 30-day freshness requirement was never enforced. Section 5 discloses that the results list currently orders by dollar value, not the weighted formula. | | 2026-07-29 | Section 3 corrected again: the displayed totals and the Gap contain incentive dollars only, and recurring savings act on the score through the captured share rather than appearing in either total. Section 4 split into score confidence (coverage-derived) and per-program confidence (own source, independently relabelled when stale). |