{"id":"releases/2026-11-13/schemas/county-weekly-1.json","kind":"schema","format":"schema/1.0","provenance":{"release":"2026-11-13","sources":["inaturalist-observations-v2","gbif-occurrence-v2","species-names","inaturalist-photos","usgs-gap-ranges-conus-2001v1","noaa-nclimgrid-daily","us-riis-l48-v2","oh-oda-invasive-plants","oh-odnr-aquatic-invasive","inaturalist-checklist","government-species-lists","census-tiger-2026","census-cartographic-boundaries-2025","resolve-ecoregions-2017","usgs-wbd","census-urban-areas-2020","natural-earth-countries","usgs-annual-nlcd-c1v2-2025","usgs-3dep-1as","usgs-padus-4-1","odnr-lands","census-zcta-county-2020","census-places-2020"],"licences":["CC-BY-4.0","CC-BY-NC-4.0","CC0-1.0"],"gbif_download_dois":["10.15468/dl.8m7c3d","10.15468/dl.y2jkt8"],"method":"seasonal-5","taxonomy":"col-xr-2026-06-19/match-2026-10-20","boundaries":"tiger-2026; census-cb-2025-500k; census-zcta-county-2020; census-places-2020; resolve-ecoregions-2017; usgs-annual-nlcd-c1v2-2025; usgs-3dep-1as; PAD-US 4.1 073747bf4d9b, ODNR Lands 8f5985bbd476, parks list 1.2; WBD HU8 04 1a78c5142bde, 05 d59adb45cc28; census-uac20 dbd0e5786258","ranges":["gap/conus-2001v1"],"protection":{"usfws":"2026-11-03T15:25:11.428Z","ohio":"2026-10"},"code":"414181dce188c3b7397c29608556900ed4e75a41","run":"43333827288"},"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"OpenPhenology county-weekly/1","description":"A species' weekly result for a county.","type":"object","required":["id","kind","format","provenance","data"],"properties":{"id":{"description":"The file's path from the API root.","type":"string","pattern":"^releases/\\d{4}-\\d{2}-\\d{2}/results/[a-z]{2}-[a-z0-9]{1,3}/\\d{5}/[A-Za-z0-9._-]+(/\\d+)?\\.json$"},"kind":{"description":"The format's name, such as `county-weekly`.","const":"county-weekly"},"format":{"description":"Format name and version, for example `county-weekly/1.0`.","type":"string","pattern":"^county-weekly/1\\.\\d+$"},"provenance":{"description":"Where the content came from.","type":"object","required":["release","sources","licences","gbif_download_dois","method","taxonomy","boundaries","ranges","protection","code","run"],"properties":{"release":{"description":"The release the file belongs to, such as `2026-10-19`.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"sources":{"description":"Source IDs, as listed in `sources.json`.","type":"array","items":{"type":"string"}},"licences":{"description":"The licences of those sources.","type":"array","items":{"type":"string"}},"gbif_download_dois":{"description":"The GBIF downloads the records came from, as DOIs.","type":"array","items":{"type":"string"}},"method":{"description":"The method version, such as `seasonal-3`.","anyOf":[{"type":"string"},{"type":"null"}]},"taxonomy":{"description":"The taxonomy version species keys come from.","anyOf":[{"type":"string"},{"type":"null"}]},"boundaries":{"description":"The boundary version areas come from.","anyOf":[{"type":"string"},{"type":"null"}]},"ranges":{"description":"Each mapped range edition used.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"protection":{"description":"The version of each sensitive-species list applied, by list.","anyOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"null"}]},"code":{"description":"The commit of the code that produced the file.","anyOf":[{"type":"string"},{"type":"null"}]},"run":{"description":"The run that produced the file.","anyOf":[{"type":"string"},{"type":"null"}]}}},"data":{"description":"The content, as the format sets out.","type":"object","required":["area","species_key","included_records","contributing_years","thresholds","weekly","season","season_withheld","effort","limits"],"properties":{"area":{"description":"The area code.","type":"string","pattern":"^\\d{5}$"},"species_key":{"description":"The species key.","type":"string","pattern":"^[A-Za-z0-9._-]+$"},"included_records":{"description":"Records counted, over all weeks.","type":"integer","minimum":0},"contributing_years":{"description":"Calendar years with at least one counted record.","type":"integer","minimum":0},"thresholds":{"description":"The minimum records and years the method requires.","type":"object","required":["records","years"],"properties":{"records":{"description":"Minimum records.","type":"integer","minimum":0},"years":{"description":"Minimum years.","type":"integer","minimum":0}}},"weekly":{"description":"Records counted and years contributing, each for weeks 1 to 53.","type":"object","required":["records","years"],"properties":{"records":{"description":"Records counted, weeks 1 to 53.","type":"array","items":{"type":"integer","minimum":0},"minItems":53,"maxItems":53},"years":{"description":"Years contributing, weeks 1 to 53.","type":"array","items":{"type":"integer","minimum":0},"minItems":53,"maxItems":53}}},"season":{"description":"Early, middle and late weeks, or empty when withheld.","type":"array","items":{"type":"integer","minimum":1,"maximum":53},"maxItems":3},"season_withheld":{"description":"Why `season` is empty, or `null`.","anyOf":[{"enum":["year-round","two-seasons","one-year","precision"]},{"type":"null"}]},"effort":{"description":"Records of all species counted in the area, weeks 1 to 53.","type":"array","items":{"type":"integer","minimum":0},"minItems":53,"maxItems":53},"limits":{"description":"What the result does not show.","type":"string","minLength":1}},"allOf":[{"anyOf":[{"type":"object","properties":{"season":{"type":"array","minItems":3},"season_withheld":{"type":"null"}}},{"type":"object","properties":{"season":{"type":"array","maxItems":0},"season_withheld":{"enum":["year-round","two-seasons","one-year","precision"]}}}]}]}}}}