Data Model

The core entities Alvero reasons over, and how they map to public structured-data vocabularies for SEO and AEO.

Core entities

EntityPurposeKey fields
PracticeThe tenant boundaryid, name, NAP, timezone, PMS connection
ProviderA dentist or hygienistid, practiceId, name, role, license
AppointmentA scheduled visitid, practiceId, providerId, patientId, start, status, CDT codes
ClaimAn insurance claimid, practiceId, cdtCodes[], payer, status, amountCents
PatientA person of record (PHI)id, practiceId, demographics, balance, recallStatus

Practice

The root tenant. Every record is scoped to a practiceId; cross-tenant access is impossible by design at the Worker layer.

Provider

Drives chair utilization, production attribution, and the per-provider morning briefing.

Appointment

Source for same-day production, hygiene utilization, and recall pipeline. Emits appointment.created / appointment.updated.

Claim

Feeds AR aging and the EOB Verification Agent. Emits claim.submitted / claim.adjudicated.

Patient

PHI-bearing. Access is logged at the row level with reviewer attribution; outbound communication is gated by human approval.

schema.org mapping

Each Practice maps to a schema.org/Dentist entity (name, address, telephone, geo, medicalSpecialty, areaServed) — the same structured data published in the homepage @graph for the four owner-network practices.

{
  "@type": "Dentist",
  "name": "Kelowna Dental Centre",
  "medicalSpecialty": ["GeneralDentistry","CosmeticDentistry"],
  "areaServed": { "@type": "City", "name": "Kelowna" }
}