Utility Rebate Change Tracker
Pricing
from $5.00 / 1,000 results
Utility Rebate Change Tracker
Tracks changes in US utility & state energy incentive programs: rebate amount increases/decreases, new and removed programs, eligible equipment changes and date changes. Data source: DSIRE.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Kasım Genç
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Tracks changes in US utility & state energy incentive programs and reports them as structured change records:
- 💰 "Texas heat pump rebate went from $1,500 to $2,000" →
amount_increased - 🛠️ "This HVAC model class is no longer eligible" →
equipment_changed - 🆕 "A new solar battery rebate program opened" →
new_program - 🗑️ "Program disappeared from the database" →
program_removed
Data source: DSIRE (Database of State Incentives for Renewables & Efficiency, NC State University) — the authoritative database of US federal, state and utility energy incentive programs.
How it works
- On every run the Actor queries DSIRE for all programs matching your regions (US states) × categories (equipment/technology types).
- Each program is normalized into a comparable snapshot: incentive amounts (from DSIRE parameter sets), eligible equipment, dates, budget, summary/detail hashes.
- The snapshot is stored in a named key-value store (persists across runs). The next run diffs the fresh data against it and pushes one dataset record per changed program.
- The first run for a given configuration establishes the baseline. With
emitBaselineRecords: true(default) it also outputs every currently-active matched program withchangeType: "baseline", so you get the full picture immediately.
Schedule it (e.g. daily or weekly on the Apify platform) to get a continuous change feed. DSIRE program records are updated by analysts on weekdays, so daily is plenty.
Input
{"regions": ["Texas", "Utah"],"categories": ["hvac", "heat-pump", "solar", "battery"],"sectors": ["Residential"],"includeFederal": true,"emitBaselineRecords": true,"snapshotStoreName": "utility-rebate-tracker","maxConcurrency": 4}
| Field | Type | Description |
|---|---|---|
regions * | string[] | US states — full names ("Texas") or 2-letter codes ("TX"). |
categories * | string[] | Category slugs (below), raw DSIRE technology ids ("207"), or exact DSIRE technology names ("Solar Photovoltaics"). |
sectors | string[] | Optional sector filter: Residential, Commercial, Industrial, Agricultural, ... Empty = all. |
includeFederal | boolean | Federal programs apply to every state; disable to track state/utility programs only. Default true. |
emitBaselineRecords | boolean | Output all matched programs as baseline records on the first run. Default true. |
snapshotStoreName | string | Named key-value store holding snapshots between runs. Default utility-rebate-tracker. |
maxConcurrency | integer | Parallel DSIRE requests (1–10). Default 4. |
proxyConfiguration | object | Optional Apify proxy settings. |
Supported category slugs
hvac, heat-pump, solar, battery (aliases storage, energy-storage), ev, ev-charging, water-heater, appliances, lighting, insulation, building-envelope, wind, geothermal, biomass, hydro, fuel-cells, whole-building, plus the broad energy-efficiency and renewables.
Slugs are resolved against the live DSIRE technology list on every run, so newly added technologies (e.g. a new heat-pump subtype) are picked up automatically.
Output
One dataset record per changed program. Example — a rebate amount increase:
{"program": "Renewable Energy Systems Tax Credit (Corporate)","programId": 248,"url": "https://programs.dsireusa.org/system/program/detail/248","region": "Utah","state": "UT","sector": "Commercial","programType": "Corporate Tax Credit","administrator": "Utah Governor's Office of Energy Development","categoriesMatched": ["solar", "heat-pump"],"eligibleEquipment": ["Geothermal Heat Pumps", "Solar Photovoltaics", "Solar Water Heat"],"changeType": "amount_increased","oldAmount": 1100,"newAmount": 1600,"amountUnits": "$","amountQualifier": null,"eligibleEquipmentChanged": false,"equipmentAdded": [],"equipmentRemoved": [],"incentiveAmountText": "$1,600 per residential unit","maximumIncentiveText": "$1,600","effectiveDate": "2007-01-01","endDate": null,"lastUpdated": "September 30, 2025","changes": [{"field": "amount","kind": "amount_increased","source": "Incentive","qualifier": "","units": "$","old": 1100,"new": 1600,"description": "Amount ($) changed from 1100 to 1600"}],"detectedAt": "2026-07-10T13:21:06.608Z","source": "DSIRE (programs.dsireusa.org)"}
changeType values
| Value | Meaning |
|---|---|
baseline | First run for this configuration — current state of a program. |
new_program | Program appeared that wasn't in the previous snapshot. |
program_removed | Program disappeared from DSIRE results (ended/unpublished). |
amount_increased / amount_decreased / amount_changed | An incentive amount changed (top-level oldAmount/newAmount/amountUnits). |
amount_added / amount_removed | A new incentive amount line appeared / was dropped. |
equipment_changed | Eligible equipment list changed (see equipmentAdded/equipmentRemoved). |
dates_changed | Program start/end date changed (see previousEffectiveDate). |
program_renamed | Program name changed. |
program_updated | Other material change (summary, budget, funding source, incentive detail text, ...). |
Each record's changes array lists every field-level diff; changeType reflects the most significant one (amounts > equipment > dates > other).
A run summary is stored under the OUTPUT key of the default key-value store:
{"isBaseline": false,"programsTracked": 116,"changesDetected": 5,"byChangeType": { "amount_increased": 1, "equipment_changed": 1, "new_program": 1 }}
Notes & limitations
- The snapshot key is derived from the resolved configuration (states × technologies × sectors). Changing the input creates a new baseline rather than producing false
program_removedrecords. - If any DSIRE request ultimately fails after retries, the run aborts without touching the stored snapshot, so a flaky run can't produce phantom changes.
- Many programs express incentives as text tiers (e.g. "6%–30% depending on labor factors") rather than clean numbers; those changes are still caught via the
Incentive Amount/Maximum Incentivedetail texts (program_updatedwith old/new text inchanges). - DSIRE covers the US only.
Scheduling & integrations
Create a daily or weekly Schedule on the Apify platform to turn this Actor into a continuous change feed, and use Apify integrations (webhooks, Slack, email, Zapier/Make) to get notified the moment a rebate changes.