Field note · Measurement · 9 August 2026
How accurate is a sub-250 g drone, really?
I flew the same car park twice, 24 hours apart, changed nothing between the flights, and measured the difference. Everything the model reported was therefore error. Here is the number, the method, and the three results that don't flatter the kit.
90% of bare and hard ground agreed within this, 24 hours apart. 95% within 0.31 m.
The random component alone, on a stable concrete apron. The rest is a correctable offset.
How far the aircraft's absolute altitude moved in 24 hours while flying the identical height. Why nobody should sell absolute levels off this kit.
A tape-measured 0.045 m³ box read as 0.122 m³. Published because it is the limit that matters.
Why this page exists
Search for drone survey accuracy and almost everyone says the same thing: accurate to 2 cm. No method, no repeat flight, no error bar, and no statement of what the number leaves out.
Usually that figure is the ground sample distance — the size of one pixel on the ground — quoted as though it were accuracy. It isn't. GSD tells you what you can see. It tells you nothing about whether the same point lands in the same place when you come back next month, which is the only thing that matters if the survey's job is to show change.
That distinction is not academic if you are the person signing a valuation, defending a programme position, or putting a figure in a claim pack. A number without a stated boundary is something you can be cross-examined on. A number with one is evidence.
So here is mine, with the method, the caveats, and the parts that went badly.
The test: fly it twice, change nothing
The principle is called a null test and it needs no reference data at all. Fly a site, fly it again with nothing changed in between, process both reconstructions independently, and subtract one elevation model from the other. The correct answer is zero everywhere. It never is — and everything that isn't zero is error. The site is its own control, so there is nothing to assume and nothing to take on trust.
The site
- Location
- Ramblers Car Park, nr Slough
- Site area
- 3.88 ha
- Area analysed
- 2.37 ha
- Surface
- tarmac, gravel, woodland
- Tree canopy
- 44% of the area
- Status
- validation site, not client work
The analysed area is smaller than the site because 8 m is trimmed off the survey boundary before anything is measured. Edge cells are seen by few frames and are known to be unreliable — including them would flatter nobody and mislead everybody.
The capture
- Aircraft
- DJI Mini 3 Pro (<250 g)
- Positioning
- GNSS only — no RTK, no GCPs
- Height
- 40.0 m above launch
- Camera
- 12 MP, gimbal −90° nadir
- Exposure
- ISO 400, 1/640, manual WB
- Pattern
- crosshatch, 70% side / 80% forward
- Output grid
- 2.0 cm/px
Three flights: a baseline and a repeat five minutes apart on 3 August, then the same mission again at the same time of morning on 4 August. 226, 227 and 228 frames, about 11 minutes each.
First, the flight has to repeat
None of the rest means anything if the aircraft doesn't fly the same lines each visit, so that gets checked first — from the GPS position and camera settings written into every delivered frame, not from the flight plan.
A day apart, the mission reproduced 7 lines on one bearing and 12 on the other, at 16.57 m and 16.43 m spacing — the same as the previous day to within 2 cm, at an identical 40.00 m above launch, with gimbal, ISO, shutter, white balance and shot interval unchanged. That is the part a monthly record depends on, and it is the part that is genuinely solved.
Worth being clear about why: the mission is a saved file, flown by the aircraft, not a route flown by hand. A hand-flown site cannot be compared month to month, however good the pilot is.
The headline number
Bare and hard ground only — the surfaces anybody actually measures. Vegetation is reported separately below rather than averaged in.
How closely two independent surveys of the same ground agree
Vertical difference between two reconstructions of an unchanged site. Lower is better. The 24-hour pair is better than the two flights taken five minutes apart.
| Bare / hard ground | 3 Aug — 5 min apart | 4 Aug — 24 h apart |
|---|---|---|
| Median difference | −0.076 m | −0.063 m |
| 50% of cells within | 0.21 m | 0.112 m |
| 68% within | 0.27 m | 0.160 m |
| 90% within | 0.41 m | 0.237 m |
| 95% within | 0.51 m | 0.311 m |
| 99% within | 4.48 m | 2.83 m |
The 99th percentile is included deliberately. Most of that tail is not error at all — I was standing on site and there were vehicles in the car park, and things that genuinely moved between flights show up as change because they were change. It is left in because removing inconvenient cells is exactly how these figures get massaged.
The 24-hour result is better than the 5-minute one, and I did not expect that
The pair flown five minutes apart should be the easy case: same light, same air, same battery-fresh conditions. It came out worse. The reason is in the next section — that pair happened to carry a larger constant offset, and a constant offset shifts every percentile at once.
The useful conclusion is the one that matters commercially: coming back a month later does not degrade the comparison. That is the whole premise of a progress record, and it is now measured rather than assumed. The unglamorous conclusion is that run-to-run variation is larger than day-to-day variation at this scale, so a single pair of flights is not a spec — it is one sample.
Percentiles, not RMS — and why that isn't a dodge
Almost every published accuracy claim is an RMS or a standard deviation, which assumes the errors are bell-shaped. These aren't. The distribution has heavy tails: most cells are very good and a small number are terrible, so an average is dragged around by the worst cells and reports a figure that describes nothing you would recognise on site. "90% of the surface within 0.24 m" is a statement you can go and check. A lone "± X m RMS" hides both how good the good part is and how bad the bad part is.
Where the error actually lives
Splitting the same difference map by surface type — classified by vegetation height, not by eye — shows the error is not spread evenly at all.
95% of cells agree within this, by surface
Same flights, same processing, same day. Nearly half this site is tree canopy, and the canopy carries almost all of the error.
Bare ground is 43.7% of this site and behaves well. Tree canopy is 44.2% and is five times worse — leaves move, and two reconstructions of a moving surface will never agree. Grass and scrub sit in between.
So "this site is accurate to X" is a meaningless sentence. Quote one site-wide figure for a wooded site and you are mostly reporting how the wind was blowing. Any accuracy claim has to say which surface it applies to. On a live construction site the mix is kinder than this — but the rule doesn't change.
The number I could have published instead
There is a stable concrete apron on this site that gets measured separately every visit, precisely because it is not supposed to change. Across the 24-hour pair, the scatter on that apron is 0.033 m.
Three centimetres. If I wanted a flattering headline, that is the number to put on the home page, and it would be perfectly true.
It would also be misleading, because sitting underneath that scatter is a systematic vertical offset of 0.137 m across dates — 0.237 m for the same-morning pair — that the alignment step does not remove. The whole surface is shifted up or down slightly, per flight. So the honest reading of the same measurement is: the random part is 3–5 cm, and there is a per-flight datum shift of 14–24 cm on top of it.
| Pair | Scatter (std) | Systematic offset |
|---|---|---|
| 4 Aug — 24 hours apart | 0.033 m | −0.137 m |
| 3 Aug — 5 minutes apart | 0.046 m | −0.237 m |
This is also the explanation for the surprise above: the same-morning pair carried the larger offset, so it scored worse despite the easier conditions.
A constant is correctable — measure it on a surface known not to have moved and subtract it before differencing. Doing that properly means fitting it locally rather than site-wide, because the offset is not uniform across the ground, and it is not built yet. Until it is, the figure I quote is the 0.24 m / 0.31 m one, not the 3 cm one. When it's done, this page gets the measurement, not the promise.
Absolute height is far worse — and it isn't the drone's fault
Everything above is relative: how well two surveys agree with each other. Absolute height — real levels, above Ordnance Datum — is a different question, and this is the hardest evidence I have on it.
27.78 metres in 24 hours
Flying the identical mission at an identical 40.00 m above launch, the aircraft's recorded absolute altitude moved from 64.76 m to 92.54 m between the two dates. Within a single morning it moved 1.45 m.
The aircraft flew the correct height above the launch point on both days. What moved was the barometric datum it measures against — air pressure, not position.
That is why every figure on this page is expressed as change relative to the baseline survey, why the takeoff point is fixed and re-used on every visit, and why I will not give you AOD levels off this aircraft. Anyone quoting absolute levels from a non-RTK sub-250 g drone either hasn't checked this or isn't telling you.
The results that don't flatter the kit
On the second visit I put a tape-measured cardboard box on the tarmac — 0.50 × 0.30 × 0.30 m — and flew over it without telling the processing anything about it. The point was to find the detection threshold rather than assume one. Three things came out of it, and they point in different directions.
1. Plan measurement: very good
From the orthomosaic the box measured 0.537 × 0.320 m against a true 0.50 × 0.30 — errors of 2–4 cm, and area within 4%. At 2 cm/px it is 25 × 15 pixels with crisp edges.
Measuring hard-edged things in plan — slab outlines, hardstanding, stored materials, roof areas — is genuinely reliable at this scale.
2. Height: not good
The elevation model read the box as 0.20 m tall against a true 0.30 m, a 33% under-read, and smeared its footprint from 0.5 × 0.3 m to 1.09 × 0.755 m.
That was measured inside a single survey, so it is not an alignment error. It is the modelled surface rounding off a small, sharp object.
3. Volume: over-read by 2.7×
Follow the smeared footprint through and the box's volume comes out at 0.122 m³ against a true 0.045 m³. Nearly three times too much.
The mechanism is an edge effect, so in principle it should shrink in proportion as objects get larger — a stockpile several metres across is a different regime from a shoebox. But I have not measured that, so I don't claim it. What the measurement supports today is a flat rule: no volume figures for anything of this size, and no certified volumes from this aircraft at all.
This is the single most useful thing on the page for a buyer. Stockpile volumes are the deliverable most often sold off small drones, and the error is in the direction that costs you money.
4. Automated change detection missed it completely
Running a blind search for objects that appeared between the two dates — no hint about where to look — the box did not make the top 25 candidates, even with the search tuned to the height it actually read. The site carries tens of thousands of cells showing 0.25–0.50 m of apparent change on nominally flat ground, and a 0.20 m signal is not separable from that clutter. The box was found by eye, in the orthomosaic, in seconds.
The same search found every parked car immediately and correctly. So: automatic detection works at roughly car scale, 1.0–1.5 m and up. Below that, a person looking at the image beats the algorithm — which is fine, because that is exactly how a progress pack gets read.
What this supports, and what it doesn't
Fit for
- Dated visual site records for progress meetings and monthly reports
- Month-to-month comparison of the same site, flown to the same saved mission
- Programme evidence and delay or claim narratives — what was where, and when
- Plan measurement of hard-edged features: areas, extents, layout, access
- Roof and elevation condition inspection without scaffold or access equipment
- Spotting change at roughly car scale and upwards, reliably
Not fit for
- Setting out, or anything a contractor will build to
- Legal boundary determination
- Absolute levels above Ordnance Datum
- Certified stockpile volumes, or any volume for small objects
- Anything requiring a survey-grade accuracy statement
- Measuring ground under tree canopy
Where a job genuinely needs survey grade, the answer is an RTK aircraft with ground control and an accuracy statement attached to the file — which I'll hire in and say so. The interesting point of this whole exercise is how much useful work sits on the left-hand list, and how rarely anyone states the boundary between the two.
Five questions worth asking any drone supplier
- Have you flown the same site twice and differenced the results? If not, the accuracy figure is a specification sheet, not a measurement.
- Is your number GSD or measured repeatability? "2 cm" is almost always pixel size. They are not the same quantity and they differ by an order of magnitude.
- Percentiles or RMS, and over which surface? A site-wide RMS across vegetation tells you nothing about the ground you care about.
- Relative to a baseline, or absolute? Absolute levels off a non-RTK aircraft should be refused, not priced.
- What was excluded? Edge trim, masked areas and removed outliers are all legitimate — provided they're declared.
If you get straight answers to those five, you're dealing with someone who has actually measured their own work. It is a short list.
Method, and how to check me
Processing is OpenDroneMap, incremental structure-from-motion, with rolling-shutter correction enabled using the aircraft's true 26 ms sensor readout. Both repeats are aligned to the baseline reconstruction's point cloud before differencing, so what is compared is like with like. Orthomosaic and elevation model are produced on a locked 2.0 cm/px grid that never changes for this site — a resolution change between visits would inject noise into exactly the measurement being sold. Surfaces are classified as bare or vegetated by subtracting the terrain model from the surface model, not by eye.
The difference maps are computed cell by cell across 2.37 ha after an 8 m edge trim, and reported as percentiles of absolute difference plus a median bias.
Limits of this study, stated plainly
- One site, one aircraft, one operator, one weather condition. Dry, calm, light cloud, low sun, early morning both days.
- This measures repeatability, not absolute accuracy. There is no independent survey control here — deliberately, since the question being asked is whether two visits agree with each other.
- The 99th-percentile tail includes real movement — me, and vehicles. The true noise floor is probably better than the tail implies.
- Two pairs of flights is a small sample. The gap between the two results is itself evidence that a single pair does not pin down a spec.
- The 2.7× volume over-read was measured on a shoebox. Whether it shrinks at stockpile scale is untested here and is not claimed.
- None of it is survey-grade, and nothing here should be used for setting out.
Figures last updated 9 August 2026. If any of them change — including in the wrong direction — this page changes with them.