Bloomwell Data Agent

What can you ask?

The agent knows about patients, their services, prescriptions, medications, and orders. Use the map below to understand what questions it can answer, what you can filter and group by, and what's coming next.

Connected to the agent

Patient

One record per patient
Patient IDcross-system unique key (ZID)
Registration date
First service datederived from Service
Patient statusactive, inactive...
Count of patients+

"How many active patients do we have right now?"

Last service date+

"Which patients haven't had a service since March?"

App Journey (subset)
Covers ~181k of ~670k patients who installed the Bloomwell app. Adds acquisition channel, campaign, sessions and in-app order events. Ask: "Which acquisition channel brings the most patients?"

Always current — patient status is recalculated from Service on every query, never a stale snapshot.

joined by
Patient ID
1 many

Service

One record per visit or order
Service typevideo, in-person, prescription order...
Service formatvideo / in-person / online
Service statusfinished / canceled / active
No-showappointments only
Doctor
Recorded viaXpertyMe or HubSpot
Start / end time
Count of services+

"How many video consultations happened last month?"

No-show rate+

"What's our no-show rate by doctor?"

Total services per patient+

"Which patients have had more than 5 services?"

Service number (nth visit)+

"How many patients are booking their first appointment this week?"

Combines XpertyMe appointments and HubSpot therapy orders into one timeline. A few older appointments aren't linked to a patient, so overall totals can run slightly ahead of per-patient totals.

Prescription

One record per active medication line
Prescription statusissued, etc. (cancelled excluded)
Prescription typePrivate, BTM (narcotics)...
Doctor
Medication typeflower, extract, bundle, capsule, tablet
Product / strain
Product categoryflower, extract...
Manufacturer / wholesaler
Expiry date
Linked servicejoins to Service via service_id
Count of prescriptions+

"How many prescriptions were issued last month?"

Prescribed amount+

"What's the average grams prescribed per prescription?"

Prescriptions per patient+

"Which patients have the most prescriptions this year?"

Medications per prescription+

"How many prescriptions include more than one medication?"

Flattened to one row per active medication line — a bundle prescription expands to one row per sub-product. Cancelled prescriptions are excluded. Joins to Service via service_id (most resolve; a minority of older appointment IDs don't — known gap, not a modelling error).

joined by
Prescription ID
1 many

Order & Product

One record per order line item
Order statusall statuses kept, including cancelled
Payment status
Delivery status / optionDHL, GO!, Pickup, DHL Express
Pharmacy
Product name / strain
Product categoryflower, extract, capsule...
Manufacturer / wholesaler
THC / CBD range
Genetics / dominanceindica, sativa...
Ordered / shipped / delivered at
Promotion / carousel positionpoint-in-time as at ordered_at
Revenue (line total)+

"What was our revenue by product category last quarter?"

Units sold+

"How many grams of flower were sold last month?"

Orders per patient+

"Which patients have ordered more than 10 times?"

Time to delivery+

"What's the average time from order to delivery by pharmacy?"

Cancellation rate+

"What share of orders were cancelled last month?"

One row per order line item (order + product). Revenue comes from line_total_eur — already multiplied by quantity, do not multiply again. Merchandising columns (promotion, slot, carousel) are point-in-time as at ordered_at; ratings are current. Product-level coverage starts 2023-07-20; order counts before that must come from the order header. Delivery timestamp is NULL on pickup orders even when delivered.

Drafted — not yet connected to the agent

Payment

One record per payment
Payment method
Payment status
Payment date
Payment volume+

"How much was collected via invoice last month?"

Fields not yet finalised.

linked to
Order
1 1

Filter & group by — pick a category to slice the data.

Count & measure — a number you can total up. Click to see a sample question.

Subset — covers a specific slice of patients (app users only).

Drafted — planned but not yet connected to the agent.