§01|Medical booking

medical-booking


Clinics, providers, patients, insurance plans. Appointments respect business hours, provider specialty, and patient timezone.

schema
  • · clinics
  • · providers
  • · patients
  • · appointments
  • · insurance_plans
invariants
  • appointments only land in provider working hours (clinic.tz aware)
  • no two appointments overlap for the same provider
  • insurance_plan_id is consistent with patient.state
  • patient names reflect realistic demographic mix by clinic locale
columnsample
patients.full_nameMarisol Aguirre-Velez
patients.dob1984-07-19
appointments.starts_at2026-06-04 14:30 America/Denver
providers.specialtyFamily Medicine
§02|E-commerce

e-commerce


Stores, products, variants, inventory, orders, line items, reviews with realistic prose and pricing that adds up at the order level.

schema
  • · stores
  • · products
  • · variants
  • · orders
  • · order_items
  • · reviews
invariants
  • order_items.unit_price × quantity sums to orders.subtotal
  • variants.sku is globally unique and matches product.category prefix
  • reviews.body avoids the words "awesome" and "great product"
  • inventory.on_hand never goes negative across fulfilled orders
columnsample
products.titleCedar Plank Cutting Board, 18"
variants.skuKIT-CB-CDR-18
orders.subtotal$84.50
reviews.bodyHeavier than I expected—in a good way...
§03|SaaS subscriptions

saas-subscriptions


Orgs, users, role membership, plans, subscriptions, invoices, usage events that actually reconcile against the billed amount.

schema
  • · orgs
  • · users
  • · memberships
  • · subscriptions
  • · invoices
  • · usage_events
invariants
  • every org has exactly one user with role = 'owner'
  • subscriptions.status follows a legal lifecycle (trialing → active → past_due → canceled)
  • invoices.amount = plan.base + sum(usage_events in period × unit_price)
  • usage_events distributed on a Poisson curve, not uniformly
columnsample
orgs.nameNorthbeam Analytics
subscriptions.statusactive
invoices.amount$248.00
usage_events.event_typeapi.request
§04|Bring your own

fork a profile, or write one in an afternoon.


A profile is a markdown brief plus a JSON manifest. No DSL, no plugin API. Copy the closest official profile into ./satus/profiles/, change the tone notes, add or remove tables, and commit it like any other file.

Community profiles for legal, real estate, and logistics are on the roadmap—pinned by user demand, not by us guessing. Open an issue with your CREATE TABLE statements and we’ll triage.