Release history
Changelog
What has changed in Understory, newest first, back to the day it was first published.
A five-day season for this place
Understory now names the five-day season a place is passing through: which species peak this week, when frost usually arrives, when the rains return. Seventy-two observances make a local year, beginning at the winter solstice.
Added
- A numbered observance and date range for each five-day period
- The nearby record behind each species phrase: how often it has been seen within 10 km and the month it appears in most
- No calendar at all when the local record is too thin to support one
Behind the scenes
- Each local calendar is assembled in the background and kept for a year
- The detected timing was checked against USA-NPN, an observer network independent of the records used to build it
- Flowering and fruiting dates come from observers' phenology notes, not simply the month a plant was photographed
- Bird names follow eBird's Clements checklist
A quieter location page
A location page now reads from place, to season, to today's conditions. Soil, geology, climate, and flora remain close at hand without taking over the opening view.
Improved
- Sunrise, sunset, dusk, and the moon form one diagram instead of a list
- The moon is drawn at tonight's illumination rather than shown as a generic icon
- Bioscore and the Nature Activity Index share one place without competing for attention
- Growing zone, soil, geology, county flora, and climate sit together under Land and climate
- Coverage badges use distance, not category, to show how local a signal is
- Flora filters read as ordinary choices rather than a form
Flora of this county
County flora brings USDA's plant record into the location page: what is expected to bloom now, what is expected to fruit, and the full list of documented woody and flowering species.
Added
- A county flora panel
- Separate views for Blooming, Fruiting, and All
- A choice to show native species only
- A separate list of state-designated noxious and invasive plants
Behind the scenes
- Species appear in order of how commonly they are documented
- County species lists are prepared ahead of time rather than decoded during a visit
Sharper headlines and rankings
The daily reading is less easily distracted: serious hazards can lead, repeated numbers are gone, and biological activity is grouped in terms a reader can scan.
Improved
- A severe hazard can now outrank sky and nature-activity stories
- The headline no longer repeats the Bioscore number shown above it
- Plant activity is grouped into leaf, flower, and fruit
- "Water quality" is now labelled "Waterway quality"
A statewide ratio, not a raw count
More sightings do not necessarily mean more animals. Understory now checks a species against its taxonomic order's usual share of records in the same state and month. Cited natural-history accounts take precedence whenever they explain the season directly.
Added
- A Season Milestone for a species whose activity is unusual for the month
- A seasonality note in Biodiversity details when enough history is available
- Eleven cited natural-history accounts of nesting, migration, mating, and other seasonal behaviour
- A small, capped Biodiversity increase when several observed species are in season
- Common names beside scientific names wherever one is known
Improved
- A behaviour supported by a citation remains visible for its full window
- The headline no longer repeats the milestone's full explanation
Behind the scenes
- GBIF seasonality profiles are refreshed once a year for each species and state
- A cited account always outranks a statistical pattern, never the other way around
- Historical comparisons restarted cleanly after the Biodiversity calculation changed
- Spelling variants of a species name are treated as one species across providers
Drought, protected species, and quicker pages
Drought and protected-species records reached the location page without making it wait for every source to finish. Measured conditions also took precedence over estimates in the daily headline.
Added
- County drought conditions on the location page
- Nearby federally protected species among the wildlife details
- A quiet placeholder while the find of the day is being written
Improved
- Pages stay responsive while background updates run
- Mold and pollen no longer crowd out measured signals
- Background updates spread across the hour instead of arriving at once
- Headlines settle once instead of rewriting themselves mid-read
Fixed
- A pin dropped past the date line lands where you clicked
- Unusable orbital data no longer stalls a location's other updates
- Rate-limited sources wait longer instead of retrying together
Better context for the life around you
Drought, conservation status, and long-term bird trends added context at their honest geographic scale rather than masquerading as measurements at the pin. Each location also gained one featured find a day, written only from facts on record.
Added
- Current county drought conditions from the U.S. Drought Monitor
- Federal endangered and threatened status for animals observed nearby
- Long-term state bird trends from the USGS Breeding Bird Survey
- One featured find a day: a living thing, rock or soil, with a photo
- Featured finds do not repeat a subject within a week
Improved
- Bird trends include uncertainty, survey years, and route coverage
- Annual bird data is prepared ahead of time rather than fetched during a visit
- Every place-specific sentence in a featured find is checked against its source
- Featured photographs are openly licensed, credited, and labelled when representative
Fixed
- Common plants such as Valley oak no longer appear as rare wildlife
- Wildlife observation counts are no longer mistaken for rarity
- Records with deliberately obscured locations are no longer treated as nearby
Updates that finish what they start
Background updates became faster and harder to lose or duplicate. A new reading that arrives during a score calculation is kept, daily history is safer, and the visible page waits on less machinery.
Improved
- Bioscore refreshes complete in under two seconds
- Saved-location controls stay in sync across the page
- Location photos refresh before their links expire and have better fallbacks
- Water uses the nearest real gauge instead of publishing a placeholder
- Location pages rank their facts once instead of repeating the work
- Sky cards reserve attention for genuinely notable passes and events
- Environmental cards describe conditions instead of narrating their scores
Fixed
- Repeated background jobs can no longer pile up for the same work
- Large wildlife responses no longer hold up score refreshes
- New readings arriving during a score refresh are no longer missed
- Scheduling work remains responsive while provider or scoring queues are busy
- Partially written daily summaries are detected and repaired
- Raw readings are never cleared before their daily summary is safely stored
- Database connections use the resolved address and the correct TLS settings
- Location cleanup cannot delete readings shared with a nearby location
- Backfills respect the same freshness checks as scheduled fetches
Behind the scenes
- A permanent daily history preserves measurements after raw-data cleanup
- Paid Google sources were disabled and pollen was kept inside the free tier
- Background work has explicit limits and duplicate protection
- Performance and mid-refresh data-loss cases are covered by the test suite
Noticing what is unusual
Checking every provider against its real response uncovered a season's worth of data that Understory had collected but never shown. It also found several places where the page claimed a stronger comparison than the evidence allowed.
Added
- Sky card: aurora, moon, meteors, eclipses
- Planetary oppositions and conjunctions
- Local forest health outbreak signals
- Fire risk as its own scored category
- Streamflow and water temperature against their own history
- Today's high and low against the local normal
- How often it rains here on this date
- Ten-day runs, not just single afternoons
- How far the temperature moved in a day
- Air pressure, and which way it is going
- How many people felt an earthquake, and how strongly
- El Nino, and what it has meant at your own station
- A permanent daily record of every measurement
- Kept whole after the raw data is cleared away
- A page for sources we considered and declined
Improved
- Weather now says where it was measured
- Daily high, low, and reduced visibility
- Air quality carries a monitor map link
- Water station named and placed on a map
- Earthquakes ranked by real significance
- Forest health as a share of surveyed area
- Pollen marked when out of season
- Illness figures say how delayed they are
- An empty wildfire card still offers the map
- The two score panels read as a pair
- Scores say where they sit in words, not percentages
- Card bodies keep their line breaks
Fixed
- Wind direction, which had been silently missing
- Fire danger replaced with NOAA's own outlook
- Card drilldowns and source links
- Sweeps recover from a schedule they slept through
- Sweeps no longer skip locations out of phase
- A missing queue that stalled hourly updates
- Stranded background jobs are rescued
- Fires already out are no longer reported
- Local temperature normals that matched nothing at all
- An all-clear no longer reads as missing data
- The signal count counts only signals that exist here
- The same fact no longer appears twice on one page
- A missing icon no longer blanks the page
- Category names that read as English, not labels
- "For this time of year" now means it
- Seasonal comparisons re-centre as the year moves
Behind the scenes
- Recorded live provider responses for all 23 sources
- A test that catches data we collect but never read
- A generated reference for every provider payload
- An automatic check for leaked API keys
Score credibility and rich links
The Bioscore learned to explain itself, cards learned to link out, and the whole site picked up a palette that follows the sun.
Added
- Forward-looking fire weather risk
- Humidity and UV index on the weather card
- Sunrise, sunset, and twilight in local time
- Insect and spider activity on biodiversity
- Streamflow and water temperature on the water card
- Which categories pull the score up or down
- Links out from every detail row
Changed
- Nature activity scored by effort, not raw counts
- A serious hazard now caps the score outright
- Three sun-timed colour schemes replace the cream theme
- A taller map on the landing page
Fixed
- Stale provider data lingering in card details
- Dependency security updates
Timing, retention, and monitoring
A week spent on the parts nobody sees: how often data is fetched, how long it is kept, and how we find out when it breaks.
Added
- Error tracking and a background job dashboard
- One source of truth for coverage granularity
Changed
- Headline polish happens in the background and is cached
- Refresh cadence eased back to every thirty minutes
- Google data held for eight hours instead of refetched
Fixed
- Three retention bugs behind a huge delete spike
- Duplicate "no fresh data" tiles
- Two near-identical trend messages shown at once
- A missing "still building history" message
Milestones and what to notice
The feed started pointing at things rather than only listing them.
Added
- A What to Notice Right Now card
- Seasonal milestones: first bloom, migration, stream warming
- Three more cross-signal connections
- Water temperature and streamflow readings
- Daily cleanup of old readings and snapshots
Changed
- Milestone cards stay visible for two days
- Score changes never blamed on wildlife counts
Return visits and real speed
Pages that took three seconds now don't, and coming back to a location tells you what moved since last time.
Added
- A Since Your Last Visit comparison
- More varied headlines, naming what was actually seen
- Anonymous, cookieless visitor counts
- understory.today as the real address
Changed
- A different location photo on each visit
- Return comparisons only after a real gap
Fixed
- Repeated database queries causing slow page loads
- Live pages dropped when the server scaled down
- The home map no longer asks for your location
First published
Understory went live on 2026-07-22: a single page that tells you what is happening in the natural world within a mile or two of a point you pick, assembled from public science data.
The first version
- Pick any point and get a daily reading of it
- The Bioscore, and how favourable today is
- The Nature Activity Index for how alive it is
- Cards for birds, biodiversity, and plant timing
- Cards for weather, air quality, pollen, and mold
- Cards for water, wildfires, alerts, and illness season
- A written summary of what stood out
- Every card opens for the detail behind it
- A two-week score trend, and saved locations
- Badges saying how local each signal really is
- Comparisons against this location's own history
Same day
- The warm, organic look the site still wears
- Precise weather and air quality from Google
- Location photos, with three fallbacks
- Six connections drawn between separate signals
- A crash loop, a database setting, and a stale asset cache