Home  ›  Guides  ›  From a spreadsheet + Google Earth

You already map your trees. In two files that don't talk to each other.

A spreadsheet of your trees and pins in Google Earth gets you a long way. Here's where it falls down. And here's how OrchardHQ picks up from that exact spot, using the data you already have.

The real competition isn't a rival app. It's a spreadsheet plus Google Earth. And it's a grand setup. It's free. It's familiar. It bends to whatever you want. Plenty of good orchards run on nothing else, so this guide won't pretend it's useless. It'll show you the seams. The places where two separate files start costing you time, and where one live record starts earning its keep. Then it'll walk you through bringing your CSV and your Google Earth pins straight in. You don't re-type a thing.

Where the spreadsheet-and-Earth setup wins

Let's be fair before we're persuasive. The old setup genuinely beats a purpose-built app on three counts:

Those are real. If your orchard is a dozen trees you know by heart, stop here. You don't need us. The case for switching starts when the two files stop keeping up with the orchard.

Where it breaks

Every row below is something the spreadsheet-and-Earth pair can technically do. It holds up until the orchard is real, in the field, and shared with someone else.

  Spreadsheet + Google Earth OrchardHQ
Where your data lives Two files. The names and varieties in the sheet; the positions in Earth. Nothing links a row to a pin except your memory. One live record per tree. Position, variety, history and photos, all in the same place.
In the field Your phone shows a static export, if it opens at all. Edits wait until you're back at the laptop. Offline-first mobile capture. Add a tree, a note, a photo or a voice memo with no signal. It syncs when you're back.
Finding a tree on the ground "Row 4, seventh along… I think." You match pins to trees by eye. Your GPS dot moves on the satellite map and the nearest trees light up. The Android app even names the tree you're pointing at.
Per-tree history & photos A cell can hold a date. A photo lives in your camera roll, unlinked. Last year's note overwrote this year's. A dated timeline per tree. Observations, actions, harvest weights, photos. Nothing overwritten.
Disease / pest diagnosis You Google the symptom and guess. Photograph the leaf. You get a probable diagnosis, the differentials, and follow-up tasks scheduled to the right month.
Tasks & reminders A separate to-do list, or none. Nothing ties "prune" to a specific tree. Tasks scoped to a tree or a block, tickable when done. Follow-ups from a diagnosis appear on their own.
Pollination & planning You reason about variety spacing in your head or on paper. The planner lays out variety mix, grid and pollination. A satellite overlay scores each tree's pollination partners.
Analytics & reporting You build a pivot table by hand, if you build one at all. Counts, variety mix and averages are a fresh job every time you need them. Analytics built in. Variety mix, tree ages, yields and observation trends for the whole orchard or a single block, and never a formula to write.
More than one person Email the file around. Now there are three versions and you're not sure which is current. One shared orchard, multiple users, last-write-wins. Everyone sees the same live record.
Data integrity A mistyped coordinate is silent. "Final_v3_REAL.xlsx". Which file is current? One source of truth, client-generated stable IDs per tree, edits merged rather than clobbered.
Handover "Here are the files, good luck." The tacit knowledge stays in your head. Hand over an account. The map, history and tasks are self-explanatory to the next person.
Getting your data back out It's already yours. That's the one thing this setup nails. Also yours, always. Export every tree to CSV, GeoJSON or KML any time. No lock-in. That's a promise, not a setting.

Notice the last row: we don't beat the spreadsheet on data ownership, we match it. Anything you put into OrchardHQ, you can take straight back out in the same open formats. That's the deal.

"But I already have my data."

Good. That's the whole point. You don't start from scratch. OrchardHQ imports the two files you already keep. Your spreadsheet as CSV, and your Google Earth pins as KML. Below are both, step by step. Whichever you start with, you can fill the rest in inside the app afterwards.

Where the Import button lives. Open your orchard's Trees view. In the left nav rail, choose Import (it's alongside Export; on a phone it's under the overflow “⋯” menu). The dialog reads: “Import trees from a GeoJSON, KML, or CSV file.” Hit Choose file…, pick your file, and OrchardHQ tells you how many trees it created or updated.

From Google Earth (KML)

Google Earth stores each pin as a placemark. That's a named point at a latitude and longitude. It's exactly what OrchardHQ needs to drop a tree. The bridge is a .kml or .kmz file.

  1. In Google Earth (Pro / desktop), find the folder in the left sidebar that holds your tree pins.
  2. Right-click that folder → Save Place As…
  3. In the save dialog you can keep the default KMZ, or pick KML (.kml). OrchardHQ reads both, so either is grand. Then save.
  4. In OrchardHQ, open your orchard's Trees view → ImportChoose file… → select your .kml.
  5. Each placemark becomes a tree at its exact coordinates. The placemark's name becomes the tree's label; its description, if any, becomes the tree's notes.

KML or KMZ, both work. Google Earth saves .kmz by default. A KMZ is just a zipped .kml, and OrchardHQ imports it directly now. Nothing to rename, nothing to unzip. Import the .kmz straight from Google Earth, or a plain .kml if that's what you saved. Both land the same trees.

From Google Earth you get position and name, plus any description as notes. What it can't know is variety, rootstock, planted year and fruit type. Google Earth never stored those. You add them per tree in the app afterwards, or bring them in through the CSV route below and let the two meet up.

place /guide/images/import-google-earth-saveplace.jpg · 1200×680 · Google Earth Pro: right-click a folder of tree placemarks → "Save Place As…" as KML or KMZ (both import)

From a spreadsheet (CSV)

A spreadsheet becomes a .csv file. OrchardHQ reads a set of column headers. Case doesn't matter, order doesn't matter, and extra columns are ignored. The two that actually place a tree on the map are lat and lng. A row with no coordinates is skipped on import, since there's nowhere to put it.

The columns OrchardHQ reads

Save your sheet as CSV (in Excel or Google Sheets: File → Download / Save As → CSV), making sure the header row uses those exact names. Then Import → Choose file… → pick the .csv. A minimal file is just three columns:

label,lat,lng
A-01,53.0623,-8.8156
A-02,53.0624,-8.8157
A-03,53.0625,-8.8158

And a fuller one, using every column OrchardHQ reads:

id,label,fruit_type,variety,rootstock,planted,status,lat,lng,notes
,A-01,apple,Dabinett,MM106,2021,planted,53.0623,-8.8156,corner tree
,A-02,apple,Michelin,MM106,2021,planted,53.0624,-8.8157,
,P-01,pear,Conference,Quince A,2022,planted,53.0625,-8.8158,near the gate

That header row is exactly what OrchardHQ's own CSV export produces. So the tidiest workflow of all goes like this. Import your trees once, however you like. Then Export CSV, edit the whole orchard in a spreadsheet you already know, and re-import. The id column matches each row back to its tree, so nothing is duplicated.

place /guide/images/import-csv-dialog.jpg · 1000×750 · OrchardHQ Import dialog open, showing "CSV expected columns: id, label, fruit_type, variety, rootstock, planted, status, lat, lng, notes" and the "Choose file…" button

Using both files together

Most growers have the split we started with. The positions live in Google Earth. The variety, rootstock and planted year live in the spreadsheet. Here's how to end up with one tree that carries both, and no duplicates.

  1. Import the KML first. Every pin becomes a tree at its right spot, named from the placemark. That name is the tree's label.
  2. Make sure your spreadsheet has a label column that matches those names. Add your variety, rootstock and planted columns. You do not need coordinates in the spreadsheet.
  3. Import the CSV. Each row is matched to a tree by its label. A matched tree is updated in place. It keeps the position from Google Earth and takes the detail from your sheet. No new tree is made.

The label match is case-insensitive and ignores spare spaces, so A-07 and a-07 are the same tree. If a label is missing, or two trees share the same label, that row cannot be matched safely. It is created as a new tree when it has coordinates, or skipped when it does not.

When your labels are messy or repeated, use the round trip instead. Import the KML, export CSV straight back out, and every tree comes back with its OrchardHQ id and its lat/lng filled in. Paste your columns alongside, leave the id column as it is, and re-import. The id match is exact, so nothing doubles up.

What carries over, what you fill in

Between the two files you'll usually have the lot. Positions come from Google Earth, or from the lat/lng columns. Variety, rootstock and planted year come from the spreadsheet. Where a field is missing, and Google Earth never stores variety, it comes in blank and you edit it per tree in the app. Nothing is required except a position.

And your data is never held hostage. At any point you can Export the whole orchard back to CSV, GeoJSON or KML. You came in from open files. You can leave the same way. That's the anti-lock-in promise, and it's the one row in the table above where the old setup and OrchardHQ are dead level.

Stuck on an import, or your file's in a shape we didn't cover? hello@orchardhq.app. Send us the file and we'll help.

Bring your trees in and see them on the map.

Try the demo → Request access →