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 add casts shade
A neighbour's house or a boundary hedge doesn't affect the model unless you add it — now with the camera, or still by hand. It won't notice a new extension or a tree growing next door on its own.
Ground slope is a single reading per zone
Measured with the camera (or set by hand) as one angle and aspect for the whole bed or lawn, applied as a correction to the result — not modelled as real, varying 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

New in v2.0 — measuring with the camera

Heights and slope no longer have to be a guess. Point your phone at a tree, shed or wall and FloraPlot measures its real height — including a method for something you can't walk up to, like a neighbour's tree. Point it at a sloping lawn or bed and it reads the angle and which way it faces. You can also walk round a garden marking beds, lawns, trees, buildings and fences, and FloraPlot places the whole group on the satellite map for you. It still only knows about what you've measured or drawn — see above.