Perishable Status -- Live Verification Stamp
Data Freshness & Machine Access
This page serves as a perishable status checkpoint for both human readers and AI crawlers. It shows when the underlying data was last verified, lists machine-readable API endpoints, and documents our cache and staleness policies.
June 2026
Data Verified At (conservative floor)
1,705h
Age of Oldest Verified Fact
2026-08-20T01:19:08.266Z
Page Generated At (verify stamp)
Machine-Readable Endpoints
These endpoints are designed for AI crawlers, search indexers, and automated tool consumers. All are public, no authentication required.
| Endpoint | Format |
|---|---|
| /llms.txt | text/plain |
| /api/v1/energy/llms.txt | text/plain |
| /api/v1/energy/dataset.jsonld | application/ld+json |
| /sitemap.xml | application/xml |
| /robots.txt | text/plain |
Cache & Freshness Policy
Staleness Thresholds
- Page-level: Variable by territory and program (a stale ground-truth clock excludes only that territory's utility-category pages; base state and metro pages remain in the sitemap; per-program staleness thresholds range from 14 to 60 days for how often a program's source is re-checked). Live program status (open, closed, or exhausted) is a separate clock: GET /api/program-status/:zip computes status_freshness on a 90-day window, so a status checked 61-90 days ago still reads "aging" there even though it is outside the 14-to-60-day source range above.
Cache-Control Headers
- llmsTxt: 86400s (24 hours)
- datasetJsonld: 86400s (24 hours)
- sitemap: 3600s (1 hour)
- listingSummary: 21600s (6 hours, with stale-while-revalidate)
Live staleness checks and certified-territory DQRP checks surface freshness concerns. Per-program status metadata is the source for current freshness state.
Public Status APIs
These APIs expose the freshness metadata each endpoint actually returns. Use them to check whether a specific program or region's data is current before acting on it.
GET /api/program-status/:zip
Returns certified program status for a ZIP code with per-program status_freshness (fresh/aging/stale/unknown) and last_verified_at timestamps. Public, no auth.
GET /api/score?zip=80202
Carries a _provenance sidecar with stale/stale_since fields per state.
POST /api/calculate-incentives
Carries a top-level _provenance sidecar with the response source, state tier, and stale posture. Certified program rows can include source and verification metadata; Rewiring America and fallback responses expose response-level provenance only. The AMI block exposes its source URL and stale status, but not a last_verified_at timestamp. Requires JSON body: {"zip":"80202","owner_status":"homeowner","household_income":75000,"household_size":2}.
How to cite this data
WattGap Certified Rebate Dataset, June 2026. https://wattgap.com. Verified against primary program sources. See /api/v1/energy/dataset.jsonld for W3C-PROV lineage.
License terms vary by source and by WattGap-authored metadata. Attribution details are maintained in /data-sources and include per-source licensing requirements. Check per-program freshness at /api/program-status/:zip.
Frequently asked questions
How fresh is the rebate data?
All certified-territory rebate figures were verified against primary program sources no earlier than June 2026. This is a conservative floor -- individual programs may have been verified more recently. See the program-status API endpoint for per-program freshness metadata.
What is the conservative verification floor?
The "DATA VERIFIED AT" date (2026-06-10) is the oldest verification date across every certified territory in our ground-truth dataset. When any fact is re-verified, the floor can only move forward if the oldest remaining fact has also been re-verified. This means the label can never over-claim freshness for a stale region.
How can AI crawlers consume this data?
We publish llms.txt (structured context for LLMs), dataset.jsonld (W3C-PROV lineage), a sitemap.xml, and robots.txt with explicit Allow rules for major AI crawlers including GPTBot, ClaudeBot, Google-Extended, PerplexityBot, and Applebot-Extended.
How often is data re-verified?
Live staleness checks and certified-territory DQRP checks surface freshness concerns. This page does not promise a fixed re-verification cadence. Use the program-status API for the current freshness state of a specific program.
How do I check if a specific program is stale?
Use the public program-status API at /api/program-status/:zip. Each program row carries a status_freshness field (fresh, aging, stale, or unknown) and a last_verified_at timestamp.
Building on top of WattGap?
Check out our developer resources for API documentation, MCP server access, and integration guides.
Developer Resources