Goal of the tool:
To read one county’s iNaturalist record as a calendar rather than a map. Week of year across the top, iconic taxon down the side, one cell per group per week, so you can see when things get recorded here and how that shifts from year to year. It also tries to answer the question I actually arrive with when I go out, which is “what should I be looking for this week.”
Niche it fills in the iNaturalist ecosystem:
iNaturalist shows one taxon’s seasonality at a time, and shows it well. What it doesn’t offer is the view across every taxon in a place at once: of the 4,291 species recorded in this county, which ones have their records concentrated in this week rather than spread across the year. That comparison needs every taxon’s distribution measured against the county’s overall recording effort, and it’s the one thing here I couldn’t get out of iNat directly.
The rest is a county-scale weekly overview and a per-species season range. Neither is novel, but I couldn’t find them for Door County specifically, and the county has enough of a record (77,750 observations back to 1970) to be worth arranging.
Is there a commercial component, or do you plan into include one in the future? Are donations requested? (yes/no, explain):
No, to all of it. No ads, no donations, no paid tier, nothing planned. It’s a personal project that I put on a domain I already owned.
What sort of data (if any) does your app collect from its users?:
None. There are no accounts, no login, no analytics package of any kind, no cookies, and no third-party scripts. I haven’t installed a tracker and don’t intend to, which is also why there’s no consent banner.
The one thing stored in your browser is a light/dark/system theme preference in localStorage. It never leaves your machine and nothing reads it but the page you’re on.
Link to your iNaturalist profile:
https://www.inaturalist.org/people/dchunter
Description:
The site is at https://phenology.doorco.info
Before anything else: it’s 77,750 observations from 4,221 observers, and 4,781 people have put identifications on them. I didn’t collect any of it. The whole site is an arrangement of other people’s fieldwork, and if it’s any good that’s why.
The calendar itself can be filtered to a year. The color scale stays fixed across years so you can compare 2019 to 2023, which sounds obvious but was the first thing I got wrong before I pinned it, every year rendered as an identical wash of color, because each was scaled to itself.
There’s a page at /now listing what’s peaking this week, and it’s the part I’d most like people to poke at. It ranks each taxon by what share of its own records fall in the current three-week window, then divides that by the share of all county records in the same window. Without the second half you just get a list of whatever is common in July, because that’s when everyone is outside with a camera. As I write it’s week 35 and the top is common sneezeweed, closed bottle gentian, white turtlehead. That’ll be different by the time you read this.
Each species page gives a season range: “most records fall between mid June and early September, peaking in late July.” It’s the shortest span containing 90% of that taxon’s records, computed on a circle rather than a line, so winter species come out as mid November to late May instead of some nonsense spanning the year backwards.
Where it’s wrong, or at least limited. Every number counts observations, not organisms. I’ve tried to be consistent about writing “records” and never “appears” or “blooms,” because the two really do come apart. Dwarf Lake Iris blooms for about a fortnight in May and its records run into August, since the leaves stay obvious long after the flower is gone. Northern white-cedar comes out as mid April to early November and is, of course, standing right there in February.
I spent a while trying to detect that automatically, measuring how closely each taxon’s weekly pattern tracks the county’s overall effort. The well-recorded conifers sit at the very bottom of that distribution, meaning their “season” is really the observing season. The trouble is monarchs aren’t far off, and I couldn’t find a cutoff that catches cedars without also catching things that genuinely are seasonal. So it’s documented and not fixed.
Winter is nearly empty and the site says so rather than papering over it. About 1% of the county’s records fall in a quarter of the year. For ten weeks the “what’s peaking” page has nothing to show and says that, instead of scraping together four species, three of which would be one rare bird that drew a crowd.
There’s a toggle for including observations nobody but the observer has looked at, which grows the calendar by roughly two fifths. The share of those climbs steeply toward the present, which I’m fairly confident is review backlog rather than a change in how people identify things, but it does mean recent years read as thinner than they’ll end up.
Giving something back. Every species page links straight into Identify, filtered to that taxon in the county, and the species index links to the queue for whichever group you’re browsing. On the winter pages where there’s nothing to list, that link is the whole point, since confirming somebody else’s photo is the one useful thing that doesn’t depend on the weather.
I’m also working through the county checklist by hand. It has about 4,259 taxa and only 407 had an establishment means, 373 of those “introduced”, which isn’t a convention against recording native, it’s that the only time anyone opens the list is to flag an introduction. I’m going through Chadde’s Door County Flora with the book open, writing the page number into each listed taxon’s description so the determination can be checked. 53 done so far, all native, all cited. Slow, deliberately.
One thing that might save someone else a mistake: Chadde uses “endemic” to mean indigenous to the region his book covers, while iNaturalist scopes endemic to the place the listing hangs on. Mapping it across directly would claim these plants occur in Door County and nowhere else on earth. It maps to native.
On photos, a taxon page only shows an image when the URL, the licence and the attribution are all present. If a photo turns up without its credit, nothing renders. 4,201 of 4,291 taxa have one right now, about 83% from iNat and 17% from Wikimedia where the iNat default photo is all rights reserved.
Discussion questions or areas seeking feedback:
-
The effort correction. Dividing a taxon’s share of its own records by the county’s share of all records in the same window is the load-bearing idea, and it’s the thing I most suspect of being subtly wrong. Is there a better standard approach to normalising observer effort within a place?
-
Telling a season from an observing pattern. Evergreens and year-round residents get a “season” that is really just when people are out. I can measure the effect but couldn’t find a threshold that separates those from genuinely seasonal taxa without false positives. Has anyone solved this?
-
Where I’ve overclaimed. If any wording reads as a statement about an organism where the data only supports a statement about records, I’d like to know. That’s the failure mode I care most about.
-
Local knowledge. If you know Door County: which species have a real season here that the site is getting wrong? Those are the interesting cases, because it usually means the record is thin rather than the method being broken.