Data dictionary
Every column in the open phenology export, with its type, units, and meaning. Schema version 1.0.0. Columns are only ever appended, never reordered, so a parser pinned to this version keeps working.
Observations
phenology-observations.csv
One row per first-bloom log, anonymized. No gardener, no plant, and no coordinates are present. Each row is a single "it is blooming" record with the season warmth accumulated at that location on that day.
| Column | Type | Units | Meaning |
|---|---|---|---|
| observation_id | integer | sequence | Opaque row number assigned at export time, ordered by region, species, then date. It is not derived from any account or plant, and it is not stable between exports. |
| region_code | string | ISO-3166-2 subdivision (province / state code) | The gardener's province or state code. "ZZ" means the region was not shared. This is the finest location grain in the dataset; no city, postal area, or coordinates are stored. |
| region | string | text | Human-readable name for region_code (for example "Ontario"). "Region not shared" when unknown. |
| scientific_name | string | binomial | The plant's scientific name as recorded on the logged plant. |
| bloom_date | date | ISO 8601 (YYYY-MM-DD) | The calendar day the gardener marked the plant as first blooming. |
| day_of_year | integer | day (1 to 366) | bloom_date expressed as an ordinal day of the year, so bloom timing can be compared across regions without a date parser. |
| gdd_at_bloom | integer or empty | growing degree days, base 10 degrees Celsius, since 1 April | Accumulated warmth at the gardener's location on the bloom day. Empty when weather data was unavailable at log time. See the methods page for how it is computed. |
Region and species summary
phenology-region-species.csv
One row per region and species pair, aggregated from the observations. This is the citation-friendly view: how bloom timing and warmth distribute for a species within a province or state.
| Column | Type | Units | Meaning |
|---|---|---|---|
| region_code | string | ISO-3166-2 subdivision | Province or state code, as in the observations table. |
| region | string | text | Human-readable region name. |
| scientific_name | string | binomial | The plant scientific name. |
| observations | integer | count | How many bloom logs make up this row. Read this first: a row built from one log is a single anecdote, not a trend. |
| first_bloom_doy_mean | number | day of year | Mean first-bloom day of year across the logs in this row. |
| first_bloom_doy_min | integer | day of year | Earliest first-bloom day of year observed in this row. |
| first_bloom_doy_max | integer | day of year | Latest first-bloom day of year observed in this row. |
| gdd_at_bloom_mean | integer or empty | growing degree days, base 10 | Mean accumulated warmth at bloom, averaged only over the logs in this row that carry a warmth stamp. Empty when none do. |
| gdd_sample_size | integer | count | How many of the logs in this row carried a warmth stamp. This is the denominator behind gdd_at_bloom_mean, and it can be smaller than observations. |