Back home

Verification

Sources

Every source RoofShopper draws from, its tier, and when it was last refreshed.

  • City of Tampa Construction Services (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · City of Tampa, FL

    Last refreshed 2026-07-26

    Public government permit records, no authentication required. Eighth Accela Citizen Access tenant — same vendor family as Pasco, Lee, Pinellas, Charlotte, Hillsborough, Osceola, and Polk — and the first City (rather than county) registration on this vendor. Real, closed-vocabulary "Residential Roof Trade Permit"/"Commercial Roof Trade Permit" categories — the exact same strings already mapped for Hillsborough County, reused with zero new classifier code. Confirmed live to expose Hillsborough's own real gap: unincorporated-Hillsborough's resolver already excludes "TAMPA" by mailing-city name, so this registration is purely additive, no overlap. Required two real, evidence-based fixes to the shared accelaPermits.ts this sprint, both backward-compatible with every other tenant: (1) this tenant's own siteAddress field renders with no comma at all ("204 E Cluster Ave T 33604", and inconsistently, on older records, "204 E CLUSTER Ave TAMPA FL 33604" — full city/state, still no comma) — extractStreetPortion() now anchors on the last-known street-type vocabulary word instead of assuming a fixed comma or trailing-token count; (2) this tenant's own server-side street-name search rejects a leading directional prefix ("E Cluster" returns zero rows; "Cluster" alone returns the real row) — the same failure mode already disclosed for Osceola, but affecting roughly 90% of Tampa's own real addresses rather than a narrow edge case, given Tampa's directional-quadrant street-naming convention — fetchPermits() now retries once with the leading direction stripped when the first search finds no match, verified safe because matchesAddress() itself still compares the full, direction-included address, so this can only widen which rows are fetched from the server, never which ones are accepted as a match. See docs/providers/tampa-preflight.md.

  • City of North Port Building Division (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · City of North Port, FL

    Last refreshed 2026-07-27

    Public government permit records, no authentication required. Ninth Accela Citizen Access tenant — same vendor family as every prior tenant, module=Building same as Pasco/Charlotte/Hillsborough/Osceola, and the second City (after Tampa) rather than County registration. Real, closed-vocabulary "Residential Roof/Reroof"/"Commercial Roof/Reroof" categories confirmed directly on live records this sprint (not inferred by symmetry) — extended into the shared accelaRoofPermits.ts classifier, no new file. This tenant's own real records carry "VENICE" as their USPS mailing city for a genuine share of its own ZIP footprint (34293, split with the separate City of Venice) — deliberately NOT excluded by mailing-city name, the same departure already established for Osceola's and Polk's own resolvers, for the identical directly-observed reason. See docs/providers/north-port-preflight.md.

  • City of Sarasota Building and Engineering Permitting (FastTrackGov / Mitchell Humphrey)

    Tier 1 · GOVERNMENT RECORD · City of Sarasota, FL

    Last refreshed 2026-08-23

    Public government permit records, no authentication required, no CAPTCHA. First RoofShopper FastTrackGov/Mitchell Humphrey ("tripleview") provider family onboarding — a genuinely different WebForms shape from Accela: the search step is real ASP.NET WebForms (GET for VIEWSTATE, POST a real search, real GridView results table), but the *detail* page itself is client-JS-rendered from empty placeholder HTML — real field data is fetched by the page's own script via a same-origin SOAP call to Common/PropertySearch.asmx (ExecuteDataSource, dataSourceName "Sarasota PM Inquiry", parameter SPOKey = the record's own GUID), confirmed live via a plain curl replay with zero cookies/session required. Real Work Type values confirmed live and directly used as the roof-classification signal: "REROOF - RESIDENTIAL" (three independent real permits: 2026-012048 at 3942 Glen Oaks Manor Dr; 2026-011334 and 2026-011336, a real two-permit case — main house and guest house — both at 1894 Datura St) and the documented commercial parallel "REROOF - COMMERCIAL". Real false-positive protection confirmed live: permit 2024-007398 (Work Type "ALTERATIONS/REPAIRS - RESIDENTIAL", a real permit at 3946 Bearded Oaks Ct whose free-text Work Description happens to mention "Shingle roof replacement") is correctly NOT classified as roof — a known, accepted, and documented false-negative risk rather than an unbounded free-text guess (see lib/classify/fastTrackGovRoofPermits.ts's own header); permit 2025-000349 ("REPLACING 4 WINDOWS - SIZE FOR SIZE") is also correctly not classified. A real confirmed-zero address was independently verified: 3960 Glen Oaks Manor Dr, Sarasota, FL 34232 — a real, geocodable property (Esri World Geocoding Service score 98.9, within the confirmed real address range of that street segment) that returns the source's own real "The entered criteria did not yield any results." marker, never fabricated. This source exposes no parcel/folio identifier anywhere (confirmed directly against three real detail records) and no single overall permit-status string, only several genuinely independent review tracks (Administrative, Plans Review/Planning, Zoning, ...) — each preserved verbatim in SourceRecord.rawPayload, never collapsed into one fabricated combined state. Jurisdiction routing for this authority is never ZIP/mailing-city-based (see resolveAuthority above and lib/providers/address/municipalBoundary.ts). See docs/providers/fasttrackgov.md and docs/providers/sarasota-city-municipal-boundary.md.

  • Esri World Geocoding Service

    Tier 1 · GOVERNMENT RECORD · Florida (statewide)

    Last refreshed 2026-08-23

    Esri's free, public World Geocoding Service — the same service already used for live address autocomplete (Sprint H8) and City of Sarasota's own municipal-boundary routing (Sprint H7). A geocoded rooftop-level point, not a government parcel record — recorded only as a fallback when no parcel-based location exists for a property, never allowed to outrank one.

  • Florida Department of Revenue — Statewide Parcel Cadastral

    Tier 1 · GOVERNMENT RECORD · Florida (statewide)

    Last refreshed 2026-08-25

    Public ArcGIS FeatureServer, no authentication required. Published by Florida's county property appraisers in coordination with the Florida Department of Revenue Property Tax Oversight program. A statewide corroborating/fallback location source — never used to establish property identity, and never allowed to silently outrank a county-authoritative location source; see docs/architecture/property-location-foundation.md.

  • Hillsborough County Building Construction Services (Accela Citizen Access / HillsGovHub)

    Tier 1 · GOVERNMENT RECORD · Hillsborough County, FL

    Last refreshed 2026-08-27

    Public government permit records, no authentication required. Fifth Accela Citizen Access tenant — same vendor family as Pasco, Lee, Pinellas, and Charlotte, module=Building same as Pasco and Charlotte. Reuses the same shared classifier as Pasco and Charlotte unmodified in structure (extended Record Type vocabulary only) — this tenant's real, closed-vocabulary "Residential Roof Trade Permit"/"Commercial Roof Trade Permit" categories are the same classification strategy, not a new one. Excludes three separately incorporated cities within the county — Tampa (own separate Accela tenant), Temple Terrace (Click2Gov), Plant City (MaintStar). See docs/providers/hillsborough-preflight.md and docs/providers/accela.md.

  • City of Mulberry Building Department (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · City of Mulberry, FL

    Last refreshed 2026-08-27

    Public government permit records, no authentication required — confirmed live at 400 N Church Ave (3 real records). Own, distinct Accela tenant ("MULBERRY") from Polk County's own "POLKCO" instance; the real official domain is cityofmulberryfl.org (cityofmulberry.com, without "fl", is an unrelated domain-squatter page). Real recordType "Re-Roof Permit" (BROOF-25-0057, "Clean and repair the roof area above the east offices and recoat the roof from metal edge to metal edge in problem area only") matches the shared accelaRoofPermits.ts closed vocabulary unchanged — zero classifier changes required. "Commercial New Permit" and "Fence-Wall Permit" at the same address correctly excluded (no tracked HomeSystem category). A second real address (144 SE 1st St) confirmed SUCCESS_NO_RECORDS handled cleanly.

  • National Hurricane Center — Wind History (Best Track Wind Swath)

    Tier 1 · GOVERNMENT RECORD · United States (federal)

    Last refreshed 2026-08-29

    Public NOAA/NHC GIS product, no authentication required. Authoritative reconstructed cumulative wind-field extent per intensity threshold (34/50/64 kt) for the storm's full track — see docs/architecture/hurricane-exposure-v1.md for the live-verification record.

  • USGS Short-Term Network (STN) — High-Water Marks

    Tier 1 · GOVERNMENT RECORD · United States (federal)

    Last refreshed 2026-08-30

    Public USGS STN service, no authentication required. Each record is a physically surveyed, QA-approved observation of the water elevation a specific historical event reached at one specific fixed site — never property-specific evidence, never a basis for comparing against a property's own (unknown) elevation. See docs/providers/usgs-hwm.md.

  • NOAA/NCEI Storm Events Database

    Tier 1 · GOVERNMENT RECORD · United States (federal)

    Last refreshed 2026-08-30

    Public NOAA/NCEI government dataset, no authentication required. Storm Data as compiled from NWS field-office reports — see docs/providers/ncei-hail.md for known reporting-based (not exhaustive-detection) limitations.

  • NOAA/NWS Storm Prediction Center — Tornado Database

    Tier 1 · GOVERNMENT RECORD · United States (federal)

    Last refreshed 2026-08-30

    Public NOAA/SPC government dataset, no authentication required. Compiled from NWS Storm Data submissions — see docs/providers/spc-tornado.md for known detection-bias limitations.

  • City of Largo Civic Access Portal (LCAP) — Tyler EnerGov SelfService

    Tier 1 · GOVERNMENT RECORD · City of Largo, FL

    Last refreshed 2026-09-08

    Public government permit records, no authentication required — confirmed live this session via the real tenant's own /api/Home/GetTenants response: tenantId=1, tenantName="CityofLargoFLProd", Tyler-TenantUrl="CityofLargoFLProd". LCAP replaced a prior system ("eTRAKiT", hosted at etrakit.largo.com) via a formal, city-announced migration/cutover; whether that legacy subdomain still resolves in any form remains unconfirmed (a direct check was denied/failed this session) but does not affect this current, live-confirmed source. Two real addresses ran end-to-end through the exact request shape fetchPermits() sends (search -> address re-verification -> classification), confirmed live this session: 3069 138TH PL N (9 real permits at this parcel, 3 correctly classified ROOF — a 2008 "Commercial Roof Permit" (Finalized) and two real 2025 "Residential Roof Permit" records, ROOF-25-001181 "In Review" and ROOF-25-001184 "Expired" — and 6 correctly excluded as non-roof: mechanical, window/door replacement x2, fence, plumbing x2) and 744 WOODLAND DR (4 real permits, 2 correctly classified ROOF — a 2010 "Commercial Roof Permit" and ROOF-26-000104 "Residential Roof Permit" "Final" — and 2 correctly excluded: window/door replacement, tree removal). A fabricated address (1 Fake Nonexistent St) correctly returned SUCCESS_NO_RECORDS. Both real CaseType values observed ("Residential Roof Permit", "Commercial Roof Permit") were already present in the shared ROOF_CASE_TYPES vocabulary (added previously for Winter Park) — zero classifier changes were needed for this onboarding, a genuine config-only reuse. Real parcel identifiers confirmed live on every record (Pinellas County's own dash-delimited numeric format, e.g. "01-30-15-89025-000-1500") — not independently re-checked against Florida DOR's statewide parcel join this session. See docs/providers/tyler-energov.md.

  • City of Delray Beach eServices (Tyler EnerGov SelfService)

    Tier 1 · GOVERNMENT RECORD · City of Delray Beach, FL

    Last refreshed 2026-09-10

    Public government permit records, no authentication required — confirmed live this sprint by directly capturing the real browser's own network requests (not assumed to follow a prior tenant's naming pattern): tenantId=1, tenantName="EnerGovProd", Tyler-TenantUrl="Home", the exact values this tenant's own /api/Home/GetTenants response returns. The site's own homepage copy ("Registration in the eServices platform is required to access existing records...") describes the account/application flow, not the public Search Public Records tool, which was independently confirmed anonymous — the POST /api/energov/search/search call carries no cookie or session of any kind, replayed successfully outside any browser session. Seventh RoofShopper Tyler EnerGov production onboarding, and the Tyler EnerGov Florida-sprint canary: chosen specifically to validate the already-proven provider (six prior Florida tenants) against a genuinely new county (Palm Beach, RoofShopper's first authority there) before committing to a broader multi-city sprint. Real roof records confirmed live this sprint at 532 NW 1st Ave (real parcel 12434607010020330): BLDR-019414-2026 ("Re-Roof of Existing Structure - Residential (single family or duplex)", CaseWorkclass "Roof - Replacement", status "Submitted - Online", applied 2026-08-25) plus three real historical roof-replacement permits at the same parcel spanning 2002-2010 (02-082403, 07-113780, 10-128229 — all CaseType "Legacy - Roof - Replacement", same CaseWorkclass, status "Complete"). A real roof-adjacent-but-distinct category was also confirmed and deliberately excluded: "Legacy - Roof - New Construction - SUB" (14-151432-000-000-R3-00, at a different real parcel) — new-construction roof work, not a replacement, never added to the roof classifier's vocabulary. Real false-positive-protection evidence: 21 other non-roof permits at the 532 NW 1st Ave parcel (fence, hardscape, electrical, new construction) and a further live pass across 6+ single-family addresses (627 East Dr, 3064 Carl Bolter Dr, 917 Iris Dr among them) — every non-roof CaseWorkclass (Alteration, Hardscape, Pool, Solar-App, General, Replacement [AC], Fence, Miscellaneous - Legacy) correctly excluded from roof classification. Real parcel identifiers (MainParcel) present directly on every search-result row, confirmed resolvable-format, no per-record detail-page fetch needed — this provider family's own established advantage over Accela. One real, disclosed, unresolved gap: 1055 SW 15th Ave (a real permit, BLDC-019445-2026, "Exterior Openings" for Suite C9-C12) appeared in a broad keyword search but did not match via this provider's own exact-address query — most likely a unit/suite-qualifier gap on a multi-tenant commercial building, not root-caused this sprint; every ordinary single-family address tested resolved correctly. A real, separately-fixed shared-adapter bug was found and corrected during this onboarding: the shared Tyler EnerGov adapter's own single-request PageSize (previously 25) silently excluded real records beyond page 1 — confirmed live for this exact parcel (39 total real permits on file, 3 of them real roof-replacement records that fell entirely on the never-requested page 2 before the fix) — see MAX_RESULTS_PER_SEARCH in tylerEnerGovPermits.ts.

  • City of Sunrise Tyler EnerGov SelfService

    Tier 1 · GOVERNMENT RECORD · City of Sunrise, FL

    Last refreshed 2026-09-10

    Public government permit records, no authentication required — confirmed live this sprint via the real tenant's own /api/Home/GetTenants response: tenantId=1, tenantName="SunriseFL Prod" (genuinely contains a literal space — sent verbatim in both the tenantName and Tyler-TenantUrl headers, confirmed functional), self-hosted on the city's own energov.sunrisefl.gov domain rather than Tyler's shared tylerhost.net hosting, a genuinely different hosting pattern from every prior Broward tenant. Real roof records confirmed live via a full end-to-end fetchPermits() validation run against 10 real addresses plus one negative control: every expected CaseNumber found (e.g. 6221 NW 19 ST -> R-STRT-011790-2026, real depth also confirmed back to 2001-12-27 at 6881 NW 29 ST/2002-00001500, "Residential Structural - Roof / Reroof", CaseWorkclass "Roof / Reroof"). The deepest genuinely continuous real historical evidence confirmed anywhere in this program — no generic-bucket migration gap found across 2001, 2011, and 2021-era records sampled at the same real parcel.

  • City of Coral Gables Tyler EnerGov SelfService

    Tier 1 · GOVERNMENT RECORD · City of Coral Gables, FL

    Last refreshed 2026-09-11

    Public government permit records, no authentication required — confirmed live this sprint via the real tenant's own /api/Home/GetTenants response: tenantId=1, tenantName="CoralGablesFLProd", Tyler-TenantUrl="CoralGablesFLProd". Real roof records confirmed live via a full end-to-end fetchPermits() validation run against 10 real addresses plus one negative control: every expected CaseNumber found (e.g. 1141 S ALHAMBRA CIR -> BLDR-21-09-0148, "Residential Roofing Permit", CaseWorkclass "Roofing", status "Finaled", parcel 0341300080550) — that same real parcel's own permit history also included a real "Residential Addition or Exterior Renovation Permit", confirmed correctly excluded from roof classification. Real historical depth for roof-classifiable records is confirmed only from 2021-08-30 forward (case BLDR-21-08-0086); an older real record at this tenant ("EDEN Legacy Permit - EDEN Legacy Building", 2017) is a generic pre-migration bucket type, not roof-identifiable — the same kind of migration ceiling confirmed at Miami Gardens.

  • City of Miami Gardens Tyler EnerGov SelfService (CMG Customer Self Service)

    Tier 1 · GOVERNMENT RECORD · City of Miami Gardens, FL

    Last refreshed 2026-09-11

    Public government permit records, no authentication required — confirmed live this sprint via the real tenant's own /api/Home/GetTenants response: tenantId=1, tenantName="MiamiGardensFLProd", Tyler-TenantUrl="MiamiGardensFLProd" — hosted on the "energovpub" tylerhost.net subdomain segment, genuinely distinct from the "energovweb" segment every prior tylerhost.net tenant in this program used. Real roof records confirmed live via a full end-to-end fetchPermits() validation run against 9 real addresses plus one negative control: every expected CaseNumber found (e.g. 20280 NW 33RD CT -> ROOF-2026-003971, "Residential Building Roof", CaseWorkclass "Residential", status "Issued", parcel 3411330230020) — the same real parcel also returned a real pre-migration record ("Eden Historical - PZ", 2016), confirming a real "Eden" system migration ceiling on this tenant's historical roof-classifiability (see registry.ts). Real CaseWorkclass values ("Residential"/"Commercial") are dangerously generic and deliberately never added to the shared ROOF_WORKCLASS_VALUES set — classification relies on CaseType alone for this tenant.

  • Polk County Building Division (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · Polk County, FL

    Last refreshed 2026-09-11

    Public government permit records, no authentication required. Seventh Accela Citizen Access tenant — same vendor family as Pasco, Lee, Pinellas, Charlotte, Hillsborough, and Osceola, launched with the Coverage Factory tooling built in Sprint L (scripts/preflight.ts). Reuses makeAccelaPermitProvider() and accelaHtmlParser.ts unchanged. Real, closed-vocabulary "Re-Roof Permit" record type (no Residential/Commercial split, the same shape as Osceola's own "Roofing Permit") — extended into the shared accelaRoofPermits.ts classifier, no new file. Excludes twelve separately incorporated cities (Lakeland, Winter Haven, Bartow, Auburndale, Haines City, Davenport, Lake Wales, Mulberry, Frostproof, Dundee, Lake Alfred, Lake Hamilton) that run their own permitting departments — but, unlike the default pattern, NOT by mailing-city name: a real record confirmed live this sprint carries "LAKE WALES" as its mailing city despite being genuinely unincorporated-county territory administered by this tenant itself, so a name-based exclusion would incorrectly refuse a real, correctly-routed address. Eagle Lake (previously also excluded) was added to this authority's own routing this milestone (Top 10 Florida County Coverage Milestone 6) — confirmed live to have NO separate tenant of its own (its official ACCELA PORTAL link 302-redirects straight to this exact tenant), a real, rich set of over 100 real Eagle Lake permit records confirmed via a broad city-name search, and 3 real Eagle Lake addresses independently re-confirmed through this exact production provider code (3191 Totem Rd, 393 Gilbert St, 830 N 8th St) — none carrying a real roof/re-roof permit in the visible window, a disclosed data-coverage gap tracked separately (see the tracker's own Eagle Lake entry), not a reason to withhold correct routing. See docs/providers/polk-county-preflight.md. ZIP 34759 (a real Polk/Osceola county-line ZIP) is deliberately omitted from this resolver's ZIP set since it is already claimed by osceolaCountyParcelProvider, registered earlier in this array.

  • Pasco County Building Construction Services (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · Pasco County, FL

    Last refreshed 2026-09-11

    Public government permit records, no authentication required. First production jurisdiction on the Accela Citizen Access vendor platform — see docs/providers/accela.md. Excludes the six separately incorporated cities within the county's ZIP footprint (New Port Richey, Zephyrhills, Port Richey, Dade City, San Antonio, St. Leo), which run their own building departments on other systems, not this county portal.

  • City of Pembroke Pines Tyler EnerGov SelfService

    Tier 1 · GOVERNMENT RECORD · City of Pembroke Pines, FL

    Last refreshed 2026-09-12

    Public government permit records, no authentication required — confirmed live this sprint by directly capturing the real tenant's own /api/Home/GetTenants response: tenantId=1, tenantName="EnerGovProd", Tyler-TenantUrl="home" (lowercase, confirmed functional). Real roof records confirmed live this sprint via a broad "Reroof" keyword search (32 real hits) and a full end-to-end fetchPermits() validation run against 11 real addresses plus two negative-control attempts, all through the real production pipeline: 10 of the 11 real addresses' expected CaseNumber was found in the matched results (e.g. 15575 NW 12 CT -> RO23-05953, "Residential Re-Roofing", CaseWorkclass "RESIDENTIAL RE-ROOF", status "Complete", parcel 514009110730); the 11th (8590 NW 12 ST, a real 2017 reroof, case BUL-138548) is the real address-matching limitation described next. A real, disclosed address-matching limitation was found for pre-2020 "BUL-"-prefixed legacy records (see registry.ts's own knownLimitations) — not fixed, since modern records match cleanly and the shared matchesAddress() function was deliberately left unchanged rather than special-cased for one tenant.

  • Lee County Dept. of Community Development (Accela Citizen Access / eConnect)

    Tier 1 · GOVERNMENT RECORD · Lee County, FL

    Last refreshed 2026-09-12

    Public government permit records, no authentication required. Second Accela Citizen Access tenant — same vendor family as Pasco County, same city/county, and same permitting authority as the parent county of the existing Cape Coral integration. Excludes six separately incorporated cities within the county's ZIP footprint (Cape Coral, Fort Myers, Bonita Springs, Sanibel, Estero, Fort Myers Beach), which run their own building departments on other systems, not this county portal. Module name ("Permitting") and Record Type/Record Status vocabulary confirmed to differ from Pasco's tenant — see docs/providers/accela.md.

  • City of Cape Coral Building Permits (ArcGIS Open Data)

    Tier 1 · GOVERNMENT RECORD · City of Cape Coral, FL

    Last refreshed 2026-09-12

    Public open government data. No warranty of accuracy stated by the source system. Verify exact published disclaimer before production use.

  • City of Fort Myers Tyler EnerGov SelfService

    Tier 1 · GOVERNMENT RECORD · City of Fort Myers, FL

    Last refreshed 2026-09-12

    Public government permit records, no authentication required — confirmed live this sprint via the real tenant's own /api/Home/GetTenants response: tenantId=1, tenantName="City of Fort Myers", Tyler-TenantUrl="Home" — a custom city-hosted domain (cdservices.cityftmyers.com), not Tyler's shared tylerhost.net hosting, the same custom-hosting pattern already proven for Miami Beach. Real roof records confirmed live via fetchPermits() validated end-to-end against 9 distinct real addresses across two test passes (e.g. 1758 CORONADO RD -> TRD-065138-2026, "Re-Roof: 1&2 Family", status "Issued-Inspections", parcel 10176109, whose own real permit history at the same parcel also included real non-roof permits correctly excluded: fence/wall, windows/doors, A/C replacement, new plumbing). Both a modern "Re-Roof:" CaseType prefix and an older, equally real "Roof:" (no "Re-") prefix were confirmed live on records from different eras. This tenant's own custom-hosted server responded intermittently under rapid back-to-back requests in the same test session — several calls returned a real connection timeout (TEMPORARILY_UNAVAILABLE, "did not respond," never a schema/access failure or a false negative) — and the negative-control fake address could not be cleanly confirmed as SUCCESS_NO_RECORDS this sprint for the same reason (both attempts timed out); every request that did complete returned the correct result. A real operational pacing consideration for production request scheduling against this specific tenant, not an architecture incompatibility — every other tenant in this sprint responded reliably. A real roof record was also confirmed dated as far back as 1992-05-27 (case 9202588) — the deepest true historical evidence found in this program — though that record's own address is truncated (no city/ZIP), a real data-quality gap for that one record's matchability.

  • Pinellas County (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · Pinellas County, FL

    Last refreshed 2026-09-12

    Public government permit records, no authentication required. Third Accela Citizen Access tenant — same vendor family as Pasco and Lee County, module=Building same as Pasco. Covers unincorporated Pinellas plus six interlocal-agreement/fully county-served municipalities (Safety Harbor, Oldsmar, Belleair Beach, Belleair Shore, Indian Rocks Beach, Kenneth City) — one registration covers seven jurisdictions. Excludes 18 separately incorporated cities that run their own permitting systems (St. Petersburg, Clearwater, Largo, Dunedin, Pinellas Park, Tarpon Springs, Seminole, Gulfport, Treasure Island, Madeira Beach, Belleair, Belleair Bluffs, Indian Shores, North Redington Beach, Redington Beach, Redington Shores, South Pasadena, St. Pete Beach). No Record Type category is roof-specific on this tenant (confirmed live) — classification uses a description/project-name keyword match instead of Pasco's Record Type or Lee's permit-number-prefix strategy; see docs/providers/pinellas-preflight.md and docs/providers/accela.md.

  • City of Cooper City Building Division (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · City of Cooper City, FL

    Last refreshed 2026-09-12

    Public government permit records, no authentication required. Twentieth Accela Citizen Access tenant — a real Accela architecture test (secondary fast-lane target, investigated after the primary group per this sprint's own brief). This tenant's own Record Type is a broad umbrella ("Residential Structural Permit" covers roofing, demolition, driveways, and window/door work alike, confirmed live — no roof-specific Record Type exists in its dropdown at all) — the same shape as Clearwater's/Plantation's own problem, but the real signal here lives in a different real closed-vocabulary grid column, Project Name (`_lblProjectName`), not Short Note (confirmed live to be empty on both real records this sprint despite existing on this tenant's grid). Required one new classifier file, accelaProjectNameRoofPermits.ts (a fourth distinct Accela classification strategy alongside Record-Type, Short-Note, and Lee's/Pinellas's own), not a fork of an existing one, since the signal field itself is genuinely new — zero changes to accelaHtmlParser.ts or accelaPermits.ts, since `projectName` was already captured on every hit. Confirmed live via two real records: RES-BLD-2601288 (3606 Bridge Rd, real parcel "514001022930", resolves cleanly against Florida DOR CO_NO=16/Broward) and RES-BLD-2601277 (5028 Lakewood Dr), both Project Name "Roof" with Description text confirming genuine reroof work ("Reroof - Flat and Shingle", "Reroof - Tile"). Real, confirmed ZIP overlap with Hollywood (33024, 33026) and bordering Fort Lauderdale/Southwest Ranches territory (33330) — city-required gate, same discipline as Fort Lauderdale/Plantation.

  • City of Fort Lauderdale LauderBuild (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · City of Fort Lauderdale, FL

    Last refreshed 2026-09-12

    Public government permit records, no authentication required. Fourteenth Accela Citizen Access tenant — Sprint F2's third onboarding, and the sprint's deliberate module-remapping architecture test. This tenant exposes no module=Building at all (that request 302-redirects, unlike every prior tenant); the correct module is module=Permits, discovered from a real live probe, never assumed. Zero adapter code changes were needed to support it — the existing AccelaTenantConfig.searchPath was already a fully free-form config string with no hardcoded module name anywhere in the fetch/parse layer, confirmed by direct code inspection before this onboarding, so this tenant proves the pipeline was already module-agnostic rather than requiring a refactor. Config-only otherwise: one new closed-vocabulary classifier entry, "Walk-Thru - Re-Roof", confirmed live on real record BLD-ROOF-WT-25020104 at 920 Indiana Ave. Real, disclosed contradiction with prior third-party research: parcel availability was previously UNKNOWN (the field enumeration was run against the wrong module); this codebase directly confirmed VERIFIED presence (a real parcel, "504207041030", extracted from a real record's detail page) AND confirmed it resolves cleanly against Florida DOR's statewide join. That DOR lookup required adding Broward County's own CO_NO (16) to floridaDorCountyCodes.ts — the table had no Broward entry at all before this onboarding, re-verified against the same primary DOR source (floridarevenue.com/property/Documents/CountyNumberMap.pdf) rather than guessed. No commercial reroof equivalent was found in the dropdown; not added, never inferred by symmetry.

  • City of Weston Building Division (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · City of Weston, FL

    Last refreshed 2026-09-12

    Public government permit records, no authentication required. Nineteenth Accela Citizen Access tenant, config-only — real closed-vocabulary "Residential Re-roof" record type (lowercase "roof", a genuinely different literal string from the existing "Residential Re-Roof" classifier key, capital "Roof"), one new classifier key, no structural change. Confirmed live this sprint (Sprint F2) via two independent real records — B23-00988 (1103 Hickory Way, a real 4-permit address, proving the classifier correctly picks the roof-relevant record out of a real mixed multi-type result set) and B24-00661 (520 Penta Ct, whose own detail-page fetch supplied the real parcel evidence below) — and corroborated by a broader Record-Type-filtered search (10 real distinct records spanning January-December 2023) — real, disclosed multi-year historical depth, a stronger finding than several other tenants onboarded this sprint. A candidate self-hosted host, permits.westonfl.org/aca/, is indexed by search engines but did not respond live on two separate attempts this sprint (a real, disclosed dead-host finding, the same shape as Clearwater's own retired epermit.myclearwater.com vanity host discovered earlier this sprint) — aca-prod.accela.com/WESTON is confirmed live and is the host this integration uses. Real parcel ("503911071100", from B24-00661) confirmed present on the record's detail page and resolves cleanly against Florida DOR (CO_NO=16/Broward). City-required ZIP gate for consistency with the standalone-city pattern, though this city's 4 ZIPs are not actually shared with any other jurisdiction already registered in this file.

  • City of Venice Building Department (eTRAKiT)

    Tier 1 · GOVERNMENT RECORD · City of Venice, FL

    Last refreshed 2026-09-12

    Public government permit records, no authentication required. First RoofShopper eTRAKiT (CentralSquare/Superion) provider family onboarding, Top 10 Florida County Coverage Milestone 2 — built entirely from a live investigation (a classic ASP.NET WebForms/Telerik RadControls app, reusing webFormsSession.ts's own generic GET-then-POST mechanics). Confirmed live and directly fixed before this registration was written: the visible "Search" button is a plain <input type=button>, not a submit input — a plain form POST omitting an explicit `__EVENTTARGET=ctl00$cplMain$btnSearch` postback target returns the source's own real "Access Denied" response, discovered by diffing a real browser-fired POST's own DOM state against a failed replay. Real roof records confirmed live this milestone at 200 N Tamiami Trl: BLD23-02276 (Permit Sub Type "REROOF", real parcel 0000007463) and, from a broader real 12-row sample at 4500 1st Ave N shape, 00-00065 ("REROOF LESS THAN $300K"). A real non-roof record (08-01075, Permit Type "ELECTRICAL") at the same address was correctly not classified as roof. This source's own search-results grid exposes no date or status field at all (confirmed live), and no per-permit detail page was reachable this milestone — every event's occurredOn/status is honestly UNKNOWN, a disclosed limitation, not a silent gap. See docs/providers/etrakit.md.

  • City of Clearwater Building Department (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · City of Clearwater, FL

    Last refreshed 2026-09-13

    Public government permit records, no authentication required. Twelfth Accela Citizen Access tenant — Sprint F2's first onboarding. Previously misdiagnosed as unreachable: the prior sprint's target, epermit.myclearwater.com, is a retired vanity host that the city no longer links to anywhere (confirmed via repeated live curl timeouts against that specific host, while the correct host, aca-prod.accela.com/CLEARWATER, and the vanity host's own parent domain both respond normally from the same environment). The city's own "Research Building Permits" page's real outbound href points at the correct host — re-extract it before every future onboarding pass rather than trusting cached documentation. Required one real, disclosed parser fix: this tenant's grid renders the site address under a differently-named, hidden column (`_lblPermitAddress`) than every other tenant's `_lblAddress`, confirmed live via direct HTML inspection — accelaHtmlParser.ts now falls back to it, additive and zero-risk to every other tenant (an exact-suffix id match, never ambiguous with the existing field). Required one new classifier file: this tenant's own `recordType` is a broad, non-roof-specific umbrella ("Building - Construction Permit" covers dozens of unrelated permit kinds), and the real roof signal lives in a separate, real closed-vocabulary "Short Note" grid column (`_lblShortNote`) absent on every prior tenant — confirmed live with a real 94-row sample showing a small closed set ("Roof", "A/C Change Out", "New", "Replacement", "Windows, Doors and Garage Doors"). Verified span at least 2001–2026 in one anonymous interface, including real historical 2001/2002-era records using a different slash-delimited recordType convention. Parcel identifier present and cleanly extracted (Pinellas STRAP format, e.g. "13-29-15-23922-000-0100") but does not resolve against Florida DOR's statewide join under the standard transform — the same FORMAT_MISMATCH category already established for Pinellas County itself (same parcel scheme, same county). Excludes every other Pinellas municipality (already excluded by name in pinellasCountyParcelProvider); ZIP+city match required since Clearwater's ZIPs are shared with unincorporated county territory.

  • City of Lake Alfred Building Permits (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · City of Lake Alfred, FL

    Last refreshed 2026-09-13

    Public government permit records, no authentication required — confirmed live at 155 N Lake Shore Way (7 real records). Reuses makeAccelaPermitProvider() and accelaHtmlParser.ts entirely unchanged — its own, distinct Accela tenant ("COLA") from Polk County's own "POLKCO" instance. Real recordType "Re-Roof Permit" (BT-2025-276, "Remove existng shingle roof, re-nail to code, install new underlayment and 26 Gauge Metal roof system") is the exact same closed-vocabulary string already mapped in the shared accelaRoofPermits.ts classifier (originally added for Polk County itself) — zero classifier changes required, a genuine config-only onboarding. Real non-roof records at the same address correctly classified: "Electric Permit" -> ELECTRICAL, "Commercial Renovation Permit" -> ADDITIONS_REMODEL; "Commercial Sign Permit", "Fence or Wall Permit", and "Demolition Permit" correctly excluded (no tracked HomeSystem category, same discipline as every other Accela tenant). A second real address (1 W Bay St) confirmed SUCCESS_NO_RECORDS handled cleanly.

  • City of Doral Building Division (Tyler EnerGov SelfService)

    Tier 1 · GOVERNMENT RECORD · City of Doral, FL

    Last refreshed 2026-09-13

    Public government permit records, no authentication required. Third RoofShopper Tyler EnerGov tenant (after Miami Beach and Ormond Beach), onboarded Top 10 Florida County Coverage Milestone 2 — reuses makeTylerEnerGovPermitProvider() unchanged, only new tenant identity headers (tenantId=1, tenantName="EnerGovProd", Tyler-TenantUrl="home"), confirmed live by capturing the real tenant's own XHR request headers during a real UI search before this registration was written. Real roof records confirmed live this milestone via a real 600+ record "reroof" keyword sample: RFCC-2603-0752 ("RF Reroof (Comm) (Primary)", 3405 NW 115 Ave, real parcel 3530300300100), RFRC-2604-1195 ("RF Reroof - Tile (Res) (Primary)", 10882 NW 73 Ter, real parcel 3530180120630) — both real, distinct CaseType values, neither tenant's real CaseWorkclass string normalizes to the shared "reroof" key the classifier's primary signal uses (confirmed live: "RF Roof - Reroof (Comm)(Primary)" and "RF Reroof - Tile (Res) (Primary)" respectively), so both classify via the secondary CaseType signal — see lib/classify/tylerEnerGovRoofPermits.ts's own ROOF_CASE_TYPES header for the three real Doral entries this milestone added. Real parcel identifiers confirmed live on every record (Miami-Dade's own folio-style numeric format). See docs/providers/tyler-energov.md.

  • City of Miami Beach Building Department (Tyler EnerGov Civic Access)

    Tier 1 · GOVERNMENT RECORD · City of Miami Beach, FL

    Last refreshed 2026-09-13

    Public government permit records, no authentication required. First RoofShopper Sprint F3 Tyler EnerGov production onboarding — Sprint F2's research spike (docs/providers/tyler-energov-research-spike.md) reverse-engineered this tenant's anonymous JSON search API; this sprint re-confirmed it live before building anything (unchanged from F2: POST /api/energov/search/search, no cookie/session required, replayed successfully via plain curl carrying zero cookies) and built the first real shared Tyler EnerGov provider/classifier around it. Real roof records confirmed live this sprint: RFR2603210 ("Single Family Residence - Re-Roof", CaseWorkclass "ReRoof", 4469 Alton Rd, real parcel 0232220060100) and RFC2603279 ("Commercial Buildings (Including Condo) - Re-Roof", 800 83 St). A real address-history pull for the 4469 Alton Rd parcel returned 10 other real non-roof permits at the same address (Alterations, Windows/Doors, Converted Permits, Certificate of Completion, Electrical Alteration) — none misclassified, real false-positive-protection evidence for the classifier's CaseWorkclass-based signal. Real parcel resolves cleanly against Florida DOR's statewide cadastral (CO_NO=23, re-verified this sprint) — this is RoofShopper's second Miami-Dade County jurisdiction. Historical depth: real records observed with an ApplyDate as early as 2016 (non-roof, from a general keyword sample) — not itself sufficient evidence of full/complete history per this codebase's own "never infer completeness from the oldest record encountered" discipline, so coverageHistory below is UNKNOWN, not FULL_HISTORICAL, honestly. See docs/providers/tyler-energov.md and docs/architecture/tyler-energov-provider-family-f3.md.

  • City of Maitland Community Development (Tyler EnerGov Civic Access)

    Tier 1 · GOVERNMENT RECORD · City of Maitland, FL

    Last refreshed 2026-09-13

    Public government permit records, no authentication required. Fourth RoofShopper Tyler EnerGov tenant, onboarded Top 10 Florida County Coverage Milestone 2 — Orange County's first registered authority. Reuses makeTylerEnerGovPermitProvider() unchanged, only new tenant identity headers (tenantId=1, tenantName="MaitlandFLProd", Tyler-TenantUrl="MaitlandFLProd"), confirmed live by capturing the real tenant's own XHR request headers during a real UI search. Real roof records confirmed live this milestone via the tenant's own rendered UI: ROOF-4-18-32644 ("Roof (Commercial) - Re-Roof", 2301 Lucien Way, real parcel 292135457901000, Status "Complete") and ROOF-12-16-29100 ("Roof (Residential) - Re-Roof", 601-607 Orange Tree Ct, Status "Complete") — both real, distinct CaseType values, classified via the secondary CaseType signal (this tenant's raw JSON CaseWorkclass field was not independently confirmed this milestone — the schema-strict search API rejected a hand-built minimal request body; the UI-label-to-CaseType correspondence this rests on is the same one already established for Miami Beach/Ormond Beach/Doral). Real status "Complete" deliberately left UNKNOWN, not FINALIZED — same ambiguous-bare-completion-term caution this codebase applies to every other jurisdiction's own bare "Closed". See docs/providers/tyler-energov.md.

  • City of Winter Park Permitting Self Service (Tyler EnerGov)

    Tier 1 · GOVERNMENT RECORD · City of Winter Park, FL

    Last refreshed 2026-09-13

    Public government permit records, no authentication required — confirmed live via the tenant's own public "Public Information" search, no account needed. Fifth RoofShopper Tyler EnerGov tenant, onboarded Top 10 Florida County Coverage Milestone 3 — Orange County's second registered authority. Reuses makeTylerEnerGovPermitProvider() unchanged, only new tenant identity headers (tenantId=1, tenantName="City of Winter Park Permitting Self Service Portal", Tyler-TenantUrl="Home"), confirmed live by capturing the real tenant's own XHR request headers during a real UI search (network interception via a live browser session, not guessed). Real roof records confirmed live this milestone: ROOF-2023-0611 ("Residential Roof Permit", CaseWorkclass "Residential Roof", 1813 Summerfield Rd, description "REROOF ASPHALT SHINGLES", real parcel 302208000000002, real status "Complete") and ROOF-2021-0604 ("Commercial Roof Permit", CaseWorkclass "Commercial Roof", 338 E Lyman Ave, description "Commercial Roof Repair", real status "Expired") — this tenant's own real CaseWorkclass values do not normalize to the shared "reroof" key (same pattern as Doral), so both classify via the secondary CaseType signal. Real non-roof records confirmed live and correctly classified at 1813 Summerfield Rd, the same address as the real roof record: "Residential Alteration, Remodel, Repair" -> ADDITIONS_REMODEL, "Residential Electric Permit" -> ELECTRICAL, "Residential Mechanical" -> HVAC, "Plumbing Sub Permit - Residential" -> PLUMBING — none misclassified as roof, confirming mutual exclusivity by construction. A real zero-record address (a fabricated street) was confirmed live to return SUCCESS_NO_RECORDS cleanly. See docs/providers/tyler-energov.md.

  • City of Miramar Building Division (Tyler EnerGov SelfService)

    Tier 1 · GOVERNMENT RECORD · City of Miramar, FL

    Last refreshed 2026-09-15

    Public government permit records, no authentication required — confirmed live via a real browser search that the anonymous JSON search API (POST /api/energov/search/search) requires no cookie/session, and the real tenant-identity headers (tenantId=1, tenantName="MiramarFLProd", Tyler-TenantUrl="MiramarFLProd") were captured directly from that real request, never guessed or assumed to follow a naming pattern from a prior tenant. Top 10 Florida County Coverage Milestone 6 — this authority's platform was corrected this milestone from a prior-milestone (3/4/5) assumption of Accela (multiple guessed tenant slugs all 404'd) to its real platform, Tyler EnerGov, discovered via sourced research rather than further slug guessing. Reuses makeTylerEnerGovPermitProvider() unchanged, only new tenant identity headers — genuinely config-only at the provider/transport layer. Real roof records confirmed live this milestone via a broad "Reroof" keyword search (3,583 real hits): 1300100-S090-BL-1300039 ("Residential Building - Roof", CaseWorkclass "Residential Roof", 6105 SW 20 CT, real parcel 514124162780, status "Complete") and, at a second real address (1971 SW 124 WAY, real parcel 514023020250), two real roof permits at the same parcel: 1300113 (status "Withdrawn") and 1300154-S090-BL-1300066 (status "Complete"). Real CaseWorkclass ("Residential Roof") does not normalize to the shared "reroof" key (same shape already established for Winter Park) — classified via the secondary CaseType signal, one new closed-vocabulary entry ("Residential Building - Roof") added to lib/classify/tylerEnerGovRoofPermits.ts's own ROOF_CASE_TYPES map. No commercial roof CaseType variant was found this milestone (an exact-phrase search for "Commercial Building - Roof" returned zero real results) — a disclosed gap, not guessed. Real non-roof records confirmed live and correctly classified at the same two addresses with ZERO changes to tylerEnerGovOtherPermits.ts's existing generic keyword/regex vocabulary: "Residential Electrical - Alteration/Renovation/Remodel" / "Commercial Electrical - Low Voltage Intrusion/Security System" / "Commercial Electrical - Generic/General" -> ELECTRICAL, "Commercial Plumbing - New" -> PLUMBING, "Residential Building - Windows & Doors" -> WINDOWS_DOORS, "Commercial Building - Addition" -> ADDITIONS_REMODEL; real "Garage Sale", "Residential Building - Standard Lien Search", "Residential Building - Driveway (Paver)", "Residential Building - Shutters", and "Commercial Building - Generic/General" records were all correctly left unclassified (no tracked HomeSystem category maps to them). A real fabricated zero-record address was confirmed live to return SUCCESS_NO_RECORDS cleanly, not an error. See docs/providers/tyler-energov.md.

  • City of St. Petersburg Building Permits (Click2Gov / CentralSquare)

    Tier 1 · GOVERNMENT RECORD · City of St. Petersburg, FL

    Last refreshed 2026-09-16

    Public government permit records, no authentication required, no CAPTCHA. First RoofShopper Click2Gov (CentralSquare/Superion, formerly "Citizen Engagement Portal") provider family onboarding, per the Top 10 Florida County Coverage research audit's own finding that Click2Gov is the highest-reuse unbuilt provider family (~10 authorities across 5 counties). Confirmed live via a plain `curl` replay with a fresh cookie jar, zero browser involved: this platform's OWASP CSRFGuard token is never a server-rendered hidden form field (unlike Accela/FastTrackGov's ASP.NET VIEWSTATE) — it is read from the query string of any real link the search page itself already renders, and a POST carrying that value succeeds standalone. Real, live-confirmed multi-row-per-application behavior: application 00-01000426 (a real roof permit, 100 Central Ave, general contractor MCENANY ROOFING INC) appears as two separate grid rows (one per associated party) — this adapter dedupes by the source's own `permit.appYearAndNumber` before fetching each unique application's own canonical detail page, never double-counting. Two real permit histories run end-to-end through the exact request shape fetchPermits() sends: 100 Central Ave (a real 256-row grid, deduping to 77 unique applications spanning ROOF/MECHANICAL/SIGN/NONRESID-NONHOUSEKEEPING-RENOV-ALTERATIONS application types) and 4500 1st Ave N (12 real rows, deduping to 6 unique applications — a real roof permit, 05-10001008/REED ROOFING CO, and a real plumbing permit, 04-09000939/FAST OF FLORIDA INC, among them, plus real DRIVEWAY/RESIDENTIAL-PERMIT and RESIDENTIAL-RENOVATION/ALTERATIONS types, deliberately not classified — see lib/classify/click2GovOtherPermits.ts's own header). A real, geocodable, confirmed-zero address (2000 1st Ave) was independently verified, returning the source's own real "No records found for the criteria specified." marker. This source exposes a real parcel identifier on every record (confirmed live: "19/31/17/84175/000/0020/") — unlike FastTrackGov, which exposes none. See docs/providers/click2gov.md.

  • Village of Pinecrest Building Department (eTRAKiT)

    Tier 1 · GOVERNMENT RECORD · Village of Pinecrest, FL

    Last refreshed 2026-09-16

    Public government permit records, no authentication required — confirmed live searchable by address with no account. Third RoofShopper eTRAKiT (CentralSquare/Superion) tenant, Top 10 Florida County Coverage Milestone 5. This tenant's own real grid header row (confirmed live: PERMIT NUMBER, ISSUED DATE, Permit Type, Permit Sub Type, STATUS, FOLIO, ADDRESS, plus 2 trailing cells this provider ignores) is a genuinely richer 9-column schema than Venice's/Miami Lakes' shared 5-column order, so makeETrakitPermitProvider() was generalized with a new optional `gridColumns` config (see lib/providers/government/eTrakitPermits.ts) rather than widening or risking either already-certified tenant's default. Unlike Venice/Miami Lakes, this tenant's own grid exposes a real Issued Date and Status column, so occurredOn/status are populated (not left permanently UNKNOWN) by dedicated classifiers (lib/classify/eTrakitPinecrestRoofPermits.ts, lib/classify/eTrakitPinecrestOtherPermits.ts) written fresh for this tenant's own real vocabulary rather than reusing Venice's/Miami Lakes' classifiers. Real roof signal confirmed live: bare PermitType "ROOF" (exact match), e.g. BL2010-0001 (Status "VOID") and BL2010-0083 (Status "FINALED", Issued 11/30/2010) at 6125 Moss Ranch Rd, and BL2010-0026 (Status "FINALED", Issued 11/22/2010) at 10000 W Suburban Dr — no suffix variant observed across the real sample gathered this milestone. Real non-roof records confirmed live and correctly classified at the same two addresses: 6 ELECTRICAL and 1 WINDOWSDOORS record -> ELECTRICAL/WINDOWS_DOORS; this tenant's own real RAILINGS/FENCE/ARCHIVE/ADDITION/FEE/BUILDING/TREE REMOVAL/ZONING/REVISION/PLUMBING/MECHANICAL permit types are deliberately excluded from both classifiers (no tracked HomeSystem category maps cleanly to them, same 'unknown is better than wrong' discipline already applied to Miami Lakes' own 'BUILDING' bucket) — confirmed live not to collide with the roof or electrical/windows-doors signals. A real, disclosed data-quality limitation: baseStreetNameForQuery() strips only the trailing street-TYPE word, not embedded ordinal suffixes, so this tenant's own historical (1998-2022) site-address records for at least one real numbered-street block ('87 TER' without 'TH') do not round-trip cleanly against a query built from a full ordinal street name ('87th Ter' -> '87TH') — not fixed broadly this milestone (narrow, disclosed, out of scope); both real addresses used for live validation have no numbered-street ordinal ambiguity. A real fabricated zero-record address was confirmed live to return SUCCESS_NO_RECORDS cleanly, not an error. See docs/providers/etrakit.md.

  • Village of Key Biscayne Building Department (Accela Citizen Access)

    Tier 1 · GOVERNMENT RECORD · Village of Key Biscayne, FL

    Last refreshed 2026-09-17

    Public government permit records, no authentication required. Twenty-first Accela Citizen Access tenant, config-only — real closed-vocabulary "Roofing Permit" record type is again the exact same literal string Osceola/Hollywood already use, reusing that classifier key unmodified. Confirmed live this sprint (Sprint F2) via record R26-000047, 290 Harbor Dr, and corroborated by a broader Record-Type-filtered search (8 real distinct records spanning June-August 2026 — real, disclosed multi-month depth, not a single-day snapshot). This tenant's own real mailing-city field is inconsistent within a single ZIP: one real record (290 Harbor Dr) carries "KEY BISCAYNE" while another (251 Knollwood Dr) carries "Miami" despite both being genuine Village permits — the same lesson already learned from Osceola/Leon, so this resolver deliberately does NOT gate on mailing city, relying instead on 33149 being Key Biscayne's sole, geographically exclusive ZIP (a real island, the same shape as Longboat Key's own resolver). Required one real, disclosed shared-parser fix: this tenant's own detail page renders "Parcel Number" with a real, evidently-unintended "0) " index prefix and no trailing `<Span` — a third real markup shape for the same "Parcel Information" concept, added to accelaHtmlParser.ts's parseParcelIdentifier() as PARCEL_LABEL_VALUE_RE_INDEXED_DIV, with the digit-prefix deliberately made mandatory (not optional) after an initial looser version caused a real regression — it also matched several of Lee County's own unrelated fields (PLANNINGCOMMUNITY, MUNICODE, HISTORIC, FIREDISTRICT) that share the identical bare wrapper-div shape, caught immediately by this codebase's own full regression suite before being kept, confirmed clean on a second run. Real parcel ("2442320060120") confirmed present on the record's detail page and resolves cleanly against Florida DOR — this jurisdiction's first Miami-Dade County property, requiring a new CO_NO table entry (23, re-verified against the same primary source PDF used earlier this sprint, added under "Miami-Dade County" even though DOR's own table still labels the row "Dade").

  • City of Ormond Beach Building Department (Tyler EnerGov Civic Access)

    Tier 1 · GOVERNMENT RECORD · City of Ormond Beach, FL

    Last refreshed 2026-09-19

    Public government permit records, no authentication required. Second RoofShopper Sprint F3 Tyler EnerGov production onboarding, and the sprint's key generalization test: a genuinely different hosting pattern from Miami Beach (Tyler's own shared multi-tenant tylerhost.net domain with a /apps/selfservice base path, vs. Miami Beach's own custom domain with /energovprod/selfservice) — confirmed to work through the identical shared provider/classifier with zero code changes, only different TylerEnerGovTenantConfig values. Real roof record confirmed live this sprint: 00-00000018 ("Residential Reroof", CaseWorkclass "Reroof", 205 John Anderson Dr, real parcel 421405040080). RoofShopper's first Volusia County jurisdiction — real parcel resolves cleanly against Florida DOR's statewide cadastral (CO_NO=74, a new table entry, verified against the same primary-source PDF re-fetched this sprint). A real address-history pull for the 205 John Anderson Dr parcel returned 5 other real non-roof permits (LDC Residential Application, Residential Exterior x2, Garage Sale, Residential Complete Demolition) — none misclassified, real false-positive-protection evidence. Real historical depth: a broad "reroof" keyword search returned 27,982 total hits with records dating to January 2000 (record 00-00000018 itself, ApplyDate 2000-01-05) — genuinely deep coverage, but per this codebase's own "never infer completeness from the oldest record encountered" discipline, this alone does not establish there is no earlier predecessor system, so coverageHistory below is UNKNOWN, not FULL_HISTORICAL, honestly. See docs/providers/tyler-energov.md and docs/architecture/tyler-energov-provider-family-f3.md.

  • Florida Department of Revenue — Sale Data File (SDF)

    Tier 1 · GOVERNMENT RECORD · Florida (statewide)

    Last refreshed 2026-09-23

    Public Florida Department of Revenue Property Tax Oversight product, no authentication required. SDF is distributed as periodic downloadable per-county files (July preliminary, October initial final, and a post-certification final incorporating value adjustment board changes), not as a live per-parcel API — the URL recorded here is the department's own permanent provenance page for the assessment-roll products, never a file acquisition URL. Only the most current version of each roll type is posted; prior years are available from the department by request. The SDF record layout contains no owner, buyer, seller, grantor, grantee, or mailing-address column at all, so the absence of transacting-party identity is structural rather than a display-time filter (see lib/providers/government/floridaDorSdf.ts).

  • Manatee County Building & Development Services (Accela Citizen Access, current) + Permit Data Archive (CivicData/CKAN, 2016–Feb 2018 historical)

    Tier 1 · GOVERNMENT RECORD · Manatee County, FL

    Last refreshed 2026-10-23

    Public government permit records, no authentication required for the live Accela tenant. Combines two sources: the live tenant (Feb 28, 2018 onward, per its own search page's stated cutoff) as the authoritative current source, plus the pre-existing historical CivicData/CKAN archive (2016–Feb 21, 2018) for older roof history — the county's own live search page directs users with pre-2018-closed permits to that same archive, confirming the two are date-disjoint by the county's own design, not an assumption made here. Excludes City of Bradenton, Palmetto, Holmes Beach, Anna Maria, and Bradenton Beach, each a separately incorporated city with its own building department — resolveAuthority now uses a real municipal-boundary check (see lib/providers/address/censusMunicipalBoundary.ts), not mailing city, closing a real routing bug confirmed live this sprint for 14030 1st Ave E (mailing city 'Bradenton', genuinely unincorporated).