Setting up
Name the station (helps if you're logging more than one site), and add your initials — both get used later when you export to Google My Maps. It opens tracking one hornet by default — tap + add another hornet at the bottom of the grid to add more, up to six, matching your marking colours. Tap a colour dot to change it, or tap a name to rename it. Tap the ✕ on a card to remove that hornet.
Timing a flight
- Tap Departed the moment your marked hornet leaves the bait. If the compass is enabled it grabs a bearing automatically; otherwise type one in.
- Tap Returned when she's back. That logs the flight time and whatever bearing is currently in the field.
- Up to 8 flights are kept per hornet — oldest drops off once you go over.
Someone else timed it for you
Use the small entry row under the main button. Both of these mean 1 minute 32 seconds:
| You type | Reads as |
|---|---|
1:32 | 1 min 32 sec |
1.32 | 1 min 32 sec |
92 | 92 seconds (no minutes) |
Add a bearing alongside it if you were given one.
Setting the bait station location
Under the main toolbar is a three-way switch for where the bait station actually is. Whichever you pick feeds into everything that needs a starting point — the nest-location estimate, the move suggestion, and the KMZ export all use it consistently.
8FVC9G8F+6X), useful if you're filling in times and bearings later away from the site, or if someone's texted you the station's code from a previous visit. Works fully offline, since decoding a Plus Code is just arithmetic — no map, no signal needed.
https:// to work at all — which it is, since you're using it at rjsenior.co.uk. If it ever stops working, check you haven't opened a local copy of the file instead of the live address, and check your phone hasn't blocked location/motion permission for the page in its browser settings.
Separately, tap Enable on the compass banner to turn on bearing capture. After that, the 🧭 button next to each hornet's bearing field grabs your phone's current heading whenever you tap it.
Reading the numbers
Once a hornet has at least one logged flight, each card shows average return time, an estimated distance ((seconds − 36) × 1.72), and the average bearing. Treat this as a guide — wind and terrain shift it.
Estimating the nest location
Tap 📍 Estimate nest location once you've got a distance and bearing. It projects a point from your current phone position and gives you:
- A Plus Code — a short Google address code you can read aloud, no app or signal needed to generate it
- A direct link to open that spot in Google Maps
This stacks estimate on estimate, so treat it as "search roughly here," not an exact pin.
"Consider moving station" tip
Once a hornet has 4+ logged flights and the average return time goes over 1:30, a tip appears suggesting you shift the bait station further along the bearing rather than keep timing from the same spot. Tap 🚶 Suggest a closer monitoring spot for a Plus Code roughly halfway to the current estimate.
Saving your log
Tap Save as PDF in the header. It builds a plain black-on-white record of every hornet's flights, averages, and any nest-location or move suggestions you've resolved, then opens your phone's print dialog — choose "Save as PDF" there.
Exporting to Google My Maps
Tap 🗺️ Export lines (KMZ) in the header. It builds a single downloadable file containing:
- A pin at the bait station, named with the station name, your initials, and the date — e.g. "Rue du Câtel, hedge line JR 24/8".
- One line per hornet, drawn from the average bearing and the average of the fastest 3 flights, out to the estimated distance. Named the same way, plus that hornet's marking colour and numbers — e.g. "White 310° 3m05s JR 24/8".
Tapping a line in My Maps shows every flight logged for that hornet in its description — not just the average — so nothing you recorded is lost even though the line itself only draws the summary.
.kmz file. The bait station pin and every hornet's line get added into that layer alongside whatever's already there.
Data, cookies & GDPR
Short version: the page doesn't collect, store or send anywhere anything you type into it.
Because nothing is collected, stored, or processed beyond your own device and your own momentary use of it, there's no personal data here in the sense GDPR is generally concerned with.
Version history
The small text under the tracker's title (e.g. "v 24/08/26") is the date of the last change made to the tool. Check it against the list below if you want to know whether you're on the latest build.
KMZ export rebuilt: the bait station pin now uses the same marker icon as manually-placed pins in Google My Maps, and is named from the station name, your initials, and the date. Each hornet gets one line built from its average bearing and fastest-3 flight time, with every individual flight logged in the line's description. Placemarks no longer sit inside a folder, so repeated imports don't eat into My Maps' layer limit. Added a 🗺️ Pin on map option (OpenStreetMap, via Leaflet) alongside GPS and Plus Code for setting the bait station location, with a collapsible map so it's out of the way once you've placed a pin. Added a Recorder initials field. Removed the separate +/− hornet counter (redundant with "add another hornet" and the ✕ on each card) and the editable move-station threshold (now fixed at 1:30).
Added a bait station origin toggle (📍 current GPS location, or a typed Plus Code), so the nest-location estimate, move suggestion, and export could all work from a fixed point rather than requiring you to be standing at the station. Added the original KML export (bait station pin plus one bearing line per hornet) for pulling flight lines into Google My Maps. Logo and footer tidied up.
Added the ability to change each hornet's marking colour and name to match your own convention. Fixed compass bearings silently failing on Android — caused by opening the file locally (
file://) rather than over https://, which blocks sensor access outright. Added a live heading readout so you can confirm the compass is actually reading before relying on it.
Added a credit line in the footer and a comment in the source.
The original tool: timing up to 6 hornets at once (White/Green/Blue/Pink/Orange/Red), tap to start and stop a return flight, compass-assisted bearing capture with manual entry as a fallback, distance estimate from Alastair's formula, and a proper circular average of bearings.
The maths behind the tool
Credit where it's due: the distance formula and the scatter chart it's built on come from Alastair Christie's Asian Hornet Nest Tracking briefing for the Government of Jersey (Infrastructure, Housing and Environment, 23 July 2026) — this tool just automates the arithmetic he and the Jersey Asian Hornet Group already worked out from real, measured flight-to-nest data.
The briefing's rule of thumb is roughly 100m of distance per minute of return flight time — simple, and good enough for a quick read. But plotting actual return flight times against the real, later-confirmed distance to each nest (the scatter chart in the briefing) shows that simple rule undercounts short flights and overstates very long ones, because a chunk of every return flight is time spent arriving at and feeding on the bait, not travelling. Fitting a line through that scatter gives a more accurate formula, which is what this tool uses:
distance (m) = (flight time in seconds − 36) × 1.72The "−36" accounts for that fixed arrival/feeding time before she's actually heading home; the 1.72 is the fitted speed term. It's still a guide, not a survey measurement — the briefing's own chart shows real scatter of a hundred metres or more either side of the line once flights run past two or three minutes, since wind, terrain, and how deliberately a hornet flies all vary. Flights under 36 seconds don't get a distance estimate at all, since the formula would go negative.
The "Avg return time" shown for each hornet isn't a plain average of every logged flight — it's the average of the 3 fastest flights (or fewer, if you've logged fewer than 3). That's deliberate: a return flight can only get padded longer by feeding delays, detours, or headwinds, never shorter than the true straight-line flight. So the fastest readings sit closest to reality, and a slow, distracted flight dragged into a plain average would only push the distance estimate too high, never correct it. Averaging the fastest 3 rather than trusting a single fastest reading also guards against one mistimed flight (clock started a beat late, say) skewing the whole estimate.
You can't just average bearing numbers directly — two readings of 350° and 10° are only 20° apart in reality, but a plain average gives 180°, the exact opposite direction. The tool instead treats each bearing as a point on a compass, converts it to an x/y position, averages those positions, and converts back to an angle. That handles the wraparound at 0°/360° correctly no matter which readings you've logged.
For "Estimate nest location" and "Suggest a closer monitoring spot," the tool takes your phone's current GPS position and projects a point outward using the average bearing and distance — proper spherical-earth geometry (a forward geodesic calculation), not a flat-map approximation, so it stays accurate however far you project it. The "closer spot" suggestion projects to roughly half the estimated distance, a sensible starting nudge along the correct line rather than a precise instruction — hedges, fences, and access will often matter more than the exact metre count.
The short code shown alongside coordinates (like
8FVC9G8F+6X) is a Google Plus Code — officially called Open Location Code. Unlike some location-sharing systems, it's a fully open, published algorithm: no API, no account, no internet connection needed to generate one, and it's built into Google Maps' own search. It works by dividing the globe into a grid and encoding your position within that grid as a short string of letters and numbers, getting more precise the more characters you add. This tool generates a standard-precision code, accurate to roughly a 14m square, which is well within the accuracy the flight-time estimate can offer anyway.