November 10, 2026 · Rotor Rate · Reviewed November 2, 2026
Reflys, Without the Headache: How Rotor Rate Tracks a No-Charge Return Visit
A redo flight is on you, not the client — but it still burns gas, miles, and an afternoon. Here's how to log that return trip so you keep the tax write-off without awkwardly re-billing anyone.
Every working drone pilot eventually has to fly a job twice. The exposure was off, the wind kicked up before the orbit finished, the network rejected an upload, the homeowner forgot the trash cans. The reshoot — the refly — is on you, not the client. There's no second invoice and no extra revenue. There is still real drive time, real fuel, real wear on the gear, and a chunk of an afternoon you'll never bill for.
The temptation is to not log it at all. That's a mistake. The trip is still tax-deductible business mileage. The fuel is still a real expense. And if you're trying to figure out which platform or deliverable type triggers the most reflys (so you can quote them more conservatively next time), you need the data.
This is how Rotor Rate handles it.

What "is_refly" actually does
Every saved mission in Rotor Rate carries an `is_refly` flag. When you mark a mission as a refly (either at save time, or by editing an existing pending/awarded mission), three things change:
- The "What's being offered" / flat-rate field is no longer required. The red "outline + asterisk + please-enter-an-amount" gate is suppressed. The field defaults to $0, with the helper text "(refly — no additional payment)" sitting where the rate band normally sits.
- The save-blocking gate is bypassed. Normal missions won't save without a positive offer or a site input — for refly missions, that gate doesn't apply.
- The mission still tracks everything else. Drive time, miles, on-site hours, expenses, post-processing time — all of it logs exactly the way it does on a paid job. Only the revenue line is zeroed out.
The result: a refly mission shows up in your pipeline as a real flight, with a $0 line item and the mileage/expenses tied back to the original mission. Refly missions are automatically excluded from your payout tracking and dashboard revenue math.
Why the no-revenue path matters for taxes
A refly is a business trip. The Internal Revenue Service (IRS) doesn't care that you didn't bill the client — it cares that you drove for business purposes. If your mileage log doesn't show the trip, you don't get the deduction. If you bury the trip into the original mission's mileage, your books on that paid job get distorted (the per-job effective $/hr looks worse than it really was, and the per-job profit number is wrong).
Logging the refly correctly keeps both ledgers honest:
- The original paid job keeps its real cost basis.
- The refly trip is a separate $0-revenue entry, but Rotor Rate treats the refly mileage as an expense tied to that original mission—ensuring that mileage rolls into your annual deduction at the IRS standard rate without inflating your revenue expectations.
Flagging a mission as a refly
There are two ways:
- At save time. When you're saving a fresh mission you already know is a reshoot of a previous one, toggle the Refly checkbox in the save dialog. The offer field accepts $0 (or whatever you negotiated, on the rare cases when you charge for a reshoot — say a network refly fee).
- From the Workspace. Open an existing pending or awarded mission, edit it, and flip the refly toggle. The required-field state and red outlines disappear immediately; you can save without entering an offer.
If you click Open in calculator on a refly mission, the Flat-Rate Evaluator now opens with the refly state pre-applied: the offer field shows the muted "(refly — usually $0)" label and won't block save. (This was a tiny papercut we fixed recently — previously a refly would re-prompt you for an offer every time you reopened it.)
What about chained reflys?
If you have to make a single drive that knocks out two reflys for two different clients on the way back from another job, log them as separate missions and use the chain builder to link them. The chain detector handles $0-revenue legs cleanly — the connecting drive gets allocated, the per-leg mileage stays correct, and the day's total mileage rolls up to your tax log as one continuous trip.
Tracking your refly rate
Once you have a few reflys logged, the data starts telling you something useful:
- Are reflys clustering on a specific network or deliverable type? That's a quoting signal — bake a small reshoot allowance into your future bids on that combo, or push back on the platform's QC standards.
- Are reflys clustering with weather you should have called off? That's a weather-discipline signal — see Weather in Rotor Rate .
- Are reflys clustering on jobs you took below your floor? That's a pricing signal — the cheap jobs were never going to absorb a reshoot.
You can't see any of those patterns if you don't log the trip in the first place.
The takeaway
A refly is a job you didn't get paid for, not a job that didn't happen. Treat it like a real mission with a $0 invoice — log the drive, attach the receipts, mark the flag, move on. Five seconds of admin saves you a tax-time deduction and gives you the data to quote the next one of these jobs more honestly.
Sources & further reading
IRS primary sources
- IRS — *Standard mileage rates
- IRS — *Topic No. 510, Business use of car
- IRS — *About Schedule C (Form 1040)
Rotor Rate companion reads
Related guides
Go deeper on the rest of the drone-pricing topic — same framework, different angle.
Swipe for 4 links →
How to Price Drone Services
The eight factors and bid formula behind every defensible quote.
Drone Photography Pricing hub
Real-estate, brand, and event photo rate ranges with the math behind each.
Drone Mapping Pricing hub
Per-acre rates, processing time, and how to tier large-area jobs.
Drone Inspection Pricing hub
Tower, roof, solar, and infrastructure inspection rate ranges.
Next steps
What to do once you have a number you trust.
Swipe for 2 links →