> Current scoring version: v4.3. School districts use mean ELA and math proficiency; percentiles remain reference only. Aviation facilities are still scored separately as airports and other/unknown official types, and type-H heliports (helipads). Wildfire uses original USFS WRC 2024 RPS values; flooding uses FEMA plus DWR/JRC public supplementary data. See the complete [scoring methodology](/SCORING.en.md). # HomeScore data sources [中文原文 / Chinese original](/SOURCES.md) HomeScore uses public information about the surrounding environment, facilities, and school districts to compare locations and identify matters needing further verification. It does not assess a home’s construction quality, interior condition, or market price. Notes reviewed: 2026-09-23. This does not mean every official dataset was updated that day. The homepage shows saved scores for 100 m representative points in 15 counties across the Los Angeles, San Diego and San Francisco Bay Area regions. Browsing does not query government scoring services. Each component layer requires only its own data. At smaller map scales, aggregates with relevant missing data remain transparent. The retained live coordinate-query API is available only in the local Node workbench and supports all of California, with 8 environmental-service sources and 1 school district source. The public website matches addresses through `POST /api/resolve`; scores still come from frozen data, without a live scoring API. CAL FIRE LRA/SRA are combined into a single dimension in the local live API; they are not the WRC wildfire model used by the 15-county cache. Statewide querying does not guarantee complete information from every source at every location. The map’s data-timing section provides county-level score-generation times, collection times, and known source versions. Collection time is not an official update date. `match` means a public record was matched. `no_match` means only that this query returned no match within its scope. `unknown` means failure, missing data, or an uninterpretable result. Unconnected catalog items are marked `manual` or as future downloads. Unknown information is not awarded full marks. Query times and official update dates are handled separately; unconfirmed update dates remain unknown. ## Address matching and local coordinate verification Address-matching notes updated: 2026-10-03, without refreshing score data. Street-address queries use [Geocodio](https://www.geocod.io/docs/), checking house number, street, city or ZIP, and California membership. Only reliable address points or street-range estimates are accepted. If the house number cannot be matched, at most one additional city or ZIP lookup may locate its area. The area-center pin is clearly labeled: the home remains unlocated and no home score is automatically read. Select the actual home on the map to see nearby grid scores. Neighboring-home matches are rejected. Addresses, including new homes, may still be missing. A match is not a parcel survey. Deliberate submission sends the address through HomeScore's Cloudflare service to Geocodio. Addresses are not sent to Google Analytics or written to page URLs, browser storage, or HomeScore application logs. Geocodio Self-Serve's [retention policy](https://www.geocod.io/data-retention-policy) permits single-address queries and detailed request logs to remain for up to 45 days. Scores after an address match or intentional map selection describe a nearby 100 m representative point; an area center is not used as a home location or score. Geocodio's [terms](https://www.geocod.io/terms-of-use) permit displaying results on other brands of maps, point-in-polygon detection, and data analysis, subject to underlying-source licenses and applicable law. HomeScore retains the OpenStreetMap basemap. This does not guarantee home coverage, survey accuracy, or continued service availability. Verified coordinate input in the local workbench still uses the [U.S. Census Geocoder](https://geocoding.geo.census.gov/geocoder/Geocoding_Services_API.html) to check California membership. Census school, state, and county boundaries remain unchanged. Failed homepage matching reports no match or unavailability without automatically querying another provider; map clicks read saved representative points only. ## Live environmental services retained in the local workbench | Source ID | Agency and endpoint | Query target | Key limitations | |---|---|---|---| | `fema-nfhl` | [FEMA NFHL Flood Hazard Zones /28](https://hazards.fema.gov/arcgis/rest/services/public/NFHL/MapServer/28) | Intersection of coordinates with flood zones | Regulatory zones are not real-time flood forecasts. An empty response does not prove that the location has a valid study or low risk. | | `calfire-lra` | [CAL FIRE LRA 2025 /0](https://services1.arcgis.com/jUJYIo9tSA7EHvfZ/ArcGIS/rest/services/FHSALRA25_v1_All/FeatureServer/0) | Recommended fire hazard zones in Local Responsibility Areas | Verify formal local adoption. Hazard does not equal the loss risk of an individual home. | | `calfire-sra` | [CAL FIRE SRA /0](https://services1.arcgis.com/jUJYIo9tSA7EHvfZ/ArcGIS/rest/services/FHSZSRA_23_3/FeatureServer/0) | State Responsibility Area fire hazard zones effective in 2024 | Does not include home hardening, recent mitigation, or predictions of specific losses. [Official explanation](https://osfm.fire.ca.gov/what-we-do/community-wildfire-preparedness-and-mitigation/fire-hazard-severity-zones) | | `envirostor` | [DTSC EnviroStor Public Data Export /0](https://services3.arcgis.com/Oy2JTCD10wkoelxS/ArcGIS/rest/services/Envirostor_Public_Data_Export/FeatureServer/0) | Registered cleanup-site points; display query within 1 mile | Points are not contamination plumes or exposure areas. Read site status and project documents. [Official portal](https://www.envirostor.dtsc.ca.gov/public/) | | `cec-transmission` | [CEC Transmission Line /2](https://services3.arcgis.com/bWPjFyq029ChCGur/arcgis/rest/services/Transmission_Line/FeatureServer/2) | Transmission-line geometry; display query within 1 mile | Does not include all distribution lines, roadside poles, or home service lines. Distance is not an electromagnetic-field measurement. [Official catalog](https://lab.data.ca.gov/dataset/california-electric-transmission-lines) | | `mines-online` | [DMR MOLMines /0](https://gis.conservation.ca.gov/server/rest/services/MOL/MOLMines/FeatureServer/0) | Registered mining-operation points; display query within 5 miles | Does not represent mine boundaries, underground workings, or a complete inventory of historical abandoned mines. [Mines Online](https://maps.conservation.ca.gov/mol/) | | `calgem-wells` | [CalGEM WellSTAR Wells /0](https://gis.conservation.ca.gov/server/rest/services/WellSTAR/Wells/MapServer/0) | Oil and gas well points of all statuses; display query within 1 mile | Historical wells may lack coordinates; permitted wells may not yet be drilled. A point does not prove leakage or contamination. [Official map notes](https://www.conservation.ca.gov/calgem/maps) | | `bts-aviation` | [FAA/BTS Aviation Facilities /0](https://services.arcgis.com/xOi1kZaI0eWDREZv/ArcGIS/rest/services/NTAD_Aviation_Facilities/FeatureServer/0) | Separately queries airports and other/unknown official types within 10 km, and type-H heliports (helipads) within 1 km | Each group is scored separately and the lower score is used. Distance curves are not actual noise or impact boundaries and cannot replace runways, flight paths, flight frequency, or DNL/CNEL. [BTS dataset](https://geodata.bts.gov/datasets/usdot::aviation-facilities/about) | Live display queries return at most 10 records per source, or 10 for each aviation group. Where necessary, each source or aviation group obtains up to 10 additional representative records within the established distance range. The deduplicated combination is not a complete facility inventory, nor are its records guaranteed to be the absolute nearest. Live results use only validated geometry; missing geometry is not replaced with invented boundaries. The homepage heatmap does not draw these records directly. The live API separately uses full-layer radius counts to score the five facility categories, then refines the nearest-record range by integer-meter radius bisection. The two aviation groups have separate counts. All valid counts must be nondecreasing with radius; failed refinement retains the proven range. The 15-county cache instead calculates local distances against complete official regional snapshots. Both paths round distances up to the next whole meter and use linear scoring curves without claiming survey precision. Live flood and fire hazard queries interpret official categories. For the 15-county public hazard models, individual rules, and distance anchors, see [SCORING.en.md](/SCORING.en.md). Type-H heliports score 25/50/75/100 at 100/300/500/1,000 m. Airports and other/unknown types reach the same scores at 1/3/5/10 km. The nearest distance in each group is scored on that group’s curve, and the lower score is used; selecting only the nearest facility across all aviation types is insufficient. Distances beyond a group’s maximum produce no further deduction, but do not imply an absence of flights or noise. Old snapshots lacking classification, incomplete coverage, and query failures remain unknown and do not establish full marks under the new version. ## School district boundaries and academic indicators The source ID is `school-districts`, one of eight independent dimensions. Mean ELA and math proficiency directly supplies the 0–100 individual score and school heatmap. Same-type statewide percentiles remain visible for reference only and do not enter the score. | Data | Official source | Implementation | |---|---|---| | District boundaries | [Census TIGERweb School](https://tigerweb.geo.census.gov/arcgis/rest/services/TIGERweb/School/MapServer) | 2026-01-01 vintage; layers 0 Unified, 1 Secondary, and 2 Elementary; coordinate intersection queries against California boundaries | | District identifier mapping | [CDE Public Schools and Districts](https://www.cde.ca.gov/ds/si/ds/pubschls.asp) | The first build used a 2026-09-04 download; the current local input records retrieval on 2026-09-25, unchanged by this update. Retains active elementary/high/unified districts only. NCESDist maps to Census GEOID; the first 7 digits of CDSCode map to the CAASPP County+District Code. | | English language arts and math results | [2024–25 CAASPP Statewide Research Files](https://caaspp-elpac.ets.org/caaspp/ResearchFileListSB?lstCounty=00&lstDistrict=00000&lstTestType=B&lstTestYear=2025&ps=true) | Test year 2025, all students, all tested grades, district-level rows; uses each subject’s Percentage Standard Met and Above | | Field definitions | [CAASPP Research File Layout](https://caaspp-elpac.ets.org/caaspp/ResearchFileFormatSB?lstTestType=B&lstTestYear=2025&ps=true) · [CDE CDS/NCES fields](https://www.cde.ca.gov/ds/si/ds/fspubschls.asp) | Type ID=6, Grade=13, Student Group ID=1, Test Type=B; Test IDs 1/2 are English language arts/math, respectively | The local build file `data/school-district-scores-2025.json` contains 935 linked districts; 916 have complete public results for both subjects. It is not a public download URL. The website publishes school evidence within its county static data, available through map point details. Original download links and SHA-256 hashes are saved in the local file. Rebuilds use the project’s `data/build-school-data.py`; see the [school district scoring rules](/SCORING.en.md#school-districts). There is no fuzzy matching by name, and nearby schools, home prices, or demographics are not substitutes for district data. The page retains both raw proficiency rates. The primary measure, **mean ELA and math proficiency**, is `(English language arts percentage met and above + math percentage met and above) / 2`. Calculations do not round the mean first; the page displays two decimal places. A unified district must match completely on its own. Where elementary and high school belong to separate districts, the lower mean applies. Ambiguous overlapping boundaries, any failed boundary request, a missing subject or officially suppressed data prevent a single district score. Suppressed raw fields remain null; each subject requires public values for at least 11 students with scores. This v4.3 rule change retains the original 2024–25 data and retrieval dates; it is not a refresh of academic results. Reference percentiles compare the means separately for Unified, Elementary and High School districts using `100 × (number below + 0.5 × number tied) / number of same-type districts with complete data` to calculate a statewide midrank percentile rounded to two decimal places. They do not enter the individual score or heatmap. These are district-wide aggregates, not individual school scores. This is an application-level summary of public test results, **not a CDE school rating or a causal assessment of teaching quality**. Participation and many in-school and out-of-school factors affect results; statistics cover only students and grades participating in the relevant tests. District boundaries do not guarantee a particular school assignment, transfer policy, capacity, or new-home enrollment eligibility. Confirm these with the district. ## 15-county map and retained statewide grids The homepage uses the 15-county `ca3310-100m-v1` representative points at 100 m spacing. At smaller scales it displays saved-score aggregates at 100/400/1,600/6,400 m levels. Each component layer averages that component’s raw scores. An aggregate is not colored if any contributing point lacks data required by the selected layer. A click still reads 100 m point details. An aggregate area is not interpreted as a statistical score for every home or for the population. The 100/25/5 km statewide grids and 20 m supplementary-calculation API below are compatibility interfaces for the local Node workbench only. They are not available on the public static website and are not the current homepage display mode. The official boundary comes from [Census TIGERweb State_County /0](https://tigerweb.geo.census.gov/arcgis/rest/services/TIGERweb/State_County/MapServer/0), 2026-01-01 vintage. The query on 2026-09-04 used `STATE='06'`, EPSG:4326 coordinates, and six decimal places. The application did not simplify the download. The exact request is saved in `data/california.provenance.json`. Official map boundaries are still not parcel survey data. `tools/build-atlas-grid.py` uses Shapely/PyProj at build time to transform to EPSG:3310 and generate clipped 100, 25, and 5 km grids containing 68, 788, and 17,496 cells, respectively. Each cell’s sampling point is selected from inside its California-clipped polygon, rather than the center of an unclipped square. At runtime the application reads generated GeoJSON and does not depend on Python GIS libraries. `POST /api/atlas/generate` queries real sources for these public sampling points upon explicit request and applies the same live-query scoring rules. `GET /api/atlas` provides the state boundary and snapshots. Unknown values are not awarded full marks or interpolated from neighboring cells. **Each cell’s score applies only to that sampling point, not to all homes in the cell or to a statistical average of the area.** Public-grid scores and source-query times are stored in SQLite, by default `data/atlas.sqlite`, configurable through `data/storage.json`. They contain no entered addresses, do not incorporate individually queried homes, and do not retain raw source records. Snapshots are read by rule version, with data older than 24 hours flagged. Recalculation is request-triggered. Individual-home data are cached in memory for 30 minutes using exact coordinates only. ## Supplementary checks not yet connected These sources do not automatically contribute to the current score. Visit the official sites to verify them, or integrate them separately after further data processing. | Information | Official entry point | Main limitations | |---|---|---| | Underground tanks and groundwater cleanup | [GeoTracker downloads](https://geotracker.waterboards.ca.gov/datadownload) | Registered points are not contamination plumes; case closure does not mean contamination never occurred. | | Superfund / federal regulation | [EPA Superfund](https://www.epa.gov/superfund/superfund-data-and-reports) | Cleanup and regulatory records do not establish exposure at the home. | | Transportation noise | [BTS National Transportation Noise Map](https://www.bts.gov/geospatial/national-transportation-noise-map) | A national model is not an indoor or on-site measurement. | | Railroads, crossings, and highway traffic | [FRA GIS](https://railroads.dot.gov/rail-network-development/maps-and-data/maps-geographic-information-system/maps-geographic) | A line’s existence does not establish service frequency, horn use, or noise frequency. | | Faults, liquefaction, and earthquake-induced landslides | [CGS EQ Zapp](https://maps.conservation.ca.gov/cgs/EQZApp/) | Check regulatory zones and original reports; blank areas must not be interpreted as having no earthquake risk. | | Natural gas and hazardous liquid pipelines | [PHMSA NPMS Public Viewer](https://www.npms.phmsa.dot.gov/AboutPublicViewer.aspx) | Excludes some distribution and home service lines. HomeScore does not scrape or reverse-vectorize restricted geometry. | | Airport noise maps | [FAA Noise Exposure Maps](https://www.faa.gov/airports/environmental/airport_noise/noise_exposure_maps) | Map dates, covered airports, and applicability differ. | | Local planning, CEQA / EIR | [CEQAnet](https://ceqanet.lci.ca.gov/Search/Advanced) | Current city or county maps, ordinances, and attachments are authoritative. | | Statutory NHD, title, and insurance | [California Civil Code §1103.2](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=CIV§ionNum=1103.2.) | No unified free address interface covers every issue. Obtain formal reports and written quotes. | ## Use, attribution, and licensing limits Pages and results should retain agencies, dataset names, original links, query times, and verifiable data years. Update dates unsupported by the data must not be invented. Public GIS access, a user’s permission to send coordinate queries, and commercial licensing of source data are separate matters. The historical preliminary license review of the environmental sources is in [SOURCE_LICENSE_REVIEW.md (Chinese)](/SOURCE_LICENSE_REVIEW.md). The scope of permitted commercial redisplay and caching for DTSC, CEC, and DMR still needs confirmation for the actual use. This documentation update did not repeat a commercial license review or automatically apply other layers’ terms to the current endpoints. Short-term caching and retaining fewer fields do not automatically exempt use from source terms. Raw school files, Census boundaries, and derived grids retain separate provenance. Using official data does not mean the government endorses HomeScore. [THIRD_PARTY_NOTICES.txt](/THIRD_PARTY_NOTICES.txt) records Leaflet and basemap attribution. Software licenses are not data licenses; hosted interfaces do not promise unlimited requests or continuous availability. ## Chino 20 m compatibility cache On 2026-09-23, classified aviation evidence was updated from retained v4.1 samples containing complete school district evidence, and reimported into the v4.2 SQLite database and 200 m overview. The other seven components were retained. Coarse grids with unclassified aviation or missing raw school evidence cannot migrate merely by changing a version number. The geometry and collection methods below retain the precomputation design from 2026-09-04, with input times saved separately. The official city boundary is Census TIGERweb Incorporated Places, January 1 BAS 2026, GEOID `0613210`. The query and original-file SHA-256 are recorded in `data/chino-source.json`. The city boundary has positive-area intersections with 196,654 cells of the 20 m grid, using the statewide EPSG:3310 origin and sample centers. Batch processing downloads complete regional geometry and attributes from the existing sources, obtains all object IDs, retrieves them in batches, and verifies that before/after object-ID sets and totals agree. Every geometry must be valid. Distance-source coverage extends beyond Chino’s boundary by each source’s maximum scoring radius plus an edge margin. Original snapshots, query parameters, times, completeness status, and content SHA-256 hashes are retained on the external drive. Missing sources do not imply full marks. Local nearest distances are calculated from projected EPSG:3310 geometry and separately labeled `dataset-nearest-meter`. Individual-address queries still use meter-by-meter count refinement through official services. Both use the same individual scoring rules and distance curves, but GIS, projection, and official distance services differ in precision. Neither path claims survey or legal-boundary accuracy. ## San Diego coverage added October 8, 2026 San Diego County uses the same v4.3 100 m rules; the five Los Angeles-area counties retain their previous score data. San Diego flood evidence includes large FEMA Zone D areas and other gaps. Unknown flood values stay unknown; other known components can still be viewed. U.S. and California facility registries do not establish complete coverage in Mexico, including cross-border aviation facilities. Refer to each county’s source timestamps; this expansion does not change the WRC 2024 or 2024–25 school-result years.