Built Word Documents (.docx):
Spensara Overview (.docx)
Capability Assessment (.docx)
Brink POS Ingestion Analysis (.docx)
The Borg Ingestion Architecture (.docx)
Categories
Monitor Specs (29)
Operational monitoring, alerting, anomaly detection, and health specifications.
- backend/Kds.Ai.Data/MonitorSpecs/customer-churn-risk.md
- backend/Kds.Ai.Data/MonitorSpecs/customer-profiles.md
- backend/Kds.Ai.Data/MonitorSpecs/daily-forecast.md
- backend/Kds.Ai.Data/MonitorSpecs/demand-drivers.md
- backend/Kds.Ai.Data/MonitorSpecs/forecast-demand.md
- backend/Kds.Ai.Data/MonitorSpecs/forgotten-items.md
- backend/Kds.Ai.Data/MonitorSpecs/identify-high-value-customers.md
- backend/Kds.Ai.Data/MonitorSpecs/identify-plowhorse-items.md
- backend/Kds.Ai.Data/MonitorSpecs/identify-star-items.md
- backend/Kds.Ai.Data/MonitorSpecs/incorporate-seasonality.md
- backend/Kds.Ai.Data/MonitorSpecs/inventory-levels.md
- backend/Kds.Ai.Data/MonitorSpecs/item-recall-storm.md
- backend/Kds.Ai.Data/MonitorSpecs/kitchen-performance.md
- backend/Kds.Ai.Data/MonitorSpecs/large-order-wave.md
- backend/Kds.Ai.Data/MonitorSpecs/menu-item-profitability.md
- backend/Kds.Ai.Data/MonitorSpecs/monthly-forecast.md
- backend/Kds.Ai.Data/MonitorSpecs/optimal-pricing-adjustments.md
- backend/Kds.Ai.Data/MonitorSpecs/optimize-order-quantities.md
- backend/Kds.Ai.Data/MonitorSpecs/order-surge.md
- backend/Kds.Ai.Data/MonitorSpecs/prep-time.md
- backend/Kds.Ai.Data/MonitorSpecs/pricing-recommendations.md
- backend/Kds.Ai.Data/MonitorSpecs/priority-flood.md
- backend/Kds.Ai.Data/MonitorSpecs/seasonality-trends.md
- backend/Kds.Ai.Data/MonitorSpecs/segment-customers.md
- backend/Kds.Ai.Data/MonitorSpecs/segment-descriptions.md
- backend/Kds.Ai.Data/MonitorSpecs/slow-kitchen.md
- backend/Kds.Ai.Data/MonitorSpecs/station-bottleneck.md
- backend/Kds.Ai.Data/MonitorSpecs/waste-reduction.md
- backend/Kds.Ai.Data/MonitorSpecs/weekly-forecast.md
id: 7c7f6b9c-3e65-4f9e-8d6b-52b91c9f4d41 name: Calculate menu item profitability kind: Insight cron: 0 0 /4 * * analysis_window: 30d comparison_periods: [7d, 28d]
Detect menu items that require pricing or promotion adjustments based on profitability and demand patterns.
Known Tables & Columns
curated.pos_transaction_items
- item (integer) - menu item identifier — references itm.id
- bohname (varchar) - menu item name — for item name join itm on gnditem.item = itm.id and use itm.longname
- price (decimal) - current selling price
- cost (decimal) - estimated cost of item — not in gnditem, join itm on gnditem.item = itm.id and use itm.cost
- revid (integer) - revenue center identifier — for revenue center name join rev on gnditem.revid = rev.id and use rev.name
curated.pos_catalog_items
- id (integer, PK) - menu item identifier
- longname (varchar) - menu item name — alternatively shortname for abbreviated name or chitname for the name printed on the guest check
- category (varchar) - menu category — not directly in itm; join itmgrpl on itmgrpl.itemid = itm.id, then join itmgrp on itmgrpl.id = itmgrp.id and use itmgrp.desc
- price (decimal) - base configured price
- donotshow (varchar) - whether the item is active on the menu — no explicit active flag exists; donotshow = 'Y' indicates the item is hidden/inactive, so treat donotshow != 'Y' (or NULL) as active
curated.pos_modifiers
- id (integer, PK) - modifier identifier
- item01–item54 (integer) - item(s) associated with the modifier — the mod table stores up to 54 linked items as separate columns (item01, item02, … item54); alternatively use itmxmod.itemid joined on itmxmod.moditem = mod.id for a cleaner item-to-modifier relationship
- longname (varchar) - modifier name (e.g., extra cheese, bacon) — alternatively shortname for abbreviated name
- price01–price54 (bigint) - additional price from modifier — prices are stored as positional columns aligned with their corresponding item01–item54 entries; no single flat price field exists
curated.pos_transaction_tenders
- check (integer) - check identifier
- typeid (integer) - payment method — no tender name directly in gndtndr; join tdr on gndtndr.typeid = tdr.id and use tdr.name for the tender type label (e.g., Cash, Card, Online); tdr.cash, tdr.iscredtcrd, and tdr.debit flags can be used to classify tender types programmatically
- amount (decimal) - payment amount
- date (date) - date of payment
curated.pos_transactions
- check (integer, PK) - check identifier
- dob (date) - date of sale
- openhour + openmin (integer, integer) - when the check was opened — no native timestamp; open time is split across openhour and openmin and must be reconstructed (e.g., make_time(openhour, openmin, 0) or combined with dob for a full timestamp)
- closehour + closemin (integer, integer) - when the check was closed — same pattern as open time; reconstruct from closehour and closemin combined with dob
- count (integer) - number of guests on the check
- revenue (integer) - revenue center identifier — for revenue center name join rev on gndsale.revenue = rev.id and use rev.name
- amount (decimal) - total check value
Analysis Approach
- Aggregate menu item performance over the last {AnalysisWindow}.
For each curated.pos_transaction_items, calculate:
- total units sold
- total revenue (
quantity × unit_price) - total cost (
quantity × unit_cost) - total profit (
revenue - cost) - average margin percentage.
- Rank menu items by profit contribution (total profit generated).
- Identify high-volume items with strong margins.
These are "star items" — strong candidates for small price increases if demand appears stable.
- Identify high-margin items with low sales volume.
These items may benefit from promotion, upselling, or improved menu placement.
- Identify high-volume items with weak margins.
Recommend price adjustments, portion optimization, or ingredient cost review.
- Detect items frequently ordered together by analyzing order-level co-occurrence in
curated.pos_order_items.
If two items appear together in a high percentage of the same orders, recommend combo deals or bundles.
- Exclude items with fewer than 20 total units sold during the analysis window to avoid noise from rarely ordered items.
- Generate concise recommendations phrased as direct managerial actions, such as:
- price adjustments
- menu highlighting
- combo creation
- upselling opportunities.
Severity Guidance
- Low: Minor optimization opportunity (e.g., small price increase or promotional suggestion).
- Medium: Clear profitability imbalance between demand and margin requiring adjustment.
- High: Major profit leakage — high-volume item with significantly below-average margin or pricing inconsistency.