WalletShock / Methodology
Methodology
WalletShock shows what everyday goods cost in a reader's own area, how much those prices have changed, what electricity and gasoline cost there, whether data centers are nearby, and how the local school district's spending has moved, and it places those facts next to the federal lobbying of the industries that sell those goods.
WalletShock shows lobbying activity alongside price changes. It does not assert that one caused the other. No sentence on the site, in an export or in a summary uses a causal verb linking the two.
How a location becomes a set of data areas
A street address or a pair of coordinates is sent to the U.S. Census Bureau Geocoder, which returns the state, county, incorporated place, 119th Congress congressional district and unified school district. No key is used and nothing is stored about the reader. Each data layer is then resolved to the finest area that publishes it, and every number carries a label naming that area.
- Consumer prices. The county is mapped to its Core Based Statistical Area through the Census Bureau's July 2023 delineation file. If that area is one of the 23 metropolitan areas for which the Bureau of Labor Statistics publishes the Consumer Price Index, the metro series is used. Otherwise the Census division is used, then the region, then the U.S. city average. The same ladder is walked per item, because BLS publishes many detailed items (eggs, milk, ground beef and most food) only nationally, while it publishes gasoline, electricity, natural gas, rent, cars, car insurance, apparel and restaurant meals for every metro. Average dollar prices are shown where BLS publishes them: food items for the nation and four regions, energy items for all 37 areas.
- Per-timescale choice. For each timescale (1, 2, 3, 5 or 10 years) the finest published series that reaches back far enough is used, so a metro series that began recently can answer the 1-year view while the national series answers the 10-year view. The label says which series produced the change. A series whose latest month is more than 15 months behind the freshest series for that item is treated as discontinued and the label says when it stopped.
- Gaps. BLS publishes New York, Los Angeles and Chicago monthly and the other twenty metros in alternating months. Charts draw unpublished months as breaks and count them; nothing is interpolated. Percent changes compare the latest month with the same month N years earlier, or the nearest published month within two months, and say so.
- Electricity. The utility serving the county comes from the Energy Information Administration's Form EIA-861 service territory file, ranked by residential customers across the sales and delivery-company files. Its average residential price is bundled revenue divided by sales for the data year. Where the utility only delivers power and competitive retailers set the price, as in most of Texas, the state average is shown and the label says so. The trend line is the EIA monthly statewide residential average.
- Gasoline. The BLS metro average price for regular gasoline where published; otherwise the EIA weekly series for the city, then the state, then the Petroleum Administration for Defense District, then the U.S.
- School spending. The unified school district returned by the geocoder is joined by its NCES identifier to the Census Bureau's Annual Survey of School System Finances, fiscal years 2013 onward. Current spending per pupil is compared with the all-items Consumer Price Index for the area's finest published level, matching each fiscal year to its closing month of June. Figures are as published and not adjusted for inflation; a reported figure under $1,000 per pupil is treated as not reported and the panel says how many years were skipped.
- Data centers. Facilities within 25 miles of the reader's point, measured on the earth's surface with PostGIS, plus every facility FracTracker places in the same county. Data provided by FracTracker Alliance (2026). Accessed via https://www.fractracker.org/data-centers/. Status, size, operator and community pushback fields are FracTracker's own and carry its location confidence rating.
- ZIP codes, cities and counties. Typed into the picker, these resolve to the geographic center of the ZIP code tabulation area, place or county from the Census Bureau's 2024 gazetteer files, and the report is built for that point. The label names the ZIP, city or county that was looked up.
- Congressional districts. A district code such as TX-33 resolves every county that intersects the district, from the Census Bureau's 2020 district-to-county relationship file, and reports the price area (CPI metro, else division) covering the largest share of the district, listing the others with their shares. Shares are by population from the American Community Survey where the Census API key is configured, otherwise by land area, and the page says which. Energy, data centers and school spending are shown for the district's central point, because those layers need a concrete place.
- Lobbying. Filings with the Senate Office of Public Records under the Lobbying Disclosure Act are fetched from the LDA REST API. The API offers no filter by issue code, so every filing for the last five years is retrieved and each filing's general issue codes are recorded. For each basket item, the panel shows the top ten clients by number of filings carrying that item's issue codes in the latest full year, and the clients whose names match a curated list for the industry. Name matching is imperfect: subsidiaries file under other names, the same organisation can appear under several registrants and is merged by exact name, and the industry list is reviewed by a person before launch. Counts are filings, not lobbyists or dollars; amounts are the income registrants reported for the client plus the expenses self-filers reported. Lobbying is federal and the same for every area.
- Money-flow links. Where an LDA client name matches an entity on purchasingpolicy.org exactly or after removing corporate suffixes, a link to that entity's donor and PAC network is shown. The match is cached; the public site never calls purchasingpolicy.org, and a missing match hides the link without affecting anything else.
Sources and refresh
- Bureau of Labor Statistics Public Data API v2: CPI and average price series, refreshed weekly.
- Energy Information Administration API v2: state electricity prices and weekly gasoline, refreshed weekly; Form EIA-861 files, refreshed each November.
- Census Bureau: Annual Survey of School System Finances individual unit files, checked each spring; Geocoder and CBSA delineation file.
- FracTracker Alliance data centers dataset, imported from the September 2026 export.
- Senate Lobbying Disclosure Act API: filings refreshed daily.
- QPQ Tracker API (purchasingpolicy.org): entity matches refreshed with the lobbying data.
Every panel names its source and the date of the latest observation. The public site reads only from its own database; scheduled jobs fetch from the agencies so visitor traffic never spends their rate limits.
Limits
- No federal agency publishes consumer prices for an individual city, county or district. The metro area is the floor, and outside the 23 metros the division is the honest answer.
- BLS discontinued several metro and division series in recent years, including metro electricity average prices after December 2024; the site falls back and labels it.
- School finance data lag by about two years.
- FracTracker's dataset focuses on proposals and is still adding existing facilities.
- Lobbying counts depend on how filers describe their activities and which names they file under.
WalletShock is a project of the Dekleptocracy Alliance, a Texas 501(c)(4) nonprofit. Money-flow data comes from its QPQ Tracker at purchasingpolicy.org.