{
  "_comment": "Generated by site/make-coverage.py from api/app/export.py and api/alembic_tenant. Do not edit by hand.",
  "lastVerified": "2026-08-09",
  "archive": {
    "format": "ZIP",
    "manifest": "manifest.json, carrying a row count and a SHA-256 for every member of the archive",
    "files": "Every uploaded file, under documents/, with an index"
  },
  "included": [
    {
      "dataset": "Patients",
      "file": "patients.csv",
      "format": "CSV",
      "notes": "Patient demographics, contact details, and animal identity: species, breed, sex, sterilization, color and markings, microchip number, and date of death. This is the record that identifies the animal, and without it a successor system has a name and a date of birth"
    },
    {
      "dataset": "Owner access to patients",
      "file": "patient_guardians.csv",
      "format": "CSV",
      "notes": "Which login may act for which patient (family/guardian links)"
    },
    {
      "dataset": "Client profiles",
      "file": "client_profiles.csv",
      "format": "CSV",
      "notes": "How each client wants to be contacted, and their marketing consent"
    },
    {
      "dataset": "Households",
      "file": "households.csv",
      "format": "CSV",
      "notes": "Households: the account money is owed against"
    },
    {
      "dataset": "Household members",
      "file": "household_members.csv",
      "format": "CSV",
      "notes": "Who is in each household, and who may authorize or collect"
    },
    {
      "dataset": "Locations",
      "file": "locations.csv",
      "format": "CSV",
      "notes": "The practice's sites. Every appointment, invoice and stock movement names one, so an export without them cannot be read"
    },
    {
      "dataset": "Veterinarians",
      "file": "providers.csv",
      "format": "CSV",
      "notes": "Clinicians and their configuration"
    },
    {
      "dataset": "Provider locations",
      "file": "provider_locations.csv",
      "format": "CSV",
      "notes": "Which sites each clinician works at"
    },
    {
      "dataset": "Services and prices",
      "file": "services.csv",
      "format": "CSV",
      "notes": "Bookable services, durations, and prices"
    },
    {
      "dataset": "Products",
      "file": "products.csv",
      "format": "CSV",
      "notes": "The catalog: medications, vaccines, food, supplies and retail items, with their prices, stock rules and whether they are restricted to particular species"
    },
    {
      "dataset": "Product species",
      "file": "product_species.csv",
      "format": "CSV",
      "notes": "Which species each catalog item may be used for, so a dog is not offered something meant for a horse"
    },
    {
      "dataset": "Appointments",
      "file": "appointments.csv",
      "format": "CSV",
      "notes": "All appointments, past and future, in UTC"
    },
    {
      "dataset": "Forms and consents due at an appointment",
      "file": "appointment_requirements.csv",
      "format": "CSV",
      "notes": "Forms and consents attached to specific appointments"
    },
    {
      "dataset": "Clinical notes",
      "file": "clinical_notes.csv",
      "format": "CSV",
      "notes": "SOAP notes. JSON columns (diagnoses, orders, prescriptions) are embedded as JSON text within the cell"
    },
    {
      "dataset": "Note addenda",
      "file": "note_addenda.csv",
      "format": "CSV",
      "notes": "Corrections to signed notes. A signed note is immutable, so an addendum is the only record of what was changed and why: without these the exported notes are the uncorrected versions"
    },
    {
      "dataset": "Vitals",
      "file": "vital_signs.csv",
      "format": "CSV",
      "notes": "Recorded vitals"
    },
    {
      "dataset": "Diagnoses and problem list",
      "file": "diagnoses.csv",
      "format": "CSV",
      "notes": "Problem list and per-encounter diagnoses"
    },
    {
      "dataset": "Allergies and reactions",
      "file": "allergies.csv",
      "format": "CSV",
      "notes": "Allergies and reactions"
    },
    {
      "dataset": "Alerts",
      "file": "alerts.csv",
      "format": "CSV",
      "notes": "Handling and care alerts. These are the warnings staff see before touching an animal, so losing them in a migration is a safety matter"
    },
    {
      "dataset": "Medication list",
      "file": "medications.csv",
      "format": "CSV",
      "notes": "Medication list recorded on the chart"
    },
    {
      "dataset": "Prescriptions",
      "file": "prescriptions.csv",
      "format": "CSV",
      "notes": "Prescriptions, with the weight each dose was calculated from and the date that weight was taken. The only record of what was prescribed"
    },
    {
      "dataset": "Prescription dispenses",
      "file": "prescription_dispenses.csv",
      "format": "CSV",
      "notes": "Every fill, with its own lot number. This is what a recall is answered from: which lot went out, to whom, and when"
    },
    {
      "dataset": "Vaccinations",
      "file": "vaccinations.csv",
      "format": "CSV",
      "notes": "Vaccination history, including rabies tag numbers. A legal record in most jurisdictions and irreplaceable once lost"
    },
    {
      "dataset": "Orders and results",
      "file": "clinical_orders.csv",
      "format": "CSV",
      "notes": "Lab, imaging, referral, and procedure orders with their results"
    },
    {
      "dataset": "Order result values",
      "file": "order_result_values.csv",
      "format": "CSV",
      "notes": "Individual laboratory values on an order, including superseded uploads"
    },
    {
      "dataset": "Tasks",
      "file": "staff_tasks.csv",
      "format": "CSV",
      "notes": "Internal work queue items"
    },
    {
      "dataset": "Form templates",
      "file": "form_templates.csv",
      "format": "CSV",
      "notes": "Intake form definitions"
    },
    {
      "dataset": "Completed forms",
      "file": "form_submissions.csv",
      "format": "CSV",
      "notes": "Completed intake forms; answers are JSON text within the cell"
    },
    {
      "dataset": "Consent documents",
      "file": "consent_documents.csv",
      "format": "CSV",
      "notes": "Consent document text by version, with who approved each one, on what basis, for which jurisdiction and when"
    },
    {
      "dataset": "Consent signatures",
      "file": "consent_signatures.csv",
      "format": "CSV",
      "notes": "Who signed which consent version, and when. The signature image and the exact text signed are both included: a consent without the wording it was given against proves nothing"
    },
    {
      "dataset": "Record disclosures",
      "file": "record_disclosures.csv",
      "format": "CSV",
      "notes": "Records-release history: what left this practice, to whom, and on what basis. The practice's own evidence of its disclosures"
    },
    {
      "dataset": "Message threads",
      "file": "message_threads.csv",
      "format": "CSV",
      "notes": "Secure message conversations"
    },
    {
      "dataset": "Messages",
      "file": "secure_messages.csv",
      "format": "CSV",
      "notes": "Individual messages within those conversations"
    },
    {
      "dataset": "Message attachments",
      "file": "message_attachments.csv",
      "format": "CSV",
      "notes": "Files attached to messages; the files are under documents/"
    },
    {
      "dataset": "Document index",
      "file": "documents.csv",
      "format": "CSV",
      "notes": "Document index; the files themselves are under documents/"
    },
    {
      "dataset": "Estimates",
      "file": "estimates.csv",
      "format": "CSV",
      "notes": "Estimates. Amounts are integer minor units (cents)"
    },
    {
      "dataset": "Estimate versions",
      "file": "estimate_versions.csv",
      "format": "CSV",
      "notes": "Each revision of an estimate, and when the owner was sent and opened it"
    },
    {
      "dataset": "Estimate lines",
      "file": "estimate_lines.csv",
      "format": "CSV",
      "notes": "What each estimate version proposed, line by line"
    },
    {
      "dataset": "Estimate approvals",
      "file": "estimate_approvals.csv",
      "format": "CSV",
      "notes": "The owner's approval: who agreed, how, when, and the ceiling they agreed to. The practice's evidence that treatment was authorized"
    },
    {
      "dataset": "Estimate line decisions",
      "file": "estimate_line_decisions.csv",
      "format": "CSV",
      "notes": "Which individual lines the owner accepted or declined, and why. A declined line is a clinical and legal fact, not an absence"
    },
    {
      "dataset": "Invoices",
      "file": "invoices.csv",
      "format": "CSV",
      "notes": "Invoices. Amounts are integer minor units (cents)"
    },
    {
      "dataset": "Invoice lines",
      "file": "invoice_line_items.csv",
      "format": "CSV",
      "notes": "Invoice breakdown"
    },
    {
      "dataset": "Payments",
      "file": "payments.csv",
      "format": "CSV",
      "notes": "Payment attempts. Card brand and last four only, no card data exists anywhere in this system to export"
    },
    {
      "dataset": "Payment refunds",
      "file": "payment_refunds.csv",
      "format": "CSV",
      "notes": "Refunds, one row each with its own status. A refund is a row rather than a subtraction because some settle later and some fail"
    },
    {
      "dataset": "Ledger entries",
      "file": "ledger_entries.csv",
      "format": "CSV",
      "notes": "The household money ledger, append-only. Every balance in this system is derived from these rows, so a balance without them cannot be explained or audited"
    },
    {
      "dataset": "Payment allocations",
      "file": "payment_allocations.csv",
      "format": "CSV",
      "notes": "Which payment settled which invoice, and for how much"
    },
    {
      "dataset": "Inventory lots",
      "file": "inventory_lots.csv",
      "format": "CSV",
      "notes": "Stock lots, per product and site, with expiry and supplier"
    },
    {
      "dataset": "Inventory movements",
      "file": "inventory_movements.csv",
      "format": "CSV",
      "notes": "The stock ledger, append-only. Every on-hand figure is derived from these rows, and each names the clinical event that caused it"
    },
    {
      "dataset": "Inventory stock snapshot",
      "file": "inventory_stock_snapshot.csv",
      "format": "CSV",
      "notes": "On-hand balances as calculated at the moment of export. Derived from inventory_movements and included alongside them so the recipient can check their own arithmetic against ours"
    },
    {
      "dataset": "Recall rules",
      "file": "recall_rules.csv",
      "format": "CSV",
      "notes": "Recall rule configuration"
    },
    {
      "dataset": "Recall history",
      "file": "recall_sends.csv",
      "format": "CSV",
      "notes": "Recall contact history"
    },
    {
      "dataset": "Waitlist",
      "file": "waitlist.csv",
      "format": "CSV",
      "notes": "Waitlist entries and slot offers"
    },
    {
      "dataset": "Time off",
      "file": "provider_time_off.csv",
      "format": "CSV",
      "notes": "Provider time off"
    },
    {
      "dataset": "Schedule blocks",
      "file": "provider_blocks.csv",
      "format": "CSV",
      "notes": "Blocked periods in the schedule"
    },
    {
      "dataset": "Staff accounts",
      "file": "users.csv",
      "format": "CSV",
      "notes": "Staff accounts. Password hashes, TOTP secrets, and recovery codes are deliberately excluded"
    },
    {
      "dataset": "Notification history",
      "file": "notification_log.csv",
      "format": "CSV",
      "notes": "Outbound notification history (reminders, confirmations, alerts). Sign-in link messages are excluded, their payloads are credentials"
    },
    {
      "dataset": "Reminder log",
      "file": "appointment_reminders.csv",
      "format": "CSV",
      "notes": "Reminder scheduling log"
    },
    {
      "dataset": "No-shows",
      "file": "no_show_log.csv",
      "format": "CSV",
      "notes": "Recorded no-shows"
    },
    {
      "dataset": "Processor event log",
      "file": "payment_events.csv",
      "format": "CSV",
      "notes": "Payment processor webhook log (event ids and types; no card data exists)"
    },
    {
      "dataset": "Intake forms (legacy)",
      "file": "intake_forms.csv",
      "format": "CSV",
      "notes": "Legacy intake form definitions"
    },
    {
      "dataset": "Intake responses (legacy)",
      "file": "patient_intake_responses.csv",
      "format": "CSV",
      "notes": "Legacy intake responses; answers are JSON text within the cell"
    },
    {
      "dataset": "Retention policies",
      "file": "data_retention_policies.csv",
      "format": "CSV",
      "notes": "Configured retention periods"
    },
    {
      "dataset": "Audit log",
      "file": "audit_log.csv",
      "format": "CSV",
      "notes": "Access and change history"
    }
  ],
  "deliberatelyExcluded": [
    {
      "dataset": "access_controls",
      "notes": "Internal authorization state."
    },
    {
      "dataset": "alembic_version",
      "notes": "Schema bookkeeping. Reported in the manifest instead."
    },
    {
      "dataset": "login_tokens",
      "notes": "Single-use sign-in links. Credentials."
    },
    {
      "dataset": "user_sessions",
      "notes": "Live sign-in sessions. Credentials."
    }
  ],
  "notYetIncluded": [
    {
      "dataset": "Species and breed lists",
      "status": "not-planned",
      "notes": "Reference lists a practice can edit. Named here because they are editable and therefore yours, not because a successor system would want ours."
    },
    {
      "dataset": "Migration history",
      "status": "not-planned",
      "notes": "What a previous import read, row by row, and how it matched records. Useful for auditing a migration into Vetmira, not for one out of it."
    },
    {
      "dataset": "Vendor exchange log",
      "status": "not-planned",
      "notes": "How a requisition reached a laboratory and how its result came back: attempts, errors, and the vendor's own event ids. The orders and the results are exported in full. This is the transport underneath them, and it describes our queue rather than your record."
    }
  ]
}
