How it works

What the sun model does, and what it can't see.

FloraPlot's shade and sun calculations are the most technically substantial part of the app. This page explains how they work, what they assume, and where the model's limits actually are — because publishing the limits is more useful than hiding them.

257 automated tests
15 min integration steps
USNO validated

The sun model

FloraPlot calculates direct sun hours on a grid across your whole garden, for every month of the year — not a single verdict per zone, but a distribution: "62% full sun, 31% partial, 7% shade in July".

01

Sun position

Uses standard NOAA/Meeus solar position calculations — solar declination, the equation of time, hour angle, and atmospheric refraction near the horizon. This is the same class of astronomical calculation used in sunrise/sunset tables, applied to your specific latitude and longitude rather than a regional average.

02

Time resolution

The garden is sampled every 15 minutes through daylight hours. This wasn't an arbitrary choice — it was measured. Hourly sampling produced a 0.66 hour mean error in April at 51.5°N; 15-minute sampling brought that down to 0.17 hours.

03

What blocks the sun

Every structure, hedge and tree you draw, at the height and type you give it — see the breakdown below. The model then works out, for every point on the grid, which of those casters are between that point and the sun at each 15-minute step.

04

Slope

Applied as a correction to the sun-hours result, using both your latitude and hemisphere — a north-facing slope is handled correctly whether your garden is in Yorkshire or in New Zealand.

Hourly sampling — mean error (April, 51.5°N) 0.66 h
15-minute sampling — mean error (April, 51.5°N) 0.17 h
Validated against US Naval Observatory published sun positions & sunrise/sunset times
Automated test coverage 257 tests, including astronomy-derived checks — equinox noon altitude, sun due north at Sydney noon, midnight sun at Tromsø

Watch it change through the year

The same garden, scrubbed month by month. Watch the tree canopy fill in and the shade shift as the seasons turn.

What casts shade

The model only knows about what you tell it. That's a genuine limitation (see below) but it's also the reason the answer is specific to your garden rather than a generic estimate from map data.

🏠

Structures

Drawn at their real height — sheds, fences, garages, houses.

🌿

Greenhouses & polytunnels

85% / 80% light transmission — they don't block light like a solid structure, and the model reflects that.

🌳

Trees

Modelled as canopy on a trunk. Density affects how much light passes through: dense 5% · medium 15% · open 30%.

🍂

Deciduous seasonality

Bare December–March, ramping through April, full canopy May–September. The same tree, genuinely different shade, depending on the month.

FloraPlot tree zone with canopy density setting

A tree zone, with canopy density set.

FloraPlot greenhouse zone with light transmission

A greenhouse zone — light transmission, not a hard shadow.

Shade at mature tree size

Trees grow. A young tree's shade footprint today isn't its shade footprint in ten years, and a border that reads as full sun now may not stay that way. Rather than model growth over time, FloraPlot lets you project the same shade calculation forward to a tree's mature canopy size — a second, separate reading, not a change to the garden itself.

Shade projection at current tree size

As drawn — current tree size.

Shade projection at mature tree size

Projected — mature canopy size.

What it actually can't see

Every one of these is a place where a user would catch us overclaiming within a week of real use. Better to say it here.

Only what you draw casts shade
A neighbour's house or a boundary hedge doesn't affect the model unless you add it yourself. This is the single largest real-world accuracy gap right now — closing it with AR-measured heights is the focus of the next major version.
Ground is assumed flat
Slope is applied afterwards as a correction to the result, not modelled as real terrain within the shade field itself.
One leaf-out curve for every deciduous species
Bare December to March, ramping in April, full May to September, for all deciduous trees regardless of species. Real leaf-out timing varies by species and by year.
Tree canopies are round in plan
A hedge modelled as a tree zone becomes a circle of equivalent area, which isn't the right shape. A dedicated hedge shape is planned.
Soil is modelled at 250m resolution
From SoilGrids (ISRIC). It can differ from your specific plot, particularly on made-up ground or in a long-cultivated garden. Estimates are labelled as estimates — if the lookup fails, the app says so rather than showing a plausible fake number.
FloraPlot soil pH and texture reading
Climate is historical averages, not a forecast
Useful for understanding your local growing conditions over time — not a substitute for checking this week's weather.
Toxicity data covers 93 plants
Sourced from the RHS "Potentially harmful garden plants" list. Absence of a warning means the plant isn't on that list — it does not mean the plant is confirmed safe. Plants found through extended search are explicitly marked as not checked.

What we won't say

Coming next

The biggest gap — only drawn structures casting shade — gets closed by AR and LiDAR measurement, planned for the next major version. It'll let you measure the real height of a structure, a tree, or a boundary directly with your phone, including a method for estimating the height of something you can't walk up to, like a neighbour's tree. Ground slope measurement is part of the same piece of work.