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

 ·  Current version

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

 ·  Current version

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

 ·  v88

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

 ·  v88

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

 ·  v88

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

 ·  v71 – v82

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

 ·  v69 – v70

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

 ·  v52 – v67

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

 ·  v34 – v51

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

 ·  v30 – v33

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

 ·  v22 – v29

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

 ·  v20 – v21

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

 ·  v9 – v19

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

 ·  v1 – v8

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