Spensara Spensara Knowledge Base & Documentation Repository

Repository Docs & Knowledge Base

Consolidated Spensara documentation repository (722 Markdown & architecture documents in ../repository)
Built Word Documents (.docx): Spensara Overview (.docx) Capability Assessment (.docx) Brink POS Ingestion Analysis (.docx) The Borg Ingestion Architecture (.docx)

Branches (328)

Branch-specific documentation across extract-raw-xml, feature-fleet-import, kds_cdc_improvments, life-cycle, and tenat-admin.
branches/life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/index.md 5,736 bytes · Updated Oct 23, 2026 10:44 AM EDT
Raw File

Curated Model

Purpose

This folder documents the current curated schema created by the per-table bootstrap SQL files under backend/Kds.Ai.Warehouse/Sql/Bootstrap/Tenant/Curated/.

Each file describes one curated table, what business surface it provides, and what each column is used for.

Each table document now separates columns into fields currently used by monitors and fields with potential future monitor value. Columns marked as not used by monitors are omitted from the per-table column sections.

Cross-table summary

TablePrimary roleStrong sidesMain modeling riskMost important next step
curated.customersCanonical customer entityReadable customer attributes, good AI and business usability baseMixed master data and weak explicit history strategyMake it an explicit SCD-style dimension
curated.inventory_itemsInventory snapshot with item contextUseful stock, reorder, vendor, and category contextMixes descriptive item data with changing stock-position factsSplit later into item dimension plus inventory snapshot or fact if scale grows
curated.kitchen_item_status_eventsKitchen lifecycle event streamStrong operational event semantics, great for anomaly detectionNeeds deterministic event ordering and standardized status semanticsTreat as append-only canonical event fact
curated.kitchen_order_itemsKitchen execution line factGood workload, prep-time, recall, and routing signalsState may be spread across snapshot and eventsKeep canonical item snapshot and formalize linkage to event stream
curated.kitchen_ordersKitchen order operational headerGood queue, load, and priority surfaceSnapshot semantics are not fully explicitDefine clearly as current-state kitchen order header
curated.loyalty_customersLoyalty member dimensionGood retention and loyalty contextLoyalty identity and history can drift without explicit versioningMake membership state and history explicit
curated.pos_catalog_itemsCanonical item or product dimensionStrong product base for analyticsStill partly source-config drivenMove toward a fully conformed product dimension
curated.pos_hourly_salesAggregate factGood for forecasting and trend baselinesGrain must stay very strict across clientsLock grain and aggregation rules explicitly
curated.pos_menu_itemsMenu-state dimension or snapshotGood availability and routing contextCan drift into serving or UI modelKeep it as canonical sellable menu state
curated.pos_modifiersTransitional reference modelSome useful modifier pricing and group contextSlot-based structure is weak warehouse designPlan redesign into normalized modifier group plus option model
curated.pos_order_itemsBusiness order-line factGood basket and order composition contextCan overlap with transaction-line modelSeparate order semantics from settlement semantics
curated.pos_ordersBusiness order header factStrong commercial order surfaceStill partly serving-like and source-shapedStrengthen canonical order lifecycle and channel semantics
curated.pos_table_definitionsSeating-layout reference dimensionUseful hierarchy and layout metadataSource semantics vary strongly by vendorKeep only stable seating concepts in curated
curated.pos_tablesPhysical or logical dining table dimensionUseful dine-in contextCan become too operational if overloadedKeep it as lightweight reference dimension
curated.pos_tendersPayment-method dimensionGood basis for payment family standardizationToo many low-level tender flagsPromote standardized payment-family semantics
curated.pos_transaction_itemsTransaction-line sales factOne of the strongest analytic tablesStill carries many coded legacy POS attributesKeep as core canonical sales-line fact with stronger semantic labels
curated.pos_transaction_tendersPayment-event factStrong payment behavior and tender mix analysis basePayment semantics are still partly codedStandardize payment family and payment event meaning
curated.pos_transactionsTransaction-header factStrong top-level commercial factToo dependent on decomposed time fields and coded attributesMake it explicitly canonical commercial transaction header

Table type classification

TableRecommended type
curated.customersdimension
curated.inventory_itemssnapshot
curated.kitchen_item_status_eventsevent
curated.kitchen_order_itemssnapshot
curated.kitchen_orderssnapshot
curated.loyalty_customersdimension
curated.pos_catalog_itemsdimension
curated.pos_hourly_salesfact
curated.pos_menu_itemssnapshot
curated.pos_modifiersdimension
curated.pos_order_itemsfact
curated.pos_ordersfact
curated.pos_table_definitionsdimension
curated.pos_tablesdimension
curated.pos_tendersdimension
curated.pos_transaction_itemsfact
curated.pos_transaction_tendersfact
curated.pos_transactionsfact

Tables

  • customers.md
  • inventory_items.md
  • kitchen_item_status_events.md
  • kitchen_order_items.md
  • kitchen_orders.md
  • loyalty_customers.md
  • pos_catalog_items.md
  • pos_hourly_sales.md
  • pos_menu_items.md
  • pos_modifiers.md
  • pos_order_items.md
  • pos_orders.md
  • pos_table_definitions.md
  • pos_tables.md
  • pos_tenders.md
  • pos_transaction_items.md
  • pos_transaction_tenders.md
  • pos_transactions.md
  • todo.md