Lagerland Apps

Journal · · 12 min read · Updated

Your vet paperwork is a household document, and it should never leave the phone

Nobody would upload a photo of their driving licence to a free web tool. Plenty of people photograph the dog's rabies certificate into a cloud pet app without a second thought, and those two documents carry roughly the same household. Here is what is actually printed on vet paperwork, what changes when the image leaves the device, and a four-test checklist you can run on any health app before you trust it with the drawer.

Ask someone whether they would upload a photo of their driving licence to a free web tool and they will say no straight away.

Ask the same person to photograph the dog’s rabies certificate into a pet app and they will not think about it at all. It is the dog’s certificate. The dog does not have a credit rating.

People file the certificate mentally under the pet, but on paper it is a document about a household with an animal named in it. This post is about that mismatch between how the document feels and what it contains.

What is actually printed on a vet invoice or vaccination certificate?

Pull one out of the drawer and read it field by field. The exact layout varies by country and practice-management software, but the contents are very consistent.

What is printed Whose data is it Why it matters if it leaves
Owner full name Yours The primary identifier on every other field below
Home address Your household Physical location, tied to a name and a phone number
Phone number, often email Yours The two fields that make a record joinable to other databases
Animal name, species, breed, DOB, sex The pet Common security-question and password-reset material
Microchip transponder code The pet, registered to you A permanent, unique, lifelong identifier for the animal
Clinic name and address Third party Places you geographically, often within a few kilometres of home
Treating vet’s name, sometimes licence number Third party Professional identity, not yours to redistribute
Drug names, dose, route, batch or lot number Clinical Health data about the animal; batch numbers are traceable to supply
Diagnosis or presenting complaint Clinical The most sensitive line on the page, and often free text
Invoice number, date, amount, payment method Financial Sometimes a masked card reference or a practice account number

Two of those deserve a closer look.

The first is the microchip code, which identifies more than the pet. Transponders sold today generally follow the ISO 11784/11785 standard and carry a 15-digit code, while older chips in the United States may be 9 or 10 digits (Wikipedia’s summary of animal microchip standards is a decent overview of the encoding). That code is the key into a registry that holds your name, address and phone. Anyone can type a chip number into the AAHA Universal Pet Microchip Lookup Tool and find out which registry it is enrolled with. The tool returns the registry and not your details, but it is a useful reminder that the number is an index into a database about you. It is more than a serial number on a piece of hardware.

The second is travel paperwork. The EU pet passport model, described on the European Commission’s pet movement pages, binds the transponder code to the owner’s name and address in a single booklet, alongside the rabies vaccination record. If you have ever photographed a pet passport, you photographed an identity document with two subjects on it.

Where does the image go? On-device versus cloud extraction

To the user, the feature looks the same either way: you point the camera at a page, a moment passes, and the fields fill in. Underneath are two different architectures, and they differ in the things you cannot see.

Dimension On-device extraction Cloud extraction
Where the image goes Stays in the app’s container on the phone Uploaded to the operator’s infrastructure, often via a CDN and a queue
Airplane mode Works. Capture and OCR are OS frameworks Fails, or queues the scan for later upload
Latency Bounded by the device; no round trip, no rate limit Network round trip plus queue time; degrades on poor connections
What a breach exposes Nothing. There is no copy to breach The image, the extracted text, and the account it is attached to
What a policy change can do retroactively Nothing. It cannot reach data it never had Re-scope, re-use, or transfer everything already held
Retention and deletion You delete the record, the file is gone Deletion applies to the live store; backups and logs are a separate question
Accuracy on hard scans Bounded by what fits on the device Usually better on creased, faded or unusual pages
Improvement over time Requires an OS or app update Improves server-side with no action from you
Cost model Compute is free once the device is bought Per-page inference cost, which someone has to fund

The last row explains much of the rest of the table. Server-side extraction has a marginal cost per page, and that cost has to be recovered through a subscription, a clinic partnership, or the data. Local extraction has no marginal cost at all, which is why a local app can offer scanning without a recurring bill and a cloud app usually cannot.

Cloud wins two of those rows outright, and anyone selling on-device processing should say so. A hosted model is not constrained by a phone’s memory ceiling or thermal budget, so on a faded thermal printout, a fax of a fax, or a vet’s handwriting in the margin, cloud OCR will frequently read a line a local model misses. It also improves while you sleep: the operator ships a new model and every future scan gets better, with no App Store update and no action from you.

Which Apple frameworks actually do the reading?

Two frameworks do it, and both ship inside iOS.

Capture is VisionKit’s document scanner, the same camera sheet you have used in Notes and Files. It finds the page edges, corrects perspective so a photo taken at an angle comes out rectangular, handles multi-page documents, and returns clean images.

Reading is the Vision framework’s text recognition, which locates and transcribes text in an image. The set of languages it recognises is enumerable at runtime and has grown across framework revisions, so an app should ask the OS for the list and not hard-code a marketing number.

Neither framework tells you anything about privacy on its own, and this is where people get caught out. An app can present the VisionKit sheet, get a beautiful deskewed image back, and then POST it straight to a server. The capture UI proves nothing. What matters is what happens to the UIImage in the next twenty lines of code, and you cannot see those.

So you test the behaviour instead.

How can you tell whether an app uploads your documents?

There are four tests. None of them requires you to read code, and they work on any health app, pet apps included.

Test How to run it What a clean answer looks like
Airplane mode Enable airplane mode, then scan a document and try to save it Extraction completes and the record saves, with no spinner and no queue
Privacy nutrition label On the App Store listing, open App Privacy Nothing under Data Used to Track You; anything collected is Not Linked to You
Account requirement Try to use the core feature on first launch No sign-up wall. An account implies a server that stores something
Required Reason API disclosure Check the developer’s stated privacy manifest and SDK list A short list of mundane APIs, and few or no third-party SDKs

The airplane-mode test is the strongest of the four because it tests behaviour. A marketing page can say “privacy-first” for free, but a scan that completes with the radios off cannot be faked.

The other three are declarations, and they are worth reading closely. Apple’s app privacy details are self-reported, which is a genuine weakness, but they are a public commitment with consequences if false, and the “Linked to You” versus “Not Linked to You” distinction is the one that matters most. Privacy manifest files go further: they declare tracking status, tracking domains, and the Required Reason APIs an app calls, each with a category code. A long Required Reason list is not automatically bad, but it is worth reading, and so is the third-party SDK list: an analytics SDK you have never heard of is a data flow you did not choose.

That is why this studio publishes all of it on a single page. Our transparency page lists, per app, the declared tracking status, tracking domains, third-party SDKs, network calls and Required Reason API codes. For Pawza that comes to two Required Reason APIs (app-specific user defaults and file timestamps within the app’s own container), one third-party dependency, an archive library with no network access, and zero tracking domains. Don’t take my word for it: read the page, then run the airplane-mode test yourself.

Why the trade is asymmetric

The upload is permanent and the convenience is momentary.

You save a few seconds by having a server read the page instead of the phone. In exchange, a copy of a document containing your name, your address, your phone number and your pet’s lifelong identifier exists on infrastructure you have never seen, governed by a document you did not negotiate, for a period you cannot verify.

Everything on the company’s side of that trade can change. Policies get revised. Companies get acquired, and the acquirer inherits the database along with the terms, then revises the terms. Retention windows get longer when storage gets cheaper. A deletion request usually reaches the live database and rarely reaches the backup snapshots, the log lines, or the extracted text already sitting in a derived table.

On your side, nothing can change, because you cannot un-upload the scan.

The other half of the asymmetry is who pays for a breach. If a pet-records service is compromised, the company writes a blog post, offers credit monitoring, and continues. You are the one whose home address was in the dump, attached to a phone number, a nearby clinic, and a note about which nights you board the dog. That is exactly the shape of data that makes ordinary fraud and ordinary stalking easier. The same argument applies to any file you casually hand to a web service, which is a point I have made before about image converters and about apps that ask for your bank login.

The architectural answer is to arrange things so that trust is not required. A scan that never leaves the device is not covered by any future version of anyone’s terms, because there is nothing on the other end to apply them to.

What on-device processing actually costs you

Our own app has trade-offs too, and a post like this is worthless if it only lists the other side’s compromises.

Pawza is built to pass its own airplane-mode test. Capture and extraction both run on the device, there is no Pawza account and no Pawza server to upload to, and you confirm every extracted field before it is written. Records stay on your iPhone and iPad. If you turn on sync, they travel only through your own private iCloud, which we cannot read.

The constraints are real. Automatic field filling needs Pawza Pro and Apple Intelligence, which means iOS 26 or later on an eligible device (the app names iPhone 15 Pro or newer). On the free plan, and on any other device, Pawza still reads the text on the device, and you fill in the fields yourself. There is no Android app and no web app, because the entire privacy argument rests on Apple’s on-device frameworks. The free plan also stops at 10 document scans, which is a business constraint and not a technical one.

The features we give up are, almost without exception, the ones that need a server. VetKeep answers questions about your records in a conversational AI chat, which is far easier to build when the records already sit on a server; if that is the feature you want, the cloud is the honest way to get it. PetDesk’s clinic booking and 11pets’s Android and web apps are the same story.

We won’t route the page through a server without telling you and call it scanning. For which documents are worth keeping, what each of them costs, and the full category rundown, the companion post on what to keep in a pet medical record covers the paperwork side.

TL;DR

  • A vet document is a household document. Owner name, home address, phone, email, the animal’s microchip code, the clinic, the treating vet, the drugs and doses, and sometimes a payment reference. The pet is one field among a dozen about you.
  • The feature looks identical either way. You point the camera and the fields fill in. The difference is where the image goes, which you cannot see from the UI.
  • Airplane mode is the honest test. VisionKit capture and Vision text recognition are OS frameworks and need no network. If a scan completes with the radios off, the reading is local.
  • Cloud extraction wins on hard scans. Its bigger models do better on faded and creased pages, and they improve without an app update.
  • The trade is lopsided. The convenience lasts seconds; the copy is permanent, and every term governing it can be rewritten afterwards by someone you never met.
  • Check four things on any health app: airplane mode, the App Store privacy nutrition label, whether an account is forced, and the declared Required Reason APIs and third-party SDKs.

The drawer of paper in your kitchen has one useful property no cloud service can match: nobody can query it from another continent.

Questions

Frequently asked

What personal information is printed on a vet invoice?
Usually more than people expect. A standard invoice or vaccination certificate carries the owner's full name, home address, phone number and often email; the animal's name, species, breed, date of birth and microchip transponder code; the treating vet's name and licence number; the clinic's address; the drug names, batch or lot numbers and dosages administered; and sometimes a masked card reference or account number from payment. The animal is one field among a dozen about the household.
Is it safe to scan vet records into a pet health app?
It depends entirely on where the extraction runs. If the app reads the page on your device, the photo is a file inside the app container and the risk is the same as any photo on your phone. If the app posts the image to a server for OCR, you have handed a third party your name, address, phone and your pet's chip number, plus whatever retention window their policy allows. The feature looks identical from the outside, so you have to check.
Does on-device document scanning work offline?
Yes, and that is the cleanest test of whether an app is genuinely on-device. Apple's VisionKit capture and Vision text recognition are part of the operating system and need no network. Turn on airplane mode, scan a document, and watch what happens. If the extraction completes and fills in the fields, the reading is local. If you get a spinner, a queued state, or a message about trying again later, the page was going somewhere.
Is cloud OCR more accurate than on-device OCR?
Often, yes. Server-side models are not bound by a phone's memory or thermal budget, they can run larger ensembles, and they improve continuously without you updating anything. On a creased fax of a fax, a faded thermal printout, or unusual handwriting, cloud extraction will usually beat a local model. The question is whether that accuracy gap is worth making a permanent copy of your address on someone else's disk.
How do I check whether a pet app uploads my documents?
Run four tests. First, scan in airplane mode and see whether it completes. Second, read the App Store privacy nutrition label and check what is declared as collected and whether anything is linked to you. Third, see whether the app forces you to create an account, because an account implies a server that stores something. Fourth, look at the developer's stated Required Reason API disclosure and third-party SDK list. Any single test can be gamed, but all four together are hard to fake.
Can a pet health app change its privacy policy after I upload documents?
Yes, and that is the problem. A privacy policy governs data the company holds, and it can be revised, superseded on acquisition, or reinterpreted under a new owner. You cannot un-upload a scan. Deletion requests apply to the live database and rarely to backups, log lines, or the derived text already extracted. Data that never left the device is not covered by any future version of anyone's terms.

Mentioned in this post

Apps in this post

More from the journal

Read another post