Skip to main content

Expense year

patient_expense

One annual cycle of one patient's healthcare costs, anchored to the instant the snapshot was taken: what they paid, what their premiums came to, and what their insurer covered.

113,415 records · 7 data fields · 2 relationships

Explore records
Source: patient_expenses.csv → table patient_expense → displayed as Expense year why?

This data originates from Synthea as patient expenses (patient_expenses.csv), is stored in the patient_expense SurrealDB table, and displayed as Expense year — one row is one annual cycle anchored to a snapshot instant, not a calendar year and not one charge.

Relationship map — Expense year highlighted
Has visit Attended by At care site Recorded diagnosis Prescribed Included procedure Has care plan Addresses diagnosis Practices at Started care plan Billed as Has claim Billed to Primary Secondary Has expense year Covered by Has diagnosis Has medication Has procedure PatientDIM · ACTOR GRAIN VisitFACT · EVENT GRAIN Diagnosis conceptDIM · CODE GRAIN DiagnosisFACT · EVENT GRAIN Medication conceptDIM · CODE GRAIN MedicationFACT · EVENT GRAIN Procedure conceptDIM · CODE GRAIN ProcedureFACT · EVENT GRAIN ProviderDIM · ACTOR GRAIN Care planFACT · EVENT GRAIN Care siteDIM · ACTOR GRAIN ClaimFACT · EVENT GRAIN PayerDIM · ACTOR GRAIN Expense yearFACT · YEAR ROLLUP Coded as Coded as Coded as

Click any node to explore its schema. Highlighted relationships connect to or from Expense year.

Field definitions

opens the record when pasted into search points at another record, named under Links to

Field Type Description Links to
patient_id Costs of string Foreign key to the Patient these costs belong to. Each expense year has exactly one patient; each patient has zero or many expense years. Patient
year string The moment in the year this snapshot was taken — a full ISO-8601 timestamp, stored as text despite the column's name. Two rows can share a calendar year; the day is what tells them apart.
payer_id Covered by string Foreign key to the insurer covering this patient that year. Each expense year has exactly one payer; each payer has one or many expense years. Payer
healthcare_expenses option<float> What the patient paid out of pocket that year.
insurance_costs option<float> What the patient paid that year in premiums.
covered_costs option<float> What the insurer paid on the patient's behalf that year.
record_id string This expense year's identity, built at import from the patient and the snapshot timestamp — the source export gives the row no id of its own.

Provenance where this row came from · 7 fields

Field Type Description
source_table string Synthea CSV this row was read from.
source_snapshot_id string Corpus generation this row belongs to.
ingest_run_id string Import run that wrote the row.
generation_run_id string Synthea run that produced the source CSV.
load_timestamp datetime When the row was written.
source_role string Role this source played for the record.
contributing_sources option<array<string>> Other rows that contributed to this record.

Collapsed here because a reader came for what expense year means, not where one row came from — that question is the substance of every expense year record's own Provenance page, reachable from any expense year record.

Types are SurrealDB's own: option<T> means the value may be absent. Full reference: SurrealDB data types.

Not searchable

Expense years carry no search index, by design — the free text on one (notes) is already searchable at finer grain on the procedure table, though only for 42.6% of rows; the encounter table carries no full-text index at all. Reach them from the records browser, from the claim they belong to, or by pasting its id into search.

Beyond text search

patients whose own costs outran what their insurer covered

Answering this means walking patient → has expense year → expense year → covered by → payer. The three shipped search arms — BM25, HNSW, RRF fusion — match text inside one table, so none can.