Data sources
veggie.farm is moving from a library of gardening information toward explainable garden decisions. That means every recommendation should show what came from a source, what was modeled, what the gardener entered, and what veggie.farm calculated.
Four evidence layers
Taxonomy, plant characteristics, hardiness, soil maps, and climate normals. These change slowly and can be versioned.
Germination, planting, spacing, maturity, tolerance, and care facts, ideally supported by Cooperative Extension evidence.
Forecasts, recent rain, estimated soil temperature, soil moisture, and evapotranspiration. These need timestamps and caching.
The gardener's beds, amendments, microclimates, planting dates, harvests, problems, and notes. These should never be overwritten by public estimates.
Current production data
The current site now uses four deliberately different collections:
- Twenty-three hand-written crop guides provide the core editorial layer.
- A larger imported seed-catalog dataset provides structured cultivar discovery and preliminary growing facts. Vendor language is not treated as authoritative horticultural guidance.
- One hundred sixty-five atomic facts from seven Cooperative Extension snapshots provide reviewed planting, spacing, depth, yield, germination, transplant, site, and care benchmarks for all 23 core crops.
- An opt-in National Weather Service adapter provides a timestamped 48-hour temperature, precipitation-probability, and wind forecast for U.S. gardens.
The Garden Today tool keeps those roles visible. Regional Extension dates are presented as regional benchmarks, not universal cutoffs. Soil-temperature estimates still come from the cultivar catalog and should be checked against the seed packet. If a user requests a forecast, an NWS near-freeze signal can reduce tender-crop recommendations.
The location lookup is explicit. The browser rounds coordinates to 0.001°, sends them directly to NWS, and does not retain them in the forecast record or browser storage. NWS forecast data is cached only in page memory for 20 minutes.
My Garden stores frost dates, explicit soil overrides, and dated observations only in the gardener's browser. These user observations remain a distinct evidence class; they do not overwrite public or modeled source values.
Provider status
| Provider | Role | Acquisition | Status |
|---|---|---|---|
| Cooperative Extension collection | Reviewed crop evidence from UMaine, UMN, UMD, USU, and Penn State | Seven versioned factual snapshots | Active: 165 normalized facts; all 23 core crops |
| National Weather Service | Current U.S. forecast conditions | Opt-in live query; memory cache | Active |
| World Flora Online | Canonical taxonomic names and synonyms | Versioned snapshot | Planned |
| USDA PLANTS | U.S. plant characteristics and distribution | Snapshot or supported export | Planned |
| USDA hardiness map | Perennial winter-survival context | Versioned spatial snapshot | Planned |
| NOAA climate normals | Frost probabilities and long-term growing-season context | Versioned snapshot | Next priority |
| NRCS Soil Data Access | Location-specific mapped soil estimates | Serverless query and cache | Next priority |
| Open-Meteo | Modeled soil temperature, moisture, and ET₀ | Licensed query or self-hosted | Evaluated; free endpoint deferred |
Open-Meteo is not silently used: its free API is restricted to non-commercial use, and its troubleshooting logs may retain coordinates for up to 90 days. That provider can be reconsidered with an appropriate paid deployment or self-hosting. Any future modeled soil value will be labeled as a model estimate rather than a physical sensor reading.
Evidence record contract
Each normalized horticultural fact has a stable evidence ID, crop key, trait, typed value and unit, method where relevant, geographic applicability, immutable source snapshot, source URL, retrieval date, review status, and confidence class. Conflicting future sources can therefore coexist; a derived rule can choose among them without rewriting the source facts.
Product rule
The calculation engine returns structured facts and reason codes first. Friendly explanations come afterward. A language model may help phrase an explanation, but it must not invent frost dates, soil values, crop thresholds, weather observations, or pesticide guidance.
For the implementation boundary and next steps, see the project documentation in docs/data-architecture-current.md and docs/data-architecture-target.md.