The Farm Record-Keeping System That Finally Kept My Soil Reports, Field Photos, and Spray Logs in One Place
Build a farm record-keeping system in Google Sheets that tracks soil reports, field photos, spray logs, and harvest data — without losing files between seasons.
Last April, my crop insurance adjuster asked for the soil test results from our east quarter — the ones we'd had done eight months earlier — and I spent forty-five minutes digging through a folder on my wife's laptop, my email, the co-op's portal, and a filing cabinet in the shop before I found them folded inside a seed catalog. That was the moment I admitted our "system" was no system at all. We farm 1,400 acres of corn and soybeans in central Illinois, and the amount of documentation that piles up between planting and harvest is genuinely absurd: soil reports, tissue samples, spray records, seed treatment tags, calibration sheets, drone photos, yield maps, FSA paperwork. Every piece of it matters — for compliance, for insurance, for figuring out why the hell Field 12 yielded 30 bushels less than the field across the road.
I'm not going to tell you about some $15,000 precision ag platform. I built our record-keeping system in Google Sheets because that's what I already had open, and because the real problem was never computation — it was that files lived in seventeen different places and none of them talked to each other. Here's the system that survived two full growing seasons, an insurance audit, and a custom applicator who swears he "sent that spray report already."
Why Farm Record-Keeping Falls Apart (It's Not Laziness, It's Architecture)
Most farmers I know aren't disorganized people. You can't plant 800 acres in a weather window and be disorganized. The problem is that farm records come in from a dozen different sources in a dozen different formats, and nothing connects them. Your agronomist emails a PDF soil report. Your custom applicator texts a photo of the spray ticket. The seed dealer hands you a paper tag. The drone pilot uploads images to some cloud folder you forget the password to. FSA sends letters. Crop insurance wants everything by a date you didn't write down.
So you end up with what I call the "shoebox problem" — everything exists, nothing is findable, and the stress only hits when someone asks for something specific. An insurance adjuster. A landlord. An NRCS auditor. That's always when you're also in the middle of side-dressing or combining, which is exactly when you don't have time to play archaeologist in your own files.
The fix isn't a fancier app. It's a single spreadsheet organized by field, with every document attached to the row where it belongs. That's what I built, and that's what I'll walk you through.
The Core Tab: One Row Per Field, Every Season
The backbone of the whole system is a tab I call "Fields – [Year]." Each row is one field (or management zone, if you split fields). The columns cover the lifecycle of that field for the season. Here's my actual column setup:
- Field Name / ID — whatever you call it ("East 80," "Johnson North," the FSA tract-field number)
- Acres — net planted acres, not legal description acres
- Crop — corn, beans, wheat, cover crop, etc.
- Landlord — if you're renting, this matters more than you think when it's time to share yield reports
- Soil Test Date — when the last test was pulled
- Soil Report — this is where the PDF lives, attached right in the cell
- Fertility Plan — the PDF or photo from your agronomist
- Seed Variety — hybrid or variety planted
- Planting Date — actual date planted
- Seeding Rate — seeds/acre as planted
- Pre-Emerge Application — product, rate, date
- Post-Emerge Application — product, rate, date
- Spray Records — attached PDFs or photos of applicator tickets
- In-Season Notes — tissue sample results, stand counts, replant decisions
- Field Photos — scouting photos, drone images, problem spots
- Harvest Date — actual date harvested
- Yield (bu/ac) — actual yield
- Moisture % — at delivery or at the elevator
- Yield Map — attached file from the monitor
- Status — Planning / Planted / Growing / Harvested / Records Complete
That's a lot of columns, I know. But here's the thing: you're already tracking most of this. It's just scattered across texts, emails, a notebook in the tractor cab, and your memory. Putting it in one row per field means that when the adjuster calls about the east quarter, you open one sheet and everything's there — including the actual files.
Attaching Soil Reports, Spray Tickets, and Field Photos to the Actual Row
This is the part that changed everything for me. Before, I'd put "see email from AgriGold 3/15" in a cell and pretend that was a system. It wasn't. When you actually need that soil report six months later, you're not going to find that email. You're going to curse, dig through three inboxes, and call the agronomist to resend it.
What I needed was a way to drop the actual PDF — the soil report, the spray ticket photo, the drone image — right into the cell next to that field. Google Sheets doesn't do this natively. You can paste a Drive link, but that requires you to upload the file to Drive first, organize it in a folder, copy the link, and paste it. Nobody does that consistently from the cab of a combine.
I started using FileFox for this, and it's the one piece that made the system stick. You drag a file — a soil report PDF, a photo from your phone, a spray ticket your applicator texted you — and drop it directly into the cell. It stays attached to that field's row. When the adjuster asks for the soil test on Field 12, you click the cell and there it is. No Drive folder spelunking. No email archaeology.
The specific files I attach most often, in order of frequency: spray applicator tickets (photos from the custom guy), soil test PDFs from the lab, scouting photos I take on my phone, seed treatment tags (photographed before they blow away), yield monitor exports, and the occasional drone orthomosaic. Every one of those used to live somewhere different. Now they all live in the row for that field.
The Spray Log Tab: Because Your Applicator's Records Aren't Yours
I keep a separate tab specifically for spray applications because this is the area where documentation requirements are strictest and where I've been burned the most. Your custom applicator is legally required to keep records, sure. But when a dicamba complaint lands on your desk or a neighbor calls about drift, "my applicator has it" is not a comfortable answer.
My Spray Log tab has one row per application (not per field — some days I'm spraying three fields with the same tank mix). Columns:
- Date of Application
- Field Name / ID
- Product(s) Applied — full trade names, not abbreviations
- Rate (per acre)
- Total Volume Applied
- Applicator Name — you or the custom guy
- Wind Speed at Application — yes, record this
- Temperature at Application
- Spray Ticket / Record — attached file (photo or PDF)
- Restricted Use? — Y/N dropdown
- Buffer Requirements Met? — Y/N with notes
- Notes — any observations, mixing order, adjuvants
When my applicator sends me a photo of the ticket (which is how 90% of these arrive — a text message at 9 PM), I save the photo and drop it into the Spray Ticket column for that application. Takes about thirty seconds. The alternative is letting those photos pile up in my camera roll until they're impossible to find, which is exactly what happened for three years before I built this.
Tracking Expenses Without Losing Receipts Between the Farm Store and the Filing Cabinet
Tax season on a farm is its own special kind of misery, and the worst part isn't the math — it's finding the receipts. That $4,200 parts invoice from the dealer. The $800 cash payment to the kid who helped haul grain. The three separate fuel receipts from a single week of combining. If you're running Schedule F, every one of those matters.
I added an Expenses tab with a simple structure: Date, Vendor, Category (dropdown: Seed, Chemical, Fertilizer, Fuel, Repairs, Custom Hire, Rent, Insurance, Misc), Field (if applicable), Amount, Payment Method, and — critically — a Receipt column where I attach the actual receipt. I photograph paper receipts the day I get them. Digital invoices get dropped in the same day they arrive in email.
The category dropdown is key. At year-end, I use a simple SUMIF to total each category:
That gives me a seed cost total in about two seconds. Replicate for each category and I've got a rough P&L by the time I sit down with my accountant in February. She used to spend the first hour of our meeting sorting through a shoebox of receipts. Now she opens the spreadsheet, clicks through the attached receipts, and we're done in half the time. She actually thanked me, which tells you how bad it was before.
The Dashboard Tab: What's Done, What's Missing, What's Going to Bite Me
Once you have your Fields tab, your Spray Log, and your Expenses tab running, you need one more thing: a way to see what's still incomplete without scrolling through 40 rows of data. I built a simple dashboard tab that pulls from the other tabs and shows me three things at a glance.
- Fields missing a soil report (so I know what to chase before planting decisions)
- Fields with no spray records attached (so I can hound my applicator)
- Fields marked "Harvested" but with no yield data entered yet (so my year-end reports aren't half-baked)
The formulas are simple COUNTIFs. For example, to count fields that are marked "Harvested" but have no yield entered:
If that number is anything other than zero after November, I know I've got holes to fill. It's not fancy. It doesn't need to be. It just needs to show me what's incomplete so I can fix it before someone asks for it.
I also added a UNIQUE list of landlords with a SUMPRODUCT that totals their acres and average yield, so when it's time for those year-end conversations I have a one-page summary ready. Landlords remember the operators who show up with data. It matters when the lease is up for renewal.
Making It Work From the Cab, Not Just the Office
The best farm record system is useless if it only works at your desk. I do 80% of my data entry from my phone — in the truck, in the tractor, or standing at the edge of a field. Google Sheets on mobile isn't beautiful, but it works. Here's how I keep it from being painful:
- I freeze the first two columns (Field Name and Acres) so I always know which row I'm on when I scroll right on a small screen.
- I use data validation dropdowns for anything repeatable — crop type, status, expense category, applicator name. Typing on a phone in the cab of a tractor is not where you want free-form text.
- I take photos of spray tickets and receipts immediately and attach them the same day. If it sits in my camera roll for more than 48 hours, it's dead to me.
- I keep the sheet bookmarked on my phone's home screen. One tap to open. If it takes more than one tap, I won't do it.
My wife manages the expense tracking side, and she works from her laptop at the kitchen table. We share the same sheet, and filter views keep us from stepping on each other's toes. She filters by expense category to reconcile with bank statements. I filter by field to check what inputs went where. Neither of us breaks the other's view — which, if you've ever shared a spreadsheet with your spouse, you know is the real marriage counseling.
What This System Replaced (And What It Didn't)
To be clear about what I'm not trying to replace: this isn't a substitute for your yield monitor software, your precision ag platform, or whatever your agronomist uses for VRT prescriptions. Those tools are good at what they do. This system lives alongside them. It's the connective tissue — the place where the soil report PDF, the yield map export, and the spray record all converge on a single row for a single field.
What it did replace: a filing cabinet in the shop, a folder on my wife's laptop called "Farm Stuff 2023 FINAL FINAL," about 200 unsearchable photos in my camera roll, and the low-grade anxiety I carried every time someone official asked me for a document. That anxiety alone was worth the setup time.
Total setup time was about three hours for the initial build, including entering all our fields and their current-year data. Ongoing, it takes maybe ten minutes a week to keep current — mostly attaching files as they come in. Ten minutes a week to never lose a soil report again is a trade I'll take every time.
If you're still running on the shoebox-and-email-and-memory system, start with one thing: open a blank Google Sheet, create a tab called "Fields," and list every field you farm with its acres and this year's crop. That's it. Don't build the whole system today. Just get the field list down. Tomorrow, attach one soil report. The next day, add a spray record. By the end of the week, you'll have a system that's already better than what you had — and you'll wonder why you waited so long.
Frequently Asked Questions
What farm records am I legally required to keep in a spreadsheet?
Legal requirements vary by state, but at minimum you need restricted-use pesticide application records (product, rate, date, location, applicator) for 2–5 years depending on your state. If you participate in USDA programs, FSA and NRCS may require conservation compliance records. Your crop insurance provider also has specific documentation requirements — soil tests, planting dates, and yield records are the big ones. Check with your state Department of Agriculture for exact requirements.
Can I use Google Sheets for farm record keeping on my phone in the field?
Yes, and that's how I do most of my data entry. The Google Sheets mobile app lets you view and edit cells, use dropdown selections, and with FileFox you can attach photos directly from your phone's camera. Freeze your first two columns (field name and acres) so you always know which row you're editing on a small screen. Cell service can be spotty in rural areas, but Sheets caches recent edits and syncs when you get a signal.
How do I organize soil test reports so I can find them years later?
Attach each soil report directly to the field's row in your spreadsheet, in a dedicated "Soil Report" column. Name the file with the field name and sample date (e.g., "EastQuarter_SoilTest_2025-03"). When you duplicate your sheet for a new crop year, the previous year's attachments stay in the old workbook as a permanent archive. This way you can pull up any field's soil history in under a minute.
What's the best free farm management spreadsheet template?
For Google Sheets, a template that includes columns for field-level crop tracking, expense categories, and the ability to attach files (soil reports, spray tickets, photos) directly to rows is the most practical starting point. Look for one that covers the full season lifecycle — planning through harvest — rather than one that only tracks expenses or only tracks yields. The FileFox farm management template does this and is free to copy.
How do I share farm records with my crop insurance agent or landlord?
Use Google Sheets' built-in sharing to give view-only access to specific people. You can share the entire workbook or use the "Publish" feature to create a link to a specific tab. For landlords, I create a filtered view showing only their fields with yield data and share that link. For insurance, I share the full Fields tab so the adjuster can click through attached soil reports and yield maps without me having to email each file separately.