{
  "name": "Field Consultants and Firms by US State (Cultural Resources, Environmental, Stormwater, Forestry)",
  "description": "Counts of listed cultural resource, environmental, stormwater and forestry consultants and firms in each US state and DC, by credential and source: 11,120 listings (10,971 unique) from 19 public directories. Aggregate counts only. The JSON download adds per-source totals, terms notes, SHPO roster summaries and EnviroCert credential counts.",
  "url": "https://www.fieldtap.app/field-consultants-by-state",
  "publisher": "FieldTap",
  "publisher_url": "https://www.fieldtap.app",
  "license": "CC BY 4.0",
  "license_url": "https://creativecommons.org/licenses/by/4.0/",
  "license_note": "The license covers FieldTap's counts and compilation. No names, contact details or other individual listings from the underlying directories are included.",
  "attribution": "Counts derived from public directories published by EnviroCert International, the Register of Professional Archaeologists, the Academy of Board Certified Environmental Professionals, and the state historic preservation and forestry offices listed under sources. Compiled by FieldTap (https://www.fieldtap.app).",
  "last_updated": "2026-10-31",
  "methodology": "Counts come from 19 public directories: the EnviroCert International certification registry (stormwater and erosion control credentials), the Register of Professional Archaeologists directory, the ABCEP directory of Certified Environmental Professionals, 12 state historic preservation office (SHPO) consultant rosters covering Alaska, Idaho, Illinois, Kentucky, Michigan, New Mexico, Ohio, South Carolina and Vermont, and 4 consulting-forester directories covering Illinois, Maryland, Montana and Washington. Listings were read on 2026-08-13. RPA state counts are the directory's own published per-state totals, read on 2026-10-31. People and firms are counted in the state of their listed address, not the state whose roster lists them. These are directory listings, not a census of the profession. Each directory lists only people who hold that credential or asked to be listed. States with a SHPO roster or forester directory in the data show higher counts in those columns because of coverage, not because more consultants work there. Most states have no roster in the data, so a zero in a roster column means no data, not no consultants. Deduplication: Listings are linked into one person or firm when they share an email address; or, across different sources only, when the normalized person name (first and last word, lowercased, accents, middle initials and credentials removed) and state match; or, for roster entries with a firm name but no person, when the normalized firm name (legal suffixes removed) and state match. Same-name rows within one registry are not merged, because those registries already separate people by name, city and state. RPA registrants without a row in our copy cannot be matched and count as unique, so unique counts are an upper bound. Excluded: the Association of Consulting Foresters directory, whose use policy forbids building lists from it, and both Wisconsin Historical Society rosters, because the Society's site terms restrict republishing its content for commercial purposes without written permission. Every other source's terms were checked and none restricts publishing counts. Individuals and firms: EnviroCert, RPA and ABCEP list individuals. SHPO rosters and forester directories mix firms and sole practitioners; the named-firm column counts distinct firm names parsed from SHPO roster entries. It undercounts, because names were parsed from PDF text: 526 of 852 roster entries have a parsed firm name and 287 have no parsed name at all.",
  "sources": [
    {
      "id": "envirocert",
      "name": "EnviroCert International certification registry (CPESC, CESSWI, CPSWQ, CPMSM and others)",
      "publisher": "EnviroCert International",
      "category": "stormwater",
      "kind": "credential_registry",
      "entity": "individual",
      "roster_state": null,
      "url": "https://envirocert.org/directory/directory-search/",
      "included": true,
      "listings": 5064,
      "listings_in_us_states": 5059,
      "completeness": "Complete public registry (US holders), loaded from the registry's own data feed. One row per person; a person holding several certifications is counted once.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "Directory page, Disclaimer and Terms of Use, and holder-information policies AD2008/AD2011 checked. The terms of use only govern what visitors post to the site; the privacy policies bind ECI staff and certificate holders. Nothing restricts reuse of registry data or statistics.",
      "terms_verdict": "No restriction found. Included."
    },
    {
      "id": "rpa",
      "name": "Register of Professional Archaeologists registrant directory",
      "publisher": "Register of Professional Archaeologists",
      "category": "cultural_resources",
      "kind": "credential_registry",
      "entity": "individual",
      "roster_state": null,
      "url": "https://rpanet.org/registrant-directory",
      "included": true,
      "listings": 4654,
      "listings_in_us_states": 4485,
      "completeness": "State counts are the directory's own published per-state totals (facet counts), captured on the date in rpa_facets_fetched_at. Registrants are counted in the state or province they list.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "Directory, home page and About page checked; /terms and /privacy return 404. Only a generic copyright footer. The Register states that all registrants are listed in its online directory.",
      "terms_verdict": "No restriction found. Included. Only the directory's own per-state totals are used.",
      "rows_held_for_dedupe": 2048
    },
    {
      "id": "abcep",
      "name": "Academy of Board Certified Environmental Professionals member directory (CEP)",
      "publisher": "Academy of Board Certified Environmental Professionals",
      "category": "environmental",
      "kind": "credential_registry",
      "entity": "individual",
      "roster_state": null,
      "url": "https://www.memberleap.com/members/directory/search_bootstrap.php?org_id=ABCP",
      "included": true,
      "listings": 220,
      "listings_in_us_states": 186,
      "completeness": "Full public member directory. State is taken from the listed address where one is shown; members with no US address are counted nationally only.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "Directory and abcep.org checked. No terms of use or privacy page is linked; the only notice is a copyright footer. ABCEP publishes its own membership statistics.",
      "terms_verdict": "No restriction found. Included."
    },
    {
      "id": "shpo_ak",
      "name": "Alaska Office of History and Archaeology, historic preservation contractor list",
      "publisher": "Alaska State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "AK",
      "url": "https://dnr.alaska.gov/ahrsportal/contractors",
      "included": true,
      "listings": 67,
      "listings_in_us_states": 67,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "Roster now published at dnr.alaska.gov/ahrsportal/contractors. Disclaimer: the list is not a certification, endorsement or recommendation. Generic state copyright footer.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "shpo_id",
      "name": "Idaho SHPO historic preservation consultants list",
      "publisher": "Idaho State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "ID",
      "url": "https://history.idaho.gov/wp-content/uploads/Idaho_HP_Consultants_List.pdf",
      "included": true,
      "listings": 92,
      "listings_in_us_states": 92,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "PDF disclaimer: the list is not an endorsement or recommendation.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "shpo_il",
      "name": "Illinois SHPO archaeological consultants list",
      "publisher": "Illinois State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "IL",
      "url": "https://dnrhistoric.illinois.gov/content/dam/soi/en/web/dnrhistoric/preserve/siteassets/pages/resource-protection/archaeological-consultants-list.pdf",
      "included": true,
      "listings": 63,
      "listings_in_us_states": 63,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "PDF disclaimer: inclusion is not a recommendation or endorsement. The office frames the list as a referral courtesy for Illinois and adjacent states.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "shpo_ky",
      "name": "Kentucky Heritage Council cultural resource consultants list (June 2026)",
      "publisher": "Kentucky State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "KY",
      "url": "https://heritage.ky.gov/Documents/20260630%20Consultants.pdf",
      "included": true,
      "listings": 64,
      "listings_in_us_states": 64,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "PDF disclaimer: inclusion is not a recommendation or endorsement.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "shpo_mi",
      "name": "Michigan SHPO archaeologist, architectural historian and historian consultants list",
      "publisher": "Michigan State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "MI",
      "url": "https://www.miplace.org/495e8e/globalassets/documents/shpo/research-resources/consultant-listsforms/archaeologist-architectural-historian-and-historian-consultants-list.pdf",
      "included": true,
      "listings": 247,
      "listings_in_us_states": 247,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "PDF disclaimer: inclusion does not constitute endorsement by the SHPO.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "shpo_nm",
      "name": "New Mexico HPD list of cultural resource consultants (July 2025)",
      "publisher": "New Mexico State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "NM",
      "url": "https://www.nmhistoricpreservation.dca.nm.gov/programs/shpo-directory/",
      "included": true,
      "listings": 88,
      "listings_in_us_states": 88,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "Lists have moved to nmhistoricpreservation.dca.nm.gov. Disclaimer: distributed for the convenience of those who need a consultant; the office does not guarantee or recommend anyone listed.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "shpo_nm_arch",
      "name": "New Mexico HPD architectural history consultant list",
      "publisher": "New Mexico State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "NM",
      "url": "https://www.nmhistoricpreservation.dca.nm.gov/programs/shpo-directory/",
      "included": true,
      "listings": 43,
      "listings_in_us_states": 43,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "Lists have moved to nmhistoricpreservation.dca.nm.gov. Disclaimer: distributed for the convenience of those who need a consultant; the office does not guarantee or recommend anyone listed.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "shpo_oh_arch",
      "name": "Ohio SHPO archaeology consultants by area of expertise",
      "publisher": "Ohio State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "OH",
      "url": "https://ohiohistory.org/?p=777",
      "included": true,
      "listings": 57,
      "listings_in_us_states": 57,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "Newer editions (October 2026) are now posted. Disclaimer: provided as an aid to those seeking a consultant; the office does not recommend or endorse anyone listed.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "shpo_oh_hist",
      "name": "Ohio SHPO history and architecture consultants by area of expertise",
      "publisher": "Ohio State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "OH",
      "url": "https://ohiohistory.org/?p=777",
      "included": true,
      "listings": 67,
      "listings_in_us_states": 67,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "Newer editions (October 2026) are now posted. Disclaimer: provided as an aid to those seeking a consultant; the office does not recommend or endorse anyone listed.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "shpo_sc",
      "name": "South Carolina SHPO project professionals list, archaeologists (Jan 2026)",
      "publisher": "South Carolina State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "SC",
      "url": "https://scdah.sc.gov/sites/scdah/files/Documents/Historic%20Preservation%20(SHPO)/Publications/Project%20Professional/Archaeology-List_Jan2026.pdf",
      "included": true,
      "listings": 78,
      "listings_in_us_states": 78,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "No disclaimer or terms text; columns are marked self-reported and not verified by the SHPO.",
      "terms_verdict": "No restriction found. Included."
    },
    {
      "id": "shpo_vt",
      "name": "Vermont Division for Historic Preservation archaeology consultants",
      "publisher": "Vermont State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "VT",
      "url": "https://outside.vermont.gov/agency/ACCD/ACCD_Web_Docs/HP/Resources_Rules/Archaeology.pdf",
      "included": true,
      "listings": 48,
      "listings_in_us_states": 48,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "PDF disclaimer: the division assumes no responsibility for accuracy and placement does not imply endorsement.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "shpo_vt_hist",
      "name": "Vermont Division for Historic Preservation history and architectural history consultants",
      "publisher": "Vermont State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "VT",
      "url": "https://outside.vermont.gov/agency/ACCD/ACCD_Web_Docs/HP/Resources_Rules/History_Architectural_History_Architecture.pdf",
      "included": true,
      "listings": 28,
      "listings_in_us_states": 28,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "PDF disclaimer: the division assumes no responsibility for accuracy and placement does not imply endorsement.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "shpo_wi",
      "name": "Wisconsin Historical Society archaeological consultants (March 2026)",
      "publisher": "Wisconsin State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "WI",
      "url": "https://www.wisconsinhistory.org/MediaFileLocation/tqudynbc/archaeological-consultants-march-2026.pdf",
      "included": false,
      "listings": 0,
      "listings_in_us_states": 0,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "The PDFs carry only an endorsement disclaimer, but the Wisconsin Historical Society site terms of use say content may not be reproduced, distributed or republished without prior written permission, and nothing may be reproduced for commercial purposes without permission.",
      "terms_verdict": "Excluded. The site terms restrict republishing for commercial purposes and do not clearly allow derived statistics. Can be added back with written permission from the Society."
    },
    {
      "id": "shpo_wi_skeletal",
      "name": "Wisconsin Historical Society qualified skeletal analysts (July 2026)",
      "publisher": "Wisconsin State Historic Preservation Office",
      "category": "cultural_resources",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "WI",
      "url": "https://www.wisconsinhistory.org/MediaFileLocation/5nsh0afx/skeletal-analysts-list-jul-2026.pdf",
      "included": false,
      "listings": 0,
      "listings_in_us_states": 0,
      "completeness": "State Historic Preservation Office consultant roster. A referral list of consultants the office has on file, not a licence register; inclusion is voluntary and the office does not endorse anyone listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "The PDFs carry only an endorsement disclaimer, but the Wisconsin Historical Society site terms of use say content may not be reproduced, distributed or republished without prior written permission, and nothing may be reproduced for commercial purposes without permission.",
      "terms_verdict": "Excluded. The site terms restrict republishing for commercial purposes and do not clearly allow derived statistics. Can be added back with written permission from the Society."
    },
    {
      "id": "forest_wa",
      "name": "WSU Extension consulting forester and contractor directory",
      "publisher": "Washington state forestry agency or extension",
      "category": "forestry",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "WA",
      "url": "https://s3-us-west-2.amazonaws.com/forestry.wsu.edu/wp-content/uploads/2022/07/Consulting-Directory_Complete.pdf",
      "included": true,
      "listings": 100,
      "listings_in_us_states": 100,
      "completeness": "State consulting-forester directory. Entries are firms or sole practitioners who asked to be listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "Disclaimer: information was provided by the listed providers and is published as-is.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "forest_il",
      "name": "Illinois DNR consulting foresters directory",
      "publisher": "Illinois state forestry agency or extension",
      "category": "forestry",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "IL",
      "url": "https://dnr.illinois.gov/content/dam/soi/en/web/dnr/conservation/forestry/documents/consultingforesters.pdf",
      "included": true,
      "listings": 68,
      "listings_in_us_states": 68,
      "completeness": "State consulting-forester directory. Entries are firms or sole practitioners who asked to be listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "University of Illinois Extension bulletin (2016) with a standard copyright notice and a no-endorsement line. Copyright covers the bulletin's text, not the fact of how many foresters it lists. The listing dates from 2016.",
      "terms_verdict": "Included, counts only. The directory is from 2016 and is likely out of date."
    },
    {
      "id": "forest_md",
      "name": "Maryland DNR consulting and industrial foresters directory",
      "publisher": "Maryland state forestry agency or extension",
      "category": "forestry",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "MD",
      "url": "https://dnr.maryland.gov/forests/documents/FS-1059_MD_Consulting_Industrial_Foresters_Directory.pdf",
      "included": true,
      "listings": 58,
      "listings_in_us_states": 58,
      "completeness": "State consulting-forester directory. Entries are firms or sole practitioners who asked to be listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "Disclaimer: intended as a reference only, not as an endorsement of any forester listed.",
      "terms_verdict": "No restriction on reuse found. Included."
    },
    {
      "id": "forest_mt",
      "name": "Montana DNRC directory of consulting foresters (Aug 2024)",
      "publisher": "Montana state forestry agency or extension",
      "category": "forestry",
      "kind": "state_roster",
      "entity": "mixed",
      "roster_state": "MT",
      "url": "https://prod-dnrc.mt.gov/Forestry/Resources/final_consultantdirectory_Aug2024.pdf",
      "included": true,
      "listings": 14,
      "listings_in_us_states": 14,
      "completeness": "State consulting-forester directory. Entries are firms or sole practitioners who asked to be listed.",
      "listed_as_of": "2026-08-13",
      "terms_checked": "2026-10-31",
      "terms_summary": "Disclaimer: provided as a public service; inclusion is voluntary and the agency does not verify the information.",
      "terms_verdict": "No restriction on reuse found. Included."
    }
  ],
  "columns": [
    {
      "key": "state",
      "label": "State code"
    },
    {
      "key": "state_name",
      "label": "State"
    },
    {
      "key": "total_listings",
      "label": "Total listings"
    },
    {
      "key": "unique_listings",
      "label": "Unique people and firms"
    },
    {
      "key": "stormwater_envirocert",
      "label": "EnviroCert holders"
    },
    {
      "key": "cpesc",
      "label": "CPESC"
    },
    {
      "key": "cesswi",
      "label": "CESSWI"
    },
    {
      "key": "cpswq",
      "label": "CPSWQ"
    },
    {
      "key": "cpmsm",
      "label": "CPMSM"
    },
    {
      "key": "archaeology_rpa",
      "label": "RPA archaeologists"
    },
    {
      "key": "crm_shpo_roster",
      "label": "SHPO roster listings"
    },
    {
      "key": "crm_shpo_named_firms",
      "label": "Named firms on SHPO rosters"
    },
    {
      "key": "environmental_cep",
      "label": "ABCEP CEPs"
    },
    {
      "key": "forestry_listings",
      "label": "Consulting forester listings"
    },
    {
      "key": "has_shpo_roster",
      "label": "Own SHPO roster in data"
    },
    {
      "key": "has_forester_directory",
      "label": "Own forester directory in data"
    }
  ],
  "rows": [
    {
      "state": "AL",
      "state_name": "Alabama",
      "total_listings": 159,
      "unique_listings": 159,
      "stormwater_envirocert": 100,
      "cpesc": 87,
      "cesswi": 11,
      "cpswq": 3,
      "cpmsm": 7,
      "archaeology_rpa": 56,
      "crm_shpo_roster": 3,
      "crm_shpo_named_firms": 3,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "AK",
      "state_name": "Alaska",
      "total_listings": 125,
      "unique_listings": 122,
      "stormwater_envirocert": 8,
      "cpesc": 5,
      "cesswi": 2,
      "cpswq": 1,
      "cpmsm": 1,
      "archaeology_rpa": 44,
      "crm_shpo_roster": 70,
      "crm_shpo_named_firms": 24,
      "environmental_cep": 3,
      "forestry_listings": 0,
      "has_shpo_roster": true,
      "has_forester_directory": false
    },
    {
      "state": "AZ",
      "state_name": "Arizona",
      "total_listings": 261,
      "unique_listings": 261,
      "stormwater_envirocert": 56,
      "cpesc": 31,
      "cesswi": 19,
      "cpswq": 6,
      "cpmsm": 3,
      "archaeology_rpa": 195,
      "crm_shpo_roster": 0,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 10,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "AR",
      "state_name": "Arkansas",
      "total_listings": 58,
      "unique_listings": 58,
      "stormwater_envirocert": 11,
      "cpesc": 6,
      "cesswi": 6,
      "cpswq": 1,
      "cpmsm": 0,
      "archaeology_rpa": 46,
      "crm_shpo_roster": 0,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 1,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "CA",
      "state_name": "California",
      "total_listings": 2320,
      "unique_listings": 2319,
      "stormwater_envirocert": 1559,
      "cpesc": 601,
      "cesswi": 880,
      "cpswq": 206,
      "cpmsm": 24,
      "archaeology_rpa": 740,
      "crm_shpo_roster": 5,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 16,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "CO",
      "state_name": "Colorado",
      "total_listings": 275,
      "unique_listings": 275,
      "stormwater_envirocert": 104,
      "cpesc": 61,
      "cesswi": 40,
      "cpswq": 7,
      "cpmsm": 3,
      "archaeology_rpa": 163,
      "crm_shpo_roster": 2,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 6,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "CT",
      "state_name": "Connecticut",
      "total_listings": 60,
      "unique_listings": 60,
      "stormwater_envirocert": 35,
      "cpesc": 24,
      "cesswi": 10,
      "cpswq": 5,
      "cpmsm": 3,
      "archaeology_rpa": 23,
      "crm_shpo_roster": 2,
      "crm_shpo_named_firms": 2,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "DE",
      "state_name": "Delaware",
      "total_listings": 15,
      "unique_listings": 15,
      "stormwater_envirocert": 5,
      "cpesc": 4,
      "cesswi": 2,
      "cpswq": 1,
      "cpmsm": 1,
      "archaeology_rpa": 10,
      "crm_shpo_roster": 0,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "DC",
      "state_name": "District of Columbia",
      "total_listings": 43,
      "unique_listings": 43,
      "stormwater_envirocert": 15,
      "cpesc": 2,
      "cesswi": 0,
      "cpswq": 0,
      "cpmsm": 0,
      "archaeology_rpa": 28,
      "crm_shpo_roster": 0,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "FL",
      "state_name": "Florida",
      "total_listings": 360,
      "unique_listings": 359,
      "stormwater_envirocert": 53,
      "cpesc": 25,
      "cesswi": 27,
      "cpswq": 5,
      "cpmsm": 2,
      "archaeology_rpa": 267,
      "crm_shpo_roster": 9,
      "crm_shpo_named_firms": 3,
      "environmental_cep": 31,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "GA",
      "state_name": "Georgia",
      "total_listings": 307,
      "unique_listings": 306,
      "stormwater_envirocert": 121,
      "cpesc": 97,
      "cesswi": 17,
      "cpswq": 11,
      "cpmsm": 4,
      "archaeology_rpa": 167,
      "crm_shpo_roster": 15,
      "crm_shpo_named_firms": 10,
      "environmental_cep": 4,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "HI",
      "state_name": "Hawaii",
      "total_listings": 66,
      "unique_listings": 66,
      "stormwater_envirocert": 31,
      "cpesc": 14,
      "cesswi": 0,
      "cpswq": 7,
      "cpmsm": 4,
      "archaeology_rpa": 34,
      "crm_shpo_roster": 0,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 1,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "ID",
      "state_name": "Idaho",
      "total_listings": 146,
      "unique_listings": 136,
      "stormwater_envirocert": 21,
      "cpesc": 11,
      "cesswi": 10,
      "cpswq": 2,
      "cpmsm": 1,
      "archaeology_rpa": 38,
      "crm_shpo_roster": 86,
      "crm_shpo_named_firms": 41,
      "environmental_cep": 1,
      "forestry_listings": 0,
      "has_shpo_roster": true,
      "has_forester_directory": false
    },
    {
      "state": "IL",
      "state_name": "Illinois",
      "total_listings": 347,
      "unique_listings": 328,
      "stormwater_envirocert": 150,
      "cpesc": 107,
      "cesswi": 33,
      "cpswq": 9,
      "cpmsm": 4,
      "archaeology_rpa": 85,
      "crm_shpo_roster": 50,
      "crm_shpo_named_firms": 24,
      "environmental_cep": 3,
      "forestry_listings": 59,
      "has_shpo_roster": true,
      "has_forester_directory": true
    },
    {
      "state": "IN",
      "state_name": "Indiana",
      "total_listings": 409,
      "unique_listings": 387,
      "stormwater_envirocert": 299,
      "cpesc": 122,
      "cesswi": 183,
      "cpswq": 12,
      "cpmsm": 14,
      "archaeology_rpa": 57,
      "crm_shpo_roster": 48,
      "crm_shpo_named_firms": 17,
      "environmental_cep": 2,
      "forestry_listings": 3,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "IA",
      "state_name": "Iowa",
      "total_listings": 47,
      "unique_listings": 46,
      "stormwater_envirocert": 22,
      "cpesc": 15,
      "cesswi": 3,
      "cpswq": 0,
      "cpmsm": 3,
      "archaeology_rpa": 17,
      "crm_shpo_roster": 4,
      "crm_shpo_named_firms": 2,
      "environmental_cep": 2,
      "forestry_listings": 2,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "KS",
      "state_name": "Kansas",
      "total_listings": 32,
      "unique_listings": 32,
      "stormwater_envirocert": 14,
      "cpesc": 10,
      "cesswi": 1,
      "cpswq": 2,
      "cpmsm": 0,
      "archaeology_rpa": 16,
      "crm_shpo_roster": 2,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "KY",
      "state_name": "Kentucky",
      "total_listings": 168,
      "unique_listings": 156,
      "stormwater_envirocert": 37,
      "cpesc": 18,
      "cesswi": 9,
      "cpswq": 2,
      "cpmsm": 3,
      "archaeology_rpa": 55,
      "crm_shpo_roster": 75,
      "crm_shpo_named_firms": 51,
      "environmental_cep": 1,
      "forestry_listings": 0,
      "has_shpo_roster": true,
      "has_forester_directory": false
    },
    {
      "state": "LA",
      "state_name": "Louisiana",
      "total_listings": 136,
      "unique_listings": 136,
      "stormwater_envirocert": 53,
      "cpesc": 6,
      "cesswi": 3,
      "cpswq": 4,
      "cpmsm": 1,
      "archaeology_rpa": 77,
      "crm_shpo_roster": 3,
      "crm_shpo_named_firms": 1,
      "environmental_cep": 3,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "ME",
      "state_name": "Maine",
      "total_listings": 72,
      "unique_listings": 70,
      "stormwater_envirocert": 43,
      "cpesc": 31,
      "cesswi": 10,
      "cpswq": 2,
      "cpmsm": 2,
      "archaeology_rpa": 17,
      "crm_shpo_roster": 12,
      "crm_shpo_named_firms": 8,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "MD",
      "state_name": "Maryland",
      "total_listings": 170,
      "unique_listings": 170,
      "stormwater_envirocert": 48,
      "cpesc": 24,
      "cesswi": 11,
      "cpswq": 8,
      "cpmsm": 5,
      "archaeology_rpa": 75,
      "crm_shpo_roster": 3,
      "crm_shpo_named_firms": 3,
      "environmental_cep": 6,
      "forestry_listings": 38,
      "has_shpo_roster": false,
      "has_forester_directory": true
    },
    {
      "state": "MA",
      "state_name": "Massachusetts",
      "total_listings": 140,
      "unique_listings": 140,
      "stormwater_envirocert": 77,
      "cpesc": 26,
      "cesswi": 32,
      "cpswq": 9,
      "cpmsm": 1,
      "archaeology_rpa": 53,
      "crm_shpo_roster": 6,
      "crm_shpo_named_firms": 4,
      "environmental_cep": 4,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "MI",
      "state_name": "Michigan",
      "total_listings": 184,
      "unique_listings": 172,
      "stormwater_envirocert": 19,
      "cpesc": 11,
      "cesswi": 9,
      "cpswq": 1,
      "cpmsm": 1,
      "archaeology_rpa": 57,
      "crm_shpo_roster": 103,
      "crm_shpo_named_firms": 13,
      "environmental_cep": 4,
      "forestry_listings": 1,
      "has_shpo_roster": true,
      "has_forester_directory": false
    },
    {
      "state": "MN",
      "state_name": "Minnesota",
      "total_listings": 119,
      "unique_listings": 116,
      "stormwater_envirocert": 44,
      "cpesc": 36,
      "cesswi": 16,
      "cpswq": 8,
      "cpmsm": 1,
      "archaeology_rpa": 56,
      "crm_shpo_roster": 15,
      "crm_shpo_named_firms": 3,
      "environmental_cep": 4,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "MS",
      "state_name": "Mississippi",
      "total_listings": 31,
      "unique_listings": 31,
      "stormwater_envirocert": 9,
      "cpesc": 9,
      "cesswi": 1,
      "cpswq": 0,
      "cpmsm": 1,
      "archaeology_rpa": 22,
      "crm_shpo_roster": 0,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "MO",
      "state_name": "Missouri",
      "total_listings": 112,
      "unique_listings": 107,
      "stormwater_envirocert": 46,
      "cpesc": 26,
      "cesswi": 19,
      "cpswq": 3,
      "cpmsm": 2,
      "archaeology_rpa": 53,
      "crm_shpo_roster": 12,
      "crm_shpo_named_firms": 9,
      "environmental_cep": 0,
      "forestry_listings": 1,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "MT",
      "state_name": "Montana",
      "total_listings": 46,
      "unique_listings": 46,
      "stormwater_envirocert": 5,
      "cpesc": 5,
      "cesswi": 2,
      "cpswq": 0,
      "cpmsm": 0,
      "archaeology_rpa": 21,
      "crm_shpo_roster": 3,
      "crm_shpo_named_firms": 3,
      "environmental_cep": 3,
      "forestry_listings": 14,
      "has_shpo_roster": false,
      "has_forester_directory": true
    },
    {
      "state": "NE",
      "state_name": "Nebraska",
      "total_listings": 32,
      "unique_listings": 32,
      "stormwater_envirocert": 11,
      "cpesc": 8,
      "cesswi": 0,
      "cpswq": 2,
      "cpmsm": 0,
      "archaeology_rpa": 19,
      "crm_shpo_roster": 1,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 1,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "NV",
      "state_name": "Nevada",
      "total_listings": 119,
      "unique_listings": 119,
      "stormwater_envirocert": 33,
      "cpesc": 18,
      "cesswi": 11,
      "cpswq": 4,
      "cpmsm": 1,
      "archaeology_rpa": 85,
      "crm_shpo_roster": 1,
      "crm_shpo_named_firms": 1,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "NH",
      "state_name": "New Hampshire",
      "total_listings": 93,
      "unique_listings": 92,
      "stormwater_envirocert": 66,
      "cpesc": 42,
      "cesswi": 34,
      "cpswq": 3,
      "cpmsm": 0,
      "archaeology_rpa": 21,
      "crm_shpo_roster": 6,
      "crm_shpo_named_firms": 4,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "NJ",
      "state_name": "New Jersey",
      "total_listings": 102,
      "unique_listings": 102,
      "stormwater_envirocert": 29,
      "cpesc": 17,
      "cesswi": 4,
      "cpswq": 2,
      "cpmsm": 2,
      "archaeology_rpa": 68,
      "crm_shpo_roster": 3,
      "crm_shpo_named_firms": 1,
      "environmental_cep": 2,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "NM",
      "state_name": "New Mexico",
      "total_listings": 263,
      "unique_listings": 254,
      "stormwater_envirocert": 26,
      "cpesc": 15,
      "cesswi": 11,
      "cpswq": 1,
      "cpmsm": 1,
      "archaeology_rpa": 108,
      "crm_shpo_roster": 128,
      "crm_shpo_named_firms": 63,
      "environmental_cep": 1,
      "forestry_listings": 0,
      "has_shpo_roster": true,
      "has_forester_directory": false
    },
    {
      "state": "NY",
      "state_name": "New York",
      "total_listings": 400,
      "unique_listings": 397,
      "stormwater_envirocert": 217,
      "cpesc": 186,
      "cesswi": 28,
      "cpswq": 38,
      "cpmsm": 16,
      "archaeology_rpa": 162,
      "crm_shpo_roster": 16,
      "crm_shpo_named_firms": 9,
      "environmental_cep": 5,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "NC",
      "state_name": "North Carolina",
      "total_listings": 345,
      "unique_listings": 342,
      "stormwater_envirocert": 181,
      "cpesc": 105,
      "cesswi": 91,
      "cpswq": 27,
      "cpmsm": 9,
      "archaeology_rpa": 139,
      "crm_shpo_roster": 16,
      "crm_shpo_named_firms": 11,
      "environmental_cep": 9,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "ND",
      "state_name": "North Dakota",
      "total_listings": 22,
      "unique_listings": 22,
      "stormwater_envirocert": 3,
      "cpesc": 2,
      "cesswi": 1,
      "cpswq": 0,
      "cpmsm": 0,
      "archaeology_rpa": 18,
      "crm_shpo_roster": 0,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 1,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "OH",
      "state_name": "Ohio",
      "total_listings": 631,
      "unique_listings": 605,
      "stormwater_envirocert": 422,
      "cpesc": 232,
      "cesswi": 196,
      "cpswq": 32,
      "cpmsm": 11,
      "archaeology_rpa": 88,
      "crm_shpo_roster": 116,
      "crm_shpo_named_firms": 48,
      "environmental_cep": 5,
      "forestry_listings": 0,
      "has_shpo_roster": true,
      "has_forester_directory": false
    },
    {
      "state": "OK",
      "state_name": "Oklahoma",
      "total_listings": 75,
      "unique_listings": 74,
      "stormwater_envirocert": 19,
      "cpesc": 4,
      "cesswi": 5,
      "cpswq": 6,
      "cpmsm": 1,
      "archaeology_rpa": 55,
      "crm_shpo_roster": 1,
      "crm_shpo_named_firms": 1,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "OR",
      "state_name": "Oregon",
      "total_listings": 197,
      "unique_listings": 197,
      "stormwater_envirocert": 43,
      "cpesc": 29,
      "cesswi": 10,
      "cpswq": 7,
      "cpmsm": 0,
      "archaeology_rpa": 153,
      "crm_shpo_roster": 1,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "PA",
      "state_name": "Pennsylvania",
      "total_listings": 466,
      "unique_listings": 463,
      "stormwater_envirocert": 275,
      "cpesc": 181,
      "cesswi": 93,
      "cpswq": 23,
      "cpmsm": 6,
      "archaeology_rpa": 142,
      "crm_shpo_roster": 21,
      "crm_shpo_named_firms": 10,
      "environmental_cep": 15,
      "forestry_listings": 13,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "RI",
      "state_name": "Rhode Island",
      "total_listings": 48,
      "unique_listings": 48,
      "stormwater_envirocert": 8,
      "cpesc": 5,
      "cesswi": 4,
      "cpswq": 1,
      "cpmsm": 0,
      "archaeology_rpa": 27,
      "crm_shpo_roster": 12,
      "crm_shpo_named_firms": 6,
      "environmental_cep": 1,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "SC",
      "state_name": "South Carolina",
      "total_listings": 105,
      "unique_listings": 104,
      "stormwater_envirocert": 30,
      "cpesc": 15,
      "cesswi": 11,
      "cpswq": 5,
      "cpmsm": 0,
      "archaeology_rpa": 57,
      "crm_shpo_roster": 17,
      "crm_shpo_named_firms": 12,
      "environmental_cep": 1,
      "forestry_listings": 0,
      "has_shpo_roster": true,
      "has_forester_directory": false
    },
    {
      "state": "SD",
      "state_name": "South Dakota",
      "total_listings": 24,
      "unique_listings": 24,
      "stormwater_envirocert": 3,
      "cpesc": 3,
      "cesswi": 0,
      "cpswq": 0,
      "cpmsm": 0,
      "archaeology_rpa": 16,
      "crm_shpo_roster": 4,
      "crm_shpo_named_firms": 2,
      "environmental_cep": 1,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "TN",
      "state_name": "Tennessee",
      "total_listings": 221,
      "unique_listings": 219,
      "stormwater_envirocert": 141,
      "cpesc": 118,
      "cesswi": 20,
      "cpswq": 14,
      "cpmsm": 5,
      "archaeology_rpa": 72,
      "crm_shpo_roster": 4,
      "crm_shpo_named_firms": 2,
      "environmental_cep": 4,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "TX",
      "state_name": "Texas",
      "total_listings": 645,
      "unique_listings": 645,
      "stormwater_envirocert": 317,
      "cpesc": 123,
      "cesswi": 193,
      "cpswq": 15,
      "cpmsm": 11,
      "archaeology_rpa": 301,
      "crm_shpo_roster": 8,
      "crm_shpo_named_firms": 3,
      "environmental_cep": 19,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "UT",
      "state_name": "Utah",
      "total_listings": 85,
      "unique_listings": 85,
      "stormwater_envirocert": 18,
      "cpesc": 15,
      "cesswi": 3,
      "cpswq": 0,
      "cpmsm": 2,
      "archaeology_rpa": 63,
      "crm_shpo_roster": 2,
      "crm_shpo_named_firms": 2,
      "environmental_cep": 2,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "VT",
      "state_name": "Vermont",
      "total_listings": 65,
      "unique_listings": 61,
      "stormwater_envirocert": 31,
      "cpesc": 29,
      "cesswi": 6,
      "cpswq": 2,
      "cpmsm": 0,
      "archaeology_rpa": 10,
      "crm_shpo_roster": 24,
      "crm_shpo_named_firms": 19,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": true,
      "has_forester_directory": false
    },
    {
      "state": "VA",
      "state_name": "Virginia",
      "total_listings": 243,
      "unique_listings": 242,
      "stormwater_envirocert": 67,
      "cpesc": 29,
      "cesswi": 31,
      "cpswq": 6,
      "cpmsm": 2,
      "archaeology_rpa": 161,
      "crm_shpo_roster": 4,
      "crm_shpo_named_firms": 3,
      "environmental_cep": 8,
      "forestry_listings": 3,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "WA",
      "state_name": "Washington",
      "total_listings": 319,
      "unique_listings": 319,
      "stormwater_envirocert": 56,
      "cpesc": 40,
      "cesswi": 12,
      "cpswq": 15,
      "cpmsm": 5,
      "archaeology_rpa": 150,
      "crm_shpo_roster": 7,
      "crm_shpo_named_firms": 3,
      "environmental_cep": 6,
      "forestry_listings": 100,
      "has_shpo_roster": false,
      "has_forester_directory": true
    },
    {
      "state": "WV",
      "state_name": "West Virginia",
      "total_listings": 61,
      "unique_listings": 61,
      "stormwater_envirocert": 34,
      "cpesc": 13,
      "cesswi": 21,
      "cpswq": 0,
      "cpmsm": 3,
      "archaeology_rpa": 18,
      "crm_shpo_roster": 5,
      "crm_shpo_named_firms": 4,
      "environmental_cep": 0,
      "forestry_listings": 4,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "WI",
      "state_name": "Wisconsin",
      "total_listings": 108,
      "unique_listings": 105,
      "stormwater_envirocert": 38,
      "cpesc": 27,
      "cesswi": 10,
      "cpswq": 8,
      "cpmsm": 0,
      "archaeology_rpa": 51,
      "crm_shpo_roster": 17,
      "crm_shpo_named_firms": 5,
      "environmental_cep": 0,
      "forestry_listings": 2,
      "has_shpo_roster": false,
      "has_forester_directory": false
    },
    {
      "state": "WY",
      "state_name": "Wyoming",
      "total_listings": 35,
      "unique_listings": 35,
      "stormwater_envirocert": 6,
      "cpesc": 3,
      "cesswi": 3,
      "cpswq": 0,
      "cpmsm": 0,
      "archaeology_rpa": 29,
      "crm_shpo_roster": 0,
      "crm_shpo_named_firms": 0,
      "environmental_cep": 0,
      "forestry_listings": 0,
      "has_shpo_roster": false,
      "has_forester_directory": false
    }
  ],
  "generated_at": "2026-10-31T15:45:27.109Z",
  "rpa_counts_as_of": "2026-10-31T15:40:05.066Z",
  "totals": {
    "listings": 11120,
    "unique_people_or_firms": 10971,
    "listings_in_us_states": 10912,
    "listings_outside_us_states_or_unknown": 208,
    "cross_source_name_matches": 59,
    "cross_source_matches_by_pair": {
      "rpa+shpo (person)": 50,
      "envirocert+shpo (person)": 2,
      "envirocert+rpa (person)": 1,
      "abcep+envirocert (person)": 4,
      "shpo+shpo (person)": 1,
      "shpo+shpo (firm)": 1
    },
    "shpo_rows": 852,
    "shpo_rows_with_firm_name": 526,
    "shpo_rows_without_parsed_name": 287,
    "shpo_roster_states": [
      "AK",
      "ID",
      "IL",
      "KY",
      "MI",
      "NM",
      "OH",
      "SC",
      "VT"
    ],
    "forester_directory_states": [
      "IL",
      "MD",
      "MT",
      "WA"
    ],
    "duplicate_listings_merged": 149
  },
  "dedupe_rule": "Listings are linked into one person or firm when they share an email address; or, across different sources only, when the normalized person name (first and last word, lowercased, accents, middle initials and credentials removed) and state match; or, for roster entries with a firm name but no person, when the normalized firm name (legal suffixes removed) and state match. Same-name rows within one registry are not merged, because those registries already separate people by name, city and state. RPA registrants without a row in our copy cannot be matched and count as unique, so unique counts are an upper bound.",
  "excluded_sources": [
    {
      "id": "acf",
      "name": "Association of Consulting Foresters",
      "reason": "Directory use policy forbids using its contents to build lists for commercial purposes (partner_organizations.directory_access = 'prohibited'). Not collected and not counted.",
      "rows_in_prospects": 0
    },
    {
      "id": "shpo_wi",
      "name": "Wisconsin Historical Society archaeological consultants (March 2026)",
      "reason": "Excluded. The site terms restrict republishing for commercial purposes and do not clearly allow derived statistics. Can be added back with written permission from the Society.",
      "rows_in_prospects": 82
    },
    {
      "id": "shpo_wi_skeletal",
      "name": "Wisconsin Historical Society qualified skeletal analysts (July 2026)",
      "reason": "Excluded. The site terms restrict republishing for commercial purposes and do not clearly allow derived statistics. Can be added back with written permission from the Society.",
      "rows_in_prospects": 31
    }
  ],
  "shpo_rosters": [
    {
      "roster_state": "AK",
      "rosters": 1,
      "listings": 67,
      "unique_people_or_firms": 67,
      "based_in_state": 67,
      "based_in_other_states": 0,
      "no_us_address": 0
    },
    {
      "roster_state": "ID",
      "rosters": 1,
      "listings": 92,
      "unique_people_or_firms": 91,
      "based_in_state": 81,
      "based_in_other_states": 11,
      "no_us_address": 0
    },
    {
      "roster_state": "IL",
      "rosters": 1,
      "listings": 63,
      "unique_people_or_firms": 63,
      "based_in_state": 29,
      "based_in_other_states": 34,
      "no_us_address": 0
    },
    {
      "roster_state": "KY",
      "rosters": 1,
      "listings": 64,
      "unique_people_or_firms": 64,
      "based_in_state": 52,
      "based_in_other_states": 12,
      "no_us_address": 0
    },
    {
      "roster_state": "MI",
      "rosters": 1,
      "listings": 247,
      "unique_people_or_firms": 247,
      "based_in_state": 91,
      "based_in_other_states": 156,
      "no_us_address": 0
    },
    {
      "roster_state": "NM",
      "rosters": 2,
      "listings": 131,
      "unique_people_or_firms": 122,
      "based_in_state": 128,
      "based_in_other_states": 3,
      "no_us_address": 0
    },
    {
      "roster_state": "OH",
      "rosters": 2,
      "listings": 124,
      "unique_people_or_firms": 120,
      "based_in_state": 82,
      "based_in_other_states": 42,
      "no_us_address": 0
    },
    {
      "roster_state": "SC",
      "rosters": 1,
      "listings": 78,
      "unique_people_or_firms": 78,
      "based_in_state": 17,
      "based_in_other_states": 61,
      "no_us_address": 0
    },
    {
      "roster_state": "VT",
      "rosters": 2,
      "listings": 76,
      "unique_people_or_firms": 76,
      "based_in_state": 24,
      "based_in_other_states": 52,
      "no_us_address": 0
    }
  ],
  "envirocert_credentials": {
    "CPESC": 2677,
    "CESSWI": 2155,
    "CPSWQ": 526,
    "NGICP": 235,
    "CPMSM": 166,
    "QSM": 132,
    "CPESC-IT": 62,
    "CPIESC": 43,
    "CESSWI-IT": 36,
    "CIHECP": 27,
    "CPISM": 19,
    "CPESC-R": 18,
    "CPSWQ-R": 5,
    "CPSWQ-IT": 3,
    "CESSWI-R": 3,
    "CPISM-IT": 2,
    "CPMSM-IT": 1,
    "CPMSM-R": 1
  }
}