◆ Progress tracking
Two flights give you a number.
A season gives you a record.
Put up to 8 flights of one site on a timeline and DroneFlow measures the cut, fill and net for every period between them — then emails you once a week when a site moves.
◆ The problem
Before-and-after is one row of the table you actually need
Every platform in this category will difference two flights, and that answers one question: what changed between these two dates. The question a monthly draw, an owner update or a delay claim asks is what the site has been doing since March.
A folder of two-flight reports does not add up to that. Each one was aligned to its own pair and measured over whatever ground those two flights happened to share, so the numbers are not on the same footing — and adding them anyway is how a progress claim ends up with a figure nobody can defend.
◆ In the app
Pick your flights. Get every period.
2 to 8 flights, one timeline
Select the finished projects for a site, open the Timeline and press Measure progress. You get cut, fill and net for every consecutive period as a chart and a table, with a running total across the whole job.
A total that is measured, not added up
The total comes from measuring the first flight against the last directly. Summing seven periods would accumulate seven separate alignment estimates; the direct pair carries exactly one. Where the two answers disagree materially, the panel says so.
Or measure just part of the site
Draw a boundary with Measure an area first and every period in the series is measured inside it — one phase, one pad, one stockpile yard — across the whole history rather than one pair at a time.
One set of numbers
The timeline, the weekly email and the AI narrative all run the same measurement, so they cannot quote different figures for the same two flights. There is nothing to reconcile before you forward it.
◆ Why the series is comparable at all
Every period is measured over the same ground
This is the part that decides whether a series means anything. If each period were measured over whatever its own two flights happened to cover, then “+12,400 cubic yards this period against +3,100 last” would be partly a change of footprint rather than of ground — a bigger number could just be a bigger area, and the rows would not belong in one table.
So every period is measured inside the ground that all the selected flights share, at one resolution. That is deliberately the strictest choice available: one short flight shrinks the whole series. It is also the honest one — ground nobody flew on that date cannot be in its total.
◆ In your inbox
Monday morning, if a site moved
Nobody opens a mapping platform to check whether anything happened. The weekly email exists so the platform tells you instead — and so a site that has been quiet for a month costs you no attention at all.
Weekly, Monday
And only if a site gained a finished flight in the last 7 days. A quiet site costs you no attention at all.
Net, cut, fill, acres
For the two flights it compared — named by date, since they are not always the last two — with a link straight into that site’s timeline.
To everyone on the account
Every member plus the billing address. The person watching the earthwork is usually not the person who pays for it.
Sites work themselves out
Repeat visits to one job are grouped by the ground they actually cover, so there is nothing to file or name first.
Once per new flight
A missed or repeated run cannot double-report a comparison you have already been sent.
One click to stop
An unsubscribe link in every one, and the same opt-out that governs everything else we send you.
◆ The other half of the feature
What it refuses to do
Anything will subtract two surfaces and print a number. What makes a progress figure worth putting in front of a client is the set of cases where the software declines to produce one — and tells you which case you are in.
| ✗ WILL NOT | Put a volume on two flights from the same day Two captures hours apart are a reprocess, or one survey flown twice — not progress. The difference between them is measurement noise spread over the whole site, and integrating noise across thirty acres produces a large, confident, meaningless number. The first rehearsal of the weekly email was about to announce 29,153 cubic yards moved over a zero-day period. It now says why it is not reporting one. |
| ✗ WILL NOT | Difference a photo reconstruction against a processed export A surface reconstructed here from raw photos and one lifted from an export your desktop software already processed are not built the same way, and subtracting one from the other measures the pipelines as much as the ground. On a real pair it invented about 27,000 cubic yards. The weekly email refuses outright and reaches past the mismatch to the last flight that genuinely matches; the compare page warns you instead, because there you picked both deliberately and may want it anyway. |
| ✗ WILL NOT | Measure two flights that do not line up Aligning flights removes a constant offset between them. Where the surfaces are warped relative to each other rather than simply shifted, whatever survives that is not earthwork. You get the reason and the fix — ground control shared across flights — in place of a figure. |
| ✗ WILL NOT | Fill in a period it could not measure The period is reported as not measurable, the running total breaks there, and the line resumes dashed. A solid line climbing past a gap reads as a measured total, which would quietly assume nothing moved in between. |
| ✗ WILL NOT | Quietly drop a flight it cannot use A project with no elevation surface to difference is named and excluded from the series, with what to do about it, rather than disappearing from the chart. |
| ✗ WILL NOT | Hide it when the total and the periods disagree The total is measured directly, first flight against last. The periods each carry their own alignment. Where the two answers differ by more than a tenth, the panel shows both and explains the drift instead of picking a winner. |
| ✗ WILL NOT | Email you when there is nothing worth saying If every site came back unmeasurable for reasons you cannot act on, no email goes out at all. Staying quiet does not consume the news either — when the site becomes measurable, that flight is still reported. |
| ✗ WILL NOT | Let an upload date pass for a flight date Projects dated by upload rather than capture are labelled as such on the compare page, because elapsed time — and every rate read from it — depends on which clock you are on. See below. |
| ✗ WILL NOT | Measure more than 6 sites for one account in one run A busy account’s remaining sites are carried into the following week’s email rather than dropped. Measuring is real work, and a mail run that grows without bound is one that eventually stops arriving. |
Every one of those is a refusal we shipped after the feature worked, because the number it produced was wrong in a way that looked right. They are listed in the changelog with the releases that introduced them.
◆ The clock
A flight is dated by when you flew it
Until August 2026 every project here was dated by the moment it finished uploading, and everything read off the calendar inherited that. One of our own sites was flown eight days apart and uploaded three days apart, so its progress was being reported over three days instead of eight — making the rate of work look more than twice what it was.
Volumes were never affected. A volume is the difference between two surfaces and does not depend on the calendar. Rates, durations and “yards per week” do.
DroneFlow now reads the real capture time out of your raw flight photos and dates the project by that, including projects you uploaded before the change. An already-processed export usually carries no flight date anywhere — a DJI Terra project encrypts its own metadata and renames every photo on import — so those still fall back to their upload date, and the compare page tells you which projects those are instead of letting one kind of date pass for the other.
◆ Before you start
What a progress series needs
Two flights of the same ground
Cut and fill are a difference, so one capture measures nothing. The flights do not have to cover identical extents — only overlap — and the series is measured across the part they all share.
Elevation data on each one
Every period differences two elevation surfaces, so each flight needs one. A project processed without elevation data is named and left out; reprocessing it generates one.
Ground control, if it has to hold up
Volume change between flights without shared ground control is approximate — which is stated in the app and in the email, not just here. Control shared across flights is the single biggest thing you can do to make these numbers defensible.
Both the timeline and the weekly email are on every plan, including the free trial. See pricing, or what you can upload.
◆ Who it is for
Anyone who has to say what happened this month
Earthwork contractors reporting production, developers reporting to a lender, owners’ reps checking a claim, and the surveyors who fly for all three.
Full platform trial. No credit card required.