I'm not a lawyer, I'm not the EPA, and this isn't legal advice. I'm an operator in Midland who's been on the wrong end of an inspection. What follows is what I learned about why software-generated tickets beat shared spreadsheets for OOOOa storage tank compliance — and why the cost difference between the two systems is rounding error compared to the cost of getting it wrong.
If you produce oil and gas in the Permian and you've touched anything constructed or modified after September 2015, OOOOa applies to you. The rule has specifics — monthly visual inspections, repair timelines, recordkeeping retention — but the part I want to talk about is the part operators consistently mess up: the documentation.
What "documentation" actually means to an inspector
When an EPA or TCEQ inspector shows up, they don't ask "did you do your inspections?" They ask "show me the records." And then they look for four things:
- Date and time of inspection. Not "May 2024." A specific timestamp.
- Who did it. Named individual, not "the field crew."
- What they observed. Specific conditions, not "looked fine."
- Where they were. The specific tank, well pad, or component — verifiable, not just "the Lazy J battery."
A spreadsheet can store all four. That's not the problem. The problem is whether the spreadsheet can prove all four were captured at the time of the inspection, or typed in three weeks later from someone's memory. Inspectors have seen enough fabricated records to know the difference, and they have enforcement tools to find out.
The spreadsheet failure modes
I'll name the ones I've seen first-hand or heard about from operators who got fined:
1. The "Monday catch-up"
The crew is supposed to inspect tanks monthly. Foreman ends up filling in three months of inspections on a Monday morning because nobody updated the spreadsheet in the field. Inspector pulls metadata from the file: every row created within a 4-hour window. Audit finding.
2. The "copy-paste"
Every row has identical observations because someone copied the previous month's notes. "No visible leaks, no audible hissing, gauge reading nominal" times 36 entries. Inspector knows you didn't actually look. Audit finding.
3. The "wrong site"
Crew member fills out the row for Tank 14 when they were actually at Tank 17. Two weeks later nobody can reconstruct which tank actually got inspected. Audit finding.
4. The "missing months"
Someone deleted a row to clean up the file. Or three months got copied over with no edits. Either way, the chain of evidence has a hole. Audit finding.
EPA civil penalties under the Clean Air Act can reach $51,796 per day per violation as of 2024 inflation adjustments. Even at a fraction of that, a year of missing or fabricated tank records can settle into the six or seven figures. The spreadsheet doesn't save you the money it costs you.
What "ticket-grade" documentation looks like
A ticket-grade inspection record is created in the field, on a phone or tablet, at the moment of the inspection. It captures four things automatically that a spreadsheet can't:
Automatic timestamp
The system timestamps when the form was opened, when it was submitted, and where the phone was at submission. The inspector can compare those to your shift logs. They match. Done.
GPS coordinates
The phone records lat/long at submission. If you said you inspected Tank 14 at the Lazy J battery, the GPS coordinates better match that tank's location within a reasonable margin. Inspectors can and do check this.
Photos linked to the record
Most software lets the inspector attach 2-4 photos of the tank: gauge reading, thief hatch, vent stack. Photos carry their own EXIF metadata — timestamp, GPS, camera. If the photo metadata matches the form submission metadata, the record is bulletproof. If they don't, you have a problem.
Inspector identity
The form requires login. The named individual who did the inspection is recorded, with audit trail showing they were the one who submitted it. No "the crew did it."
Side-by-side: what the inspector actually sees
| Element | Spreadsheet record | Ticket-grade record |
| Date | Whatever was typed | System timestamp, immutable |
| Location | "Lazy J Battery" (text) | GPS coordinates + named site |
| Inspector | "BP" or initials | Logged-in user, full name |
| Photos | Maybe in a separate folder | Attached to record, EXIF matches |
| Edit history | Last-edit timestamp only | Full audit log of every change |
| Provability | "Trust me, we did it" | Multiple independent signals align |
Why the Permian makes this harder
If you're inspecting tanks in suburban Houston, you have cell signal and the crew can submit the ticket in real time. In the Permian, the closest cell tower might be 12 miles away. The ticket has to be created offline, queued on the phone, and synced when the truck gets back into range. The timestamp has to reflect when the inspection actually happened, not when it synced.
That's a software design decision, and most field service apps get it wrong. They either:
- Stamp the record with sync time (which is the wrong time — the inspector wants the inspection time), or
- Don't work offline at all, so the crew either skips the form or fills it out from memory back at the yard.
The right answer is: timestamp the record with phone clock at the moment of form submission, mark it as "offline-created," and capture the GPS at that moment too. When it syncs hours later, the server records sync time as a separate field. Inspector sees both. Both make sense. No problem.
The decision tree I'd use if I were buying right now
If you're an operator trying to figure out whether your current setup will survive an OOOOa audit, here are the questions to ask:
Question 1: When was the last time you actually opened an old inspection record?
If the answer is "I don't know how to find them," your records are not audit-ready. Inspectors will give you 30 days to produce them, and 30 days of scrambling through old spreadsheets and shoebox photos is going to produce a partial set. Partial set is worse than no set.
Question 2: Can a field tech do an inspection without cell signal?
If your system requires connectivity, your techs are skipping inspections or filling them in later. Both are violations waiting to happen.
Question 3: When you produce a record for an inspector, does it include the photos in the same record, or are photos in a separate system?
If photos are in Google Drive and records are in Excel and matching them takes hours, you have evidence in two places and no chain of custody. That's not good enough.
Question 4: Can you produce a year of monthly inspections for a specific tank in under five minutes?
If not, the inspector will note it. Slow record retrieval reads as "you didn't actually do it and you're trying to manufacture something now." That's not a place you want to be.
The economics: A field service app with offline tickets, GPS, photo attachment, and audit log costs you maybe $400/month for a small operator. A single OOOOa violation can settle for $50,000 and up. The software pays for itself the first time an inspector pulls into your yard.
What we do at ROS
I built ReliableTrack so my own crew can't accidentally do this wrong. The tank inspection form is a mandatory step on every storage vessel work order. It requires GPS coordinates within 200 feet of the assigned tank location (we get an alert if it doesn't match). It requires at least two photos. It timestamps at form open and form submit. Inspector identity comes from the logged-in account. The record syncs when we get back to signal, and the audit log records the offline-created timestamp.
When TCEQ has come through, our records have produced in 90 seconds. No spreadsheets, no shoeboxes, no "let me get back to you." That's the difference.
Want ReliableTrack tailored to your tank inspection workflow?
Offline-first inspections, GPS-bound records, EPA-ready documentation. Get started — custom builds delivered in 48 hours.