{"tools": [{"id": "sales_ingester", "num": 1, "name": "Sales Ingester", "section": "1 Ingestion", "formula": "sales[o,d,dish]=\u03a3 qty_sold", "side_effect": "read", "status": "live", "owner": "etl", "scope": "universal", "callable": true}, {"id": "order_ingester", "num": 2, "name": "Order Ingester", "section": "1 Ingestion", "formula": "order_line=(outlet,item_raw,qty,unit,t,by)", "side_effect": "read", "status": "live", "owner": "etl", "scope": "universal", "callable": true}, {"id": "additions_ingester", "num": 3, "name": "Additions Ingester", "section": "1 Ingestion", "formula": "final_qty=qty0+\u03a3 \u0394i", "side_effect": "write", "status": "planned", "owner": "etl", "scope": "universal", "callable": false}, {"id": "weight_feed_ingester", "num": 4, "name": "Weight-Feed Ingester", "section": "1 Ingestion", "formula": "w_event=(item,outlet,kg,type,t)", "side_effect": "write", "status": "planned", "owner": "etl", "scope": "format", "callable": false}, {"id": "bill_digitizer", "num": 5, "name": "Bill Digitizer", "section": "1 Ingestion", "formula": "bill_line=(item,qty,unit,\u20b9,vendor,date)", "side_effect": "read", "status": "live", "owner": "ingestion", "scope": "format", "callable": false}, {"id": "count_sheet_reader", "num": 6, "name": "Count-Sheet Reader", "section": "1 Ingestion", "formula": "count[i]=value_read; proof=photo_id", "side_effect": "write", "status": "planned", "owner": "ingestion", "scope": "universal", "callable": false}, {"id": "alias_normalizer", "num": 7, "name": "Alias Normalizer", "section": "2 Identity & Units", "formula": "canon(i_raw)=lookup(alias_table)", "side_effect": "read", "status": "live", "owner": "sanity", "scope": "universal", "callable": true}, {"id": "unit_converter", "num": 8, "name": "Unit Converter", "section": "2 Identity & Units", "formula": "qty_pcs=qty_plates\u00d7r_plate(i)", "side_effect": "read", "status": "partial", "owner": "sanity", "scope": "config", "callable": false}, {"id": "lineage_mapper", "num": 9, "name": "Lineage Mapper", "section": "2 Identity & Units", "formula": "family(i)\u2208{Bada,Chhota,Recipe(g),Direct}", "side_effect": "read", "status": "live", "owner": "bridge", "scope": "universal", "callable": true}, {"id": "batch_converter", "num": 10, "name": "Batch Converter", "section": "2 Identity & Units", "formula": "kg=batches\u00d7r_batch(g)", "side_effect": "read", "status": "partial", "owner": "bridge", "scope": "config", "callable": false}, {"id": "recipe_engine", "num": 11, "name": "Recipe Engine (versioned)", "section": "3 Recipes & Costing", "formula": "input[c]=ratio(c,g)\u00d7batch_kg(g)", "side_effect": "read", "status": "live", "owner": "checks", "scope": "config", "callable": true}, {"id": "yield_factor", "num": 12, "name": "Yield Factor", "section": "3 Recipes & Costing", "formula": "finished_kg=batch_kg\u00d7f(g)", "side_effect": "read", "status": "planned", "owner": "checks", "scope": "config", "callable": false}, {"id": "recipe_cost", "num": 13, "name": "Recipe Cost", "section": "3 Recipes & Costing", "formula": "cost/kg(g)=\u03a3 ratio(c,g)\u00b7cost/kg(c)\u00f7f(g)", "side_effect": "read", "status": "partial", "owner": "checks", "scope": "config", "callable": true}, {"id": "send_rule", "num": 14, "name": "Send Rule", "section": "3 Recipes & Costing", "formula": "disp_kg=rule_g(req_kg)", "side_effect": "read", "status": "partial", "owner": "checks", "scope": "config", "callable": false}, {"id": "bada_bundle_pricer", "num": 15, "name": "Bada Bundle Pricer", "section": "3 Recipes & Costing", "formula": "sets=min(\u230atikka/10\u230b,\u230asatay/2\u230b,\u230alolly/2\u230b)", "side_effect": "read", "status": "partial", "owner": "checks", "scope": "config", "callable": false}, {"id": "chhota_pricer", "num": 16, "name": "Chhota Pricer", "section": "3 Recipes & Costing", "formula": "kg=pcs\u00f7(sample_pcs/sample_kg)", "side_effect": "read", "status": "partial", "owner": "checks", "scope": "config", "callable": false}, {"id": "piece_rule_learner", "num": 17, "name": "Piece-Rule Learner", "section": "3 Recipes & Costing", "formula": "rule created \u21d2 recompute today+future", "side_effect": "write", "status": "planned", "owner": "sanity", "scope": "config", "callable": false}, {"id": "order_aggregator", "num": 18, "name": "Order Aggregator", "section": "4 Order Pipeline", "formula": "D[i]=\u03a3_o final_qty[o,i]", "side_effect": "read", "status": "live", "owner": "bridge", "scope": "universal", "callable": true}, {"id": "demand_exploder", "num": 19, "name": "Demand Exploder", "section": "4 Order Pipeline", "formula": "make[g]=D_direct[g]+\u03a3 ratio(g,parent)\u00b7batch[parent]", "side_effect": "read", "status": "live", "owner": "bridge", "scope": "config", "callable": true}, {"id": "bada_source_planner", "num": 20, "name": "Bada Source Planner", "section": "4 Order Pipeline", "formula": "kg_bada=max_output(D[out]/yield_out)", "side_effect": "read", "status": "planned", "owner": "bridge", "scope": "config", "callable": false}, {"id": "chef_sheet_generator", "num": 21, "name": "Chef-Sheet Generator", "section": "4 Order Pipeline", "formula": "sheet=f(make[],recipes,waves)", "side_effect": "read", "status": "planned", "owner": "bridge", "scope": "config", "callable": false}, {"id": "supplynote_formatter", "num": 22, "name": "SupplyNote Formatter", "section": "4 Order Pipeline", "formula": "csv=format(D_approved)", "side_effect": "read", "status": "live", "owner": "etl", "scope": "format", "callable": true}, {"id": "order_book_matcher", "num": 23, "name": "Order Book Matcher", "section": "4 Order Pipeline", "formula": "gap=billed\u20b9\u2212ordered\u20b9; short=ordered\u2212received", "side_effect": "read", "status": "live", "owner": "checks", "scope": "universal", "callable": true}, {"id": "rate_change_detector", "num": 24, "name": "Rate-Change Detector", "section": "4 Order Pipeline", "formula": "alert if |rate\u2212median|/median>\u03b8", "side_effect": "read", "status": "planned", "owner": "checks", "scope": "universal", "callable": false}, {"id": "band_builder", "num": 25, "name": "Band Builder", "section": "5 Checks & Exceptions", "formula": "band=P10..P90 last28d weekday-weighted", "side_effect": "read", "status": "live", "owner": "checks", "scope": "universal", "callable": true}, {"id": "order_sanity_checker", "num": 26, "name": "Order Sanity Checker", "section": "5 Checks & Exceptions", "formula": "flag if qty\u2209band \u2227 qty>k\u00b7avg_use \u2227 days>max", "side_effect": "read", "status": "planned", "owner": "checks", "scope": "universal", "callable": false}, {"id": "count_checker", "num": 27, "name": "Count Checker", "section": "5 Checks & Exceptions", "formula": "flag if count\u2209band \u2227 |\u0394|\u00b7cost\u2265\u20b9500", "side_effect": "read", "status": "planned", "owner": "checks", "scope": "universal", "callable": false}, {"id": "correction_auditor", "num": 28, "name": "Correction Auditor", "section": "5 Checks & Exceptions", "formula": "flag if value_t\u2260value_t0", "side_effect": "read", "status": "planned", "owner": "checks", "scope": "universal", "callable": false}, {"id": "usage_calculator", "num": 29, "name": "Usage Calculator", "section": "5 Checks & Exceptions", "formula": "use[g]=\u03a3 sold[dish]\u00d7recipe_use(g,dish)", "side_effect": "read", "status": "live", "owner": "checks", "scope": "config", "callable": true}, {"id": "day_balance_reconciler", "num": 30, "name": "Day-Balance Reconciler", "section": "5 Checks & Exceptions", "formula": "gap=(open+received\u2212use)\u2212actual_close", "side_effect": "read", "status": "partial", "owner": "checks", "scope": "universal", "callable": true}, {"id": "transit_reconciler", "num": 31, "name": "Transit Reconciler", "section": "5 Checks & Exceptions", "formula": "\u0394_transit=sent\u2212received", "side_effect": "read", "status": "live", "owner": "bridge", "scope": "universal", "callable": true}, {"id": "rupee_attributor", "num": 32, "name": "\u20b9 Attributor", "section": "5 Checks & Exceptions", "formula": "\u20b9=gap_qty\u00d7cost/unit(basis)", "side_effect": "read", "status": "live", "owner": "checks", "scope": "universal", "callable": true}, {"id": "exception_triager", "num": 33, "name": "Exception Triager", "section": "5 Checks & Exceptions", "formula": "show if \u20b9\u2265500; repeat\u21d2counter++; sort by \u20b9", "side_effect": "read", "status": "live", "owner": "ops-controller", "scope": "universal", "callable": true}, {"id": "band_learner", "num": 34, "name": "Band Learner", "section": "5 Checks & Exceptions", "formula": "3\u00d7 valid \u21d2 band:=band\u222apattern", "side_effect": "write", "status": "planned", "owner": "checks", "scope": "config", "callable": false}, {"id": "dispatch_coster", "num": 35, "name": "Dispatch Coster", "section": "6 P&L", "formula": "cost_line=qty\u00d7cost/unit if basis\u2208{INV,BOM,RULE} else HELD", "side_effect": "read", "status": "live", "owner": "bridge", "scope": "universal", "callable": true}, {"id": "pnl_assembler", "num": 36, "name": "P&L Assembler", "section": "6 P&L", "formula": "contrib=sales\u2212(chicken+gravies+other+buys); mat%=mat\u00f7sales", "side_effect": "read", "status": "live", "owner": "bridge", "scope": "universal", "callable": true}, {"id": "coverage_tracker", "num": 37, "name": "Coverage Tracker", "section": "6 P&L", "formula": "coverage=priced\u20b9\u00f7(priced\u20b9+held\u20b9)", "side_effect": "read", "status": "live", "owner": "checks", "scope": "universal", "callable": true}, {"id": "calendar_engine", "num": 38, "name": "Calendar Engine", "section": "6 P&L", "formula": "day=[cutoff,cutoff+24h); period_prev=shift(period,\u2212len)", "side_effect": "read", "status": "live", "owner": "checks", "scope": "universal", "callable": true}, {"id": "reminder_scheduler", "num": 39, "name": "Reminder Scheduler", "section": "7 Follow-ups", "formula": "send(r) at t_r to route(role,outlet)", "side_effect": "write", "status": "planned", "owner": "alerts", "scope": "universal", "callable": false}, {"id": "escalation_engine", "num": 40, "name": "Escalation Engine", "section": "7 Follow-ups", "formula": "t+45m resend; t+90m notify sup", "side_effect": "write", "status": "planned", "owner": "alerts", "scope": "universal", "callable": false}, {"id": "proof_matcher", "num": 41, "name": "Proof Matcher", "section": "7 Follow-ups", "formula": "done if proof_type received \u2227 t_proof>t_send", "side_effect": "write", "status": "planned", "owner": "alerts", "scope": "universal", "callable": false}, {"id": "assignment_tracker", "num": 42, "name": "Assignment Tracker", "section": "7 Follow-ups", "formula": "closure_rate=closed/assigned; repeat=reopened/closed", "side_effect": "write", "status": "live", "owner": "alerts", "scope": "universal", "callable": true}, {"id": "people_registry", "num": 43, "name": "People Registry", "section": "7 Follow-ups", "formula": "route(role,outlet)\u2192(wa_number,lang,sup)", "side_effect": "read", "status": "live", "owner": "directory", "scope": "universal", "callable": true}, {"id": "whatsapp_dispatcher", "num": 44, "name": "WhatsApp Dispatcher", "section": "7 Follow-ups", "formula": "state\u2208{sent,seen,ack,done,overdue,escalated}", "side_effect": "write", "status": "live", "owner": "alerts", "scope": "universal", "callable": false}, {"id": "calc_trace_recorder", "num": 45, "name": "Calc-Trace Recorder", "section": "8 Trust & Output", "formula": "trace(x)=(inputs,rules+versions,sources,t)", "side_effect": "read", "status": "partial", "owner": "gateway", "scope": "universal", "callable": true}, {"id": "snapshot_exporter", "num": 46, "name": "Snapshot Exporter", "section": "8 Trust & Output", "formula": "file=render(view)+stamp(basis,as_of)", "side_effect": "write", "status": "live", "owner": "gateway", "scope": "universal", "callable": true}, {"id": "event_store", "num": 47, "name": "Event Store", "section": "8 Trust & Output", "formula": "state=fold(events); no update/delete", "side_effect": "read", "status": "live", "owner": "lake", "scope": "universal", "callable": true}, {"id": "menu_pricer", "num": 48, "name": "Menu Pricer", "section": "6 P&L", "formula": "price=lookup(menu_item)", "side_effect": "read", "status": "live", "owner": "menu", "scope": "config", "callable": true}, {"id": "dish_margin", "num": 49, "name": "Dish Margin", "section": "6 P&L", "formula": "margin=menu_price\u2212recipe_cost (cost pending staples feed)", "side_effect": "read", "status": "live", "owner": "menu", "scope": "answer_layer", "callable": true}, {"id": "price_leakage", "num": 50, "name": "Price Leakage", "section": "5 Checks & Exceptions", "formula": "leakage=menu_price\u2212realized_sold_price", "side_effect": "read", "status": "live", "owner": "checks", "scope": "universal", "callable": true}, {"id": "feed_gap_detector", "num": 51, "name": "feed_gap_detector", "section": "A", "formula": "expected (scope\u00d7date\u00d7feed) cell absent \u2192 alert.", "side_effect": "alert", "status": "live", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "outlet_silence_monitor", "num": 52, "name": "outlet_silence_monitor", "section": "A", "formula": "outlet in `outlet_dim` but 0 facts in window.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "date_gap_scanner", "num": 53, "name": "date_gap_scanner", "section": "A", "formula": "calendar holes in daily sales/purchase per outlet (e.g. Jagatpura no-July).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "partial_day_detector", "num": 54, "name": "partial_day_detector", "section": "A", "formula": "day present but row-count \u226a rolling median (truncated feed).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "zero_output_run_flag", "num": 55, "name": "zero_output_run_flag", "section": "A", "formula": "`ingest_run.status='ok'` yet `rows_ingested=0` (the supplier run).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "failed_run_monitor", "num": 56, "name": "failed_run_monitor", "section": "A", "formula": "`ingest_run.status='etl_fail'` (the current_stock run).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "late_feed_detector", "num": 57, "name": "late_feed_detector", "section": "A", "formula": "feed arrived after cadence+grace.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "missing_scope_writer", "num": 58, "name": "missing_scope_writer", "section": "A", "formula": "expected schema for a scope never written (Jagatpura not on PetPooja).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "coverage_ratio_tracker", "num": 59, "name": "coverage_ratio_tracker", "section": "A", "formula": "% of expected outlet\u00d7day\u00d7feed cells populated.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "new_outlet_no_feed", "num": 60, "name": "new_outlet_no_feed", "section": "A", "formula": "outlet added to dim but never produced a fact.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "dropped_channel_detector", "num": 61, "name": "dropped_channel_detector", "section": "A", "formula": "sales channel seen historically, absent now.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "sku_feed_dropout", "num": 62, "name": "sku_feed_dropout", "section": "A", "formula": "SKU sold/purchased before, silent N days.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "supplier_feed_dropout", "num": 63, "name": "supplier_feed_dropout", "section": "A", "formula": "supplier billed before, silent now.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "connector_heartbeat_monitor", "num": 64, "name": "connector_heartbeat_monitor", "section": "A", "formula": "per-connector last-success age vs SLA.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "backfill_hole_detector", "num": 65, "name": "backfill_hole_detector", "section": "A", "formula": "historical window still empty after a backfill run.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "row_count_regression", "num": 66, "name": "row_count_regression", "section": "A", "formula": "today's count vs same-weekday baseline drop.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "empty_table_sentinel", "num": 67, "name": "empty_table_sentinel", "section": "A", "formula": "canonical table expected-populated but 0 rows (stock/supplier/wastage).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "schema_drift_on_ingest", "num": 68, "name": "schema_drift_on_ingest", "section": "A", "formula": "payload key-set changed vs format contract.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "mandatory_field_absence", "num": 69, "name": "mandatory_field_absence", "section": "A", "formula": "required payload field null-rate spike.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "duplicate_ingest_run", "num": 70, "name": "duplicate_ingest_run", "section": "A", "formula": "same format_key+scope+window ingested twice.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "window_overlap_detector", "num": 71, "name": "window_overlap_detector", "section": "A", "formula": "ingest windows overlap \u2192 double-count risk.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "window_gap_detector", "num": 72, "name": "window_gap_detector", "section": "A", "formula": "ingest windows leave an uncovered date span.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "connector_auth_expiry_watch", "num": 73, "name": "connector_auth_expiry_watch", "section": "A", "formula": "session/token nearing expiry from connector meta.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "feed_completeness_scorecard", "num": 74, "name": "feed_completeness_scorecard", "section": "A", "formula": "per-source composite completeness index.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "mutation_detector", "num": 75, "name": "mutation_detector", "section": "B", "formula": "`updated_at != created_at` on an append-only table.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "in_place_upsert_flag", "num": 76, "name": "in_place_upsert_flag", "section": "B", "formula": "`purchases_canonical` row replaced (no prior kept).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "snapshot_differ", "num": 77, "name": "snapshot_differ", "section": "B", "formula": "field-by-field diff across two snapshots (unblocks `diff_snapshots`).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "silent_value_change_detector", "num": 78, "name": "silent_value_change_detector", "section": "B", "formula": "qty/price changed with no correction record.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "provenance_chain_verifier", "num": 79, "name": "provenance_chain_verifier", "section": "B", "formula": "`lake_events` hash-chain integrity (`prev_hash` links).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "chain_break_alarm", "num": 80, "name": "chain_break_alarm", "section": "B", "formula": "broken or re-parented event chain.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "retro_edit_detector", "num": 81, "name": "retro_edit_detector", "section": "B", "formula": "`business_date` \u226a `ingested_at` (backdated write).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "scope_reassignment_detector", "num": 82, "name": "scope_reassignment_detector", "section": "B", "formula": "a crow's `scope_id` changed between runs (ETL vs sanity competing writers).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "evidence_ref_missing", "num": 83, "name": "evidence_ref_missing", "section": "B", "formula": "canonical row with empty `evidence_refs` (I2 breach).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "provenance_completeness", "num": 84, "name": "provenance_completeness", "section": "B", "formula": "% rows with full `field_provenance`.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "correction_without_reason", "num": 85, "name": "correction_without_reason", "section": "B", "formula": "change lacking actor/reason.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "orphan_supersede", "num": 86, "name": "orphan_supersede", "section": "B", "formula": "`superseded_by` points to a nonexistent version.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "authority_conflict_detector", "num": 87, "name": "authority_conflict_detector", "section": "B", "formula": "two authoritative sources disagree on one cell.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "replay_divergence", "num": 88, "name": "replay_divergence", "section": "B", "formula": "recompute vs stored value differ (mock-vs-real differ).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "bill_not_found", "num": 89, "name": "bill_not_found", "section": "C", "formula": "receipt/consumption references an invoice absent from the purchase feed.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "invoice_coverage_tracker", "num": 90, "name": "invoice_coverage_tracker", "section": "C", "formula": "% purchase lines carrying an invoice number (today \u224820%).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "orphan_payment_detector", "num": 91, "name": "orphan_payment_detector", "section": "C", "formula": "`paid_amount` present, no matching invoice.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "unbilled_receipt_detector", "num": 92, "name": "unbilled_receipt_detector", "section": "C", "formula": "`received_qty>0` but no invoice/bill.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "grn_invoice_matcher", "num": 93, "name": "grn_invoice_matcher", "section": "C", "formula": "3-way GRN\u2194PO\u2194invoice match.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "dispatch_receipt_reconciler", "num": 96, "name": "dispatch_receipt_reconciler", "section": "C", "formula": "central sent vs outlet received delta.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "sales_settlement_matcher", "num": 97, "name": "sales_settlement_matcher", "section": "C", "formula": "POS sales vs aggregator settlement/payout.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "double_billing_detector", "num": 98, "name": "double_billing_detector", "section": "C", "formula": "same invoice_no across >1 line/outlet.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "amount_mismatch_reconciler", "num": 99, "name": "amount_mismatch_reconciler", "section": "C", "formula": "invoiced vs received vs qty\u00d7price.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "tax_reconciliation", "num": 100, "name": "tax_reconciliation", "section": "C", "formula": "cgst+sgst+igst+cess vs computed on taxable.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "supplier_ledger_reconciler", "num": 101, "name": "supplier_ledger_reconciler", "section": "C", "formula": "\u03a3 invoices vs \u03a3 payments per supplier.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "cross_outlet_transfer_matcher", "num": 102, "name": "cross_outlet_transfer_matcher", "section": "C", "formula": "transfer-out vs transfer-in.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "menu_pos_catalog_matcher", "num": 103, "name": "menu_pos_catalog_matcher", "section": "C", "formula": "POS item ref vs menu catalog.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "recipe_purchase_link_checker", "num": 104, "name": "recipe_purchase_link_checker", "section": "C", "formula": "recipe component \u2194 purchased SKU existence.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "payment_status_reconciler", "num": 106, "name": "payment_status_reconciler", "section": "C", "formula": "`payment_status` vs `paid_amount` vs `total` consistency.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "inventory_mismatch", "num": 107, "name": "inventory_mismatch", "section": "D", "formula": "book stock (open+recv\u2212consumed) vs physical count.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "negative_stock_detector", "num": 108, "name": "negative_stock_detector", "section": "D", "formula": "derived balance < 0.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "stock_variance_calculator", "num": 109, "name": "stock_variance_calculator", "section": "D", "formula": "\u0394 = expected \u2212 counted per SKU.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "shrinkage_estimator", "num": 110, "name": "shrinkage_estimator", "section": "D", "formula": "unexplained loss = purchases \u2212 consumption \u2212 closing.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "stock_days_calculator", "num": 111, "name": "stock_days_calculator", "section": "D", "formula": "closing \u00f7 avg daily usage.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "reorder_point_monitor", "num": 112, "name": "reorder_point_monitor", "section": "D", "formula": "stock < reorder threshold.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "overstock_detector", "num": 113, "name": "overstock_detector", "section": "D", "formula": "stock_days > ceiling (spoilage risk).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "deadstock_detector", "num": 114, "name": "deadstock_detector", "section": "D", "formula": "SKU with movement=0 over window.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "expiry_risk_monitor", "num": 115, "name": "expiry_risk_monitor", "section": "D", "formula": "perishable lot age vs shelf-life.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "phantom_stock_detector", "num": 119, "name": "phantom_stock_detector", "section": "D", "formula": "sold while book-stock zero.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "wastage_vs_stock_check", "num": 120, "name": "wastage_vs_stock_check", "section": "D", "formula": "recorded wastage \u2264 available stock.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "transfer_balance_checker", "num": 121, "name": "transfer_balance_checker", "section": "D", "formula": "net transfers reconcile across nodes.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "lot_lineage_integrity", "num": 122, "name": "lot_lineage_integrity", "section": "D", "formula": "every raw lot \u2192 descendant or declared waste (axis C).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "stock_valuation", "num": 123, "name": "stock_valuation", "section": "D", "formula": "closing stock \u00d7 unit cost (inventory \u20b9).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "abc_inventory_classifier", "num": 124, "name": "abc_inventory_classifier", "section": "D", "formula": "value-based A/B/C banding.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "slow_mover_flag", "num": 125, "name": "slow_mover_flag", "section": "D", "formula": "low velocity + high stock.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "stockout_frequency_tracker", "num": 126, "name": "stockout_frequency_tracker", "section": "D", "formula": "zero-stock incidents per SKU.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "inventory_accuracy_scorecard", "num": 127, "name": "inventory_accuracy_scorecard", "section": "D", "formula": "count accuracy % per outlet.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "par_level_advisor", "num": 128, "name": "par_level_advisor", "section": "D", "formula": "recommend par from usage bands.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "recipe_costability_scanner", "num": 129, "name": "recipe_costability_scanner", "section": "E", "formula": "% components with a real purchase price (\u224814/376 today).", "side_effect": "alert", "status": "live", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "uncostable_component_lister", "num": 130, "name": "uncostable_component_lister", "section": "E", "formula": "components lacking cost basis + reason.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "missing_staples_detector", "num": 131, "name": "missing_staples_detector", "section": "E", "formula": "dry-staples (oil/ghee/salt/spice) absent from purchase feed.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "ingredient_purchase_mapper", "num": 132, "name": "ingredient_purchase_mapper", "section": "E", "formula": "auto-map recipe component \u2194 purchase SKU (governed fuzzy).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "consumption_calculator", "num": 133, "name": "consumption_calculator", "section": "E", "formula": "Consumed(i)=\u03a3 sales(d)\u00d7BOM(d,i).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "theoretical_cogs", "num": 134, "name": "theoretical_cogs", "section": "E", "formula": "\u03a3 consumed \u00d7 cost.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "recipe_cost_rollup", "num": 135, "name": "recipe_cost_rollup", "section": "E", "formula": "per-dish cost from priced BOM.", "side_effect": "read", "status": "live", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "menu_recipe_linker", "num": 136, "name": "menu_recipe_linker", "section": "E", "formula": "menu_item \u2194 recipe/dish mapping.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "unit_normalizer_g_kg", "num": 137, "name": "unit_normalizer_g_kg", "section": "E", "formula": "g\u2194kg\u2194piece normalization for BOM\u00d7price.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "yield_factor_estimator", "num": 138, "name": "yield_factor_estimator", "section": "E", "formula": "raw\u2192prepared yield per component (catalog #12).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "recipe_drift_detector", "num": 139, "name": "recipe_drift_detector", "section": "E", "formula": "BOM changed version-over-version.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "cost_per_serving", "num": 140, "name": "cost_per_serving", "section": "E", "formula": "theoretical food cost per menu item.", "side_effect": "read", "status": "live", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "substitution_detector", "num": 141, "name": "substitution_detector", "section": "E", "formula": "component swapped vs golden recipe.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "over_portioning_flag", "num": 142, "name": "over_portioning_flag", "section": "E", "formula": "actual usage > theoretical.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "recipe_completeness_check", "num": 143, "name": "recipe_completeness_check", "section": "E", "formula": "recipe missing component/qty/uom.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "bom_price_freshness", "num": 144, "name": "bom_price_freshness", "section": "E", "formula": "cost-basis staleness per component.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "high_cost_ingredient_ranker", "num": 145, "name": "high_cost_ingredient_ranker", "section": "E", "formula": "top \u20b9 drivers per dish.", "side_effect": "read", "status": "live", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "recipe_coverage_tracker", "num": 146, "name": "recipe_coverage_tracker", "section": "E", "formula": "% menu items with a costable recipe.", "side_effect": "read", "status": "live", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "price_anomaly_flag", "num": 148, "name": "price_anomaly_flag", "section": "F", "formula": "line price outlier vs peer/median.", "side_effect": "alert", "status": "live", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "supplier_price_benchmarker", "num": 149, "name": "supplier_price_benchmarker", "section": "F", "formula": "same SKU price across suppliers.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "duplicate_purchase_detector", "num": 151, "name": "duplicate_purchase_detector", "section": "F", "formula": "same SKU/qty/day repeated.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "maverick_buy_detector", "num": 152, "name": "maverick_buy_detector", "section": "F", "formula": "off-contract / non-preferred supplier buy.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "contract_price_compliance", "num": 153, "name": "contract_price_compliance", "section": "F", "formula": "invoice price vs `supplier_contract`.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "supplier_concentration_risk", "num": 154, "name": "supplier_concentration_risk", "section": "F", "formula": "% spend in top supplier per category.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "lead_time_analyzer", "num": 155, "name": "lead_time_analyzer", "section": "F", "formula": "ordered\u2192received latency per supplier.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "fill_rate_tracker", "num": 156, "name": "fill_rate_tracker", "section": "F", "formula": "received_qty/ordered_qty per supplier.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "short_delivery_detector", "num": 157, "name": "short_delivery_detector", "section": "F", "formula": "received < ordered beyond tolerance.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "over_delivery_detector", "num": 158, "name": "over_delivery_detector", "section": "F", "formula": "received > ordered.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "purchase_price_variance", "num": 159, "name": "purchase_price_variance", "section": "F", "formula": "actual vs standard cost.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "gstin_validity_checker", "num": 161, "name": "gstin_validity_checker", "section": "F", "formula": "seller/purchaser GSTIN format+checksum.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "new_supplier_watch", "num": 162, "name": "new_supplier_watch", "section": "F", "formula": "first-time supplier appears.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "payment_terms_monitor", "num": 163, "name": "payment_terms_monitor", "section": "F", "formula": "unpaid aging by supplier.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "procurement_seasonality", "num": 164, "name": "procurement_seasonality", "section": "F", "formula": "category spend seasonality.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "revenue_trend_analyzer", "num": 165, "name": "revenue_trend_analyzer", "section": "G", "formula": "net-sales trend per outlet.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "cover_count_reconciler", "num": 166, "name": "cover_count_reconciler", "section": "G", "formula": "covers vs transactions consistency.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "avg_check_calculator", "num": 167, "name": "avg_check_calculator", "section": "G", "formula": "revenue \u00f7 covers.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "daypart_analyzer", "num": 168, "name": "daypart_analyzer", "section": "G", "formula": "sales by hour/daypart (`sold_at`).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "channel_reliance_analyzer", "num": 169, "name": "channel_reliance_analyzer", "section": "G", "formula": "dine-in vs delivery mix + concentration.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "discount_leakage_tracker", "num": 171, "name": "discount_leakage_tracker", "section": "G", "formula": "\u03a3 discount vs gross.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "void_refund_monitor", "num": 172, "name": "void_refund_monitor", "section": "G", "formula": "voids/refunds rate anomaly.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "velocity_classifier", "num": 173, "name": "velocity_classifier", "section": "G", "formula": "fast/slow movers.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "pareto_band_calculator", "num": 174, "name": "pareto_band_calculator", "section": "G", "formula": "80/20 menu contribution.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "lagging_item_detector", "num": 175, "name": "lagging_item_detector", "section": "G", "formula": "declining sellers.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "sales_spike_detector", "num": 176, "name": "sales_spike_detector", "section": "G", "formula": "abnormal day spike/drop.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "weekday_seasonality", "num": 177, "name": "weekday_seasonality", "section": "G", "formula": "day-of-week revenue pattern.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "festival_uplift_analyzer", "num": 178, "name": "festival_uplift_analyzer", "section": "G", "formula": "festival-period effect.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "tax_collected_tracker", "num": 179, "name": "tax_collected_tracker", "section": "G", "formula": "tax per outlet vs rate.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "revenue_per_outlet_ranking", "num": 180, "name": "revenue_per_outlet_ranking", "section": "G", "formula": "outlet leaderboard.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "price_leakage_detector", "num": 181, "name": "price_leakage_detector", "section": "H", "formula": "menu vs realized price (catalog #50).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "discount_depth_analyzer", "num": 182, "name": "discount_depth_analyzer", "section": "H", "formula": "effective discount per item.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "menu_price_drift", "num": 184, "name": "menu_price_drift", "section": "H", "formula": "catalog price changes over time.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "underpriced_item_flag", "num": 185, "name": "underpriced_item_flag", "section": "H", "formula": "realized < cost (loss makers).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "unpriced_menu_item", "num": 186, "name": "unpriced_menu_item", "section": "H", "formula": "menu item with no price.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "orphan_pos_item", "num": 187, "name": "orphan_pos_item", "section": "H", "formula": "sold item not in menu catalog.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "menu_gap_detector", "num": 188, "name": "menu_gap_detector", "section": "H", "formula": "catalog item never sold.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "price_ending_anomaly", "num": 189, "name": "price_ending_anomaly", "section": "H", "formula": "irregular price points.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "combo_margin_analyzer", "num": 190, "name": "combo_margin_analyzer", "section": "H", "formula": "combo/bundle profitability.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "gross_margin_calculator", "num": 193, "name": "gross_margin_calculator", "section": "I", "formula": "(price\u2212fc)/price per dish.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "blended_margin", "num": 194, "name": "blended_margin", "section": "I", "formula": "outlet weighted margin.", "side_effect": "read", "status": "live", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "contribution_margin", "num": 195, "name": "contribution_margin", "section": "I", "formula": "per-outlet contribution.", "side_effect": "read", "status": "live", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "material_cost_ratio", "num": 196, "name": "material_cost_ratio", "section": "I", "formula": "material % per outlet (catalog #36).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "margin_erosion_detector", "num": 197, "name": "margin_erosion_detector", "section": "I", "formula": "actual fc \u2212 theoretical fc.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "erosion_cause_decomposer", "num": 198, "name": "erosion_cause_decomposer", "section": "I", "formula": "5-cause split (waste/price/yield/portion/mix).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "pnl_supply_vs_consumption_bridge", "num": 200, "name": "pnl_supply_vs_consumption_bridge", "section": "I", "formula": "supply-proxy vs true COGS gap.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "break_even_calculator", "num": 201, "name": "break_even_calculator", "section": "I", "formula": "covers to break even.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "cost_trend_tracker", "num": 202, "name": "cost_trend_tracker", "section": "I", "formula": "food-cost % over time.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "margin_outlier_detector", "num": 203, "name": "margin_outlier_detector", "section": "I", "formula": "dish/outlet margin outliers.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "fixed_cost_allocator", "num": 204, "name": "fixed_cost_allocator", "section": "I", "formula": "overhead allocation (v2).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "profit_leakage_ranker", "num": 205, "name": "profit_leakage_ranker", "section": "I", "formula": "top \u20b9 margin leaks ranked.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "what_if_price_simulator", "num": 206, "name": "what_if_price_simulator", "section": "I", "formula": "margin under price change.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "dish_profit_ranking", "num": 207, "name": "dish_profit_ranking", "section": "I", "formula": "most/least profitable dishes.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "outlet_pnl_comparator", "num": 208, "name": "outlet_pnl_comparator", "section": "I", "formula": "cross-outlet P&L benchmark.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "wastage_rate_calculator", "num": 209, "name": "wastage_rate_calculator", "section": "J", "formula": "waste \u00f7 input per node.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "net_wastage_estimator", "num": 210, "name": "net_wastage_estimator", "section": "J", "formula": "declared vs implied waste.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "yield_variance_detector", "num": 211, "name": "yield_variance_detector", "section": "J", "formula": "actual vs golden yield.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "tandoor_shrinkage_tracker", "num": 212, "name": "tandoor_shrinkage_tracker", "section": "J", "formula": "cook-loss on grilled items.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "marinade_uptake_checker", "num": 213, "name": "marinade_uptake_checker", "section": "J", "formula": "marination weight gain.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "prep_conversion_reconciler", "num": 214, "name": "prep_conversion_reconciler", "section": "J", "formula": "raw kg \u2192 prepared pieces (Bada/Chhota).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "pieces_per_kg_learner", "num": 215, "name": "pieces_per_kg_learner", "section": "J", "formula": "learn bada/chhota conversion (catalog #17).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "batch_balance_checker", "num": 216, "name": "batch_balance_checker", "section": "J", "formula": "batch input vs output+waste mass balance.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "overproduction_detector", "num": 217, "name": "overproduction_detector", "section": "J", "formula": "produced > demand.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "underproduction_detector", "num": 218, "name": "underproduction_detector", "section": "J", "formula": "produced < demand \u2192 stockout.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "spoilage_cost_estimator", "num": 219, "name": "spoilage_cost_estimator", "section": "J", "formula": "\u20b9 of wasted material.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "trim_waste_analyzer", "num": 220, "name": "trim_waste_analyzer", "section": "J", "formula": "cutting waste vs standard.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "production_plan_adherence", "num": 221, "name": "production_plan_adherence", "section": "J", "formula": "planned vs actual output.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "kitchen_complexity_flagger", "num": 222, "name": "kitchen_complexity_flagger", "section": "J", "formula": "high-variance prep steps.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "demand_forecaster", "num": 223, "name": "demand_forecaster", "section": "K", "formula": "per-item forecast from sales history.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "reorder_quantity_optimizer", "num": 224, "name": "reorder_quantity_optimizer", "section": "K", "formula": "EOQ-style suggested order.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "par_level_learner", "num": 225, "name": "par_level_learner", "section": "K", "formula": "learn par from usage bands (catalog #34).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "demand_band_builder", "num": 227, "name": "demand_band_builder", "section": "K", "formula": "P10/P50/P90 per item (catalog #25).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "stockout_predictor", "num": 228, "name": "stockout_predictor", "section": "K", "formula": "forecast vs stock \u2192 risk.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "forecast_accuracy_tracker", "num": 229, "name": "forecast_accuracy_tracker", "section": "K", "formula": "forecast vs actual MAPE.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "seasonal_demand_model", "num": 230, "name": "seasonal_demand_model", "section": "K", "formula": "festival/weekday adjusted demand.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "new_item_demand_seed", "num": 231, "name": "new_item_demand_seed", "section": "K", "formula": "cold-start estimate for new dish.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "waste_aware_order_advisor", "num": 232, "name": "waste_aware_order_advisor", "section": "K", "formula": "order net of expected waste.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "central_order_consolidator", "num": 233, "name": "central_order_consolidator", "section": "K", "formula": "\u03a3 outlet demand \u2192 central PO (Tap T7).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "dispatch_planner", "num": 234, "name": "dispatch_planner", "section": "K", "formula": "allocate central stock to outlets.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "demand_anomaly_detector", "num": 236, "name": "demand_anomaly_detector", "section": "K", "formula": "demand outlier vs forecast.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "feed_freshness_monitor", "num": 237, "name": "feed_freshness_monitor", "section": "L", "formula": "last-capture vs cadence (live check).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "sla_breach_alerter", "num": 238, "name": "sla_breach_alerter", "section": "L", "formula": "feed later than SLA grade.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "connector_success_rate", "num": 239, "name": "connector_success_rate", "section": "L", "formula": "% successful runs per connector.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "ingest_latency_tracker", "num": 240, "name": "ingest_latency_tracker", "section": "L", "formula": "source-event \u2192 canonical lag.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "expected_feed_governor", "num": 241, "name": "expected_feed_governor", "section": "L", "formula": "manage `expected_feed` rows.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "cadence_learner", "num": 242, "name": "cadence_learner", "section": "L", "formula": "infer cadence from history.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "feed_volume_baseline", "num": 243, "name": "feed_volume_baseline", "section": "L", "formula": "expected row-count band per feed.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "stale_master_detector", "num": 244, "name": "stale_master_detector", "section": "L", "formula": "masters (SKU/supplier) not refreshed.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "connector_error_classifier", "num": 245, "name": "connector_error_classifier", "section": "L", "formula": "categorize `etl_fail` reasons.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "pipeline_backlog_monitor", "num": 246, "name": "pipeline_backlog_monitor", "section": "L", "formula": "unprocessed inbox depth.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "unmapped_value_detector", "num": 247, "name": "unmapped_value_detector", "section": "M", "formula": "raw value w/o canonical (feeds `data_gap`).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "mapping_coverage_tracker", "num": 248, "name": "mapping_coverage_tracker", "section": "M", "formula": "% mapped per `map_type`.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "duplicate_master_detector", "num": 249, "name": "duplicate_master_detector", "section": "M", "formula": "dup SKU/supplier/outlet entries.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "orphan_dimension_detector", "num": 250, "name": "orphan_dimension_detector", "section": "M", "formula": "dim row referenced nowhere.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "sku_dedup_suggester", "num": 251, "name": "sku_dedup_suggester", "section": "M", "formula": "near-duplicate SKU names.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "supplier_dedup_suggester", "num": 252, "name": "supplier_dedup_suggester", "section": "M", "formula": "same supplier variant names.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "uom_consistency_checker", "num": 253, "name": "uom_consistency_checker", "section": "M", "formula": "SKU in >1 uom dimension (catalog #units).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "gstin_dedup", "num": 254, "name": "gstin_dedup", "section": "M", "formula": "same GSTIN, different supplier records.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "outlet_hierarchy_validator", "num": 255, "name": "outlet_hierarchy_validator", "section": "M", "formula": "outlet\u2192chain\u2192tenant integrity.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "category_taxonomy_checker", "num": 256, "name": "category_taxonomy_checker", "section": "M", "formula": "inconsistent category labels.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "canonical_name_normalizer", "num": 257, "name": "canonical_name_normalizer", "section": "M", "formula": "casing/spacing/spelling normalization.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "master_completeness_scorecard", "num": 258, "name": "master_completeness_scorecard", "section": "M", "formula": "required master fields present.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "reconcile_sop", "num": 259, "name": "reconcile_sop", "section": "N", "formula": "ordered vs received vs recipe (existing check).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "mass_balance_checker", "num": 260, "name": "mass_balance_checker", "section": "N", "formula": "node inputs = outputs + waste (axis A).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "inter_node_reconciler", "num": 261, "name": "inter_node_reconciler", "section": "N", "formula": "dispatch \u2194 receive (axis B).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "graph_lineage_reconciler", "num": 262, "name": "graph_lineage_reconciler", "section": "N", "formula": "raw lot vs all descendants (axis C).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "temporal_shelf_life_checker", "num": 263, "name": "temporal_shelf_life_checker", "section": "N", "formula": "lot age vs shelf-life (axis D).", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "confirmation_grade_tracker", "num": 264, "name": "confirmation_grade_tracker", "section": "N", "formula": "provisional vs confirmed (\u22652 sources).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "tolerance_breach_detector", "num": 265, "name": "tolerance_breach_detector", "section": "N", "formula": "delta beyond golden tolerance.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "sop_adherence_scorer", "num": 266, "name": "sop_adherence_scorer", "section": "N", "formula": "% ops within SOP.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "issue_router", "num": 267, "name": "issue_router", "section": "N", "formula": "breach \u2192 role-owned `proj_issue`.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "twin_state_drift", "num": 268, "name": "twin_state_drift", "section": "N", "formula": "projection vs recomputed.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "wave_bucketer", "num": 269, "name": "wave_bucketer", "section": "N", "formula": "dispatch into 12:30/18:30 waves (Tap T4).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "prepared_item_tracker", "num": 270, "name": "prepared_item_tracker", "section": "N", "formula": "prepared dispatch (Tikka/Satay/Lollipop).", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "alert_collator", "num": 271, "name": "alert_collator", "section": "O", "formula": "findings \u2192 `alert_ledger` (existing).", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "ops_alert_emitter", "num": 272, "name": "ops_alert_emitter", "section": "O", "formula": "observe\u2192judge\u2192`ops_alert` (existing).", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "severity_grader", "num": 273, "name": "severity_grader", "section": "O", "formula": "band a finding.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "dedup_signature_builder", "num": 274, "name": "dedup_signature_builder", "section": "O", "formula": "stable alert dedup key.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "auto_resolver", "num": 275, "name": "auto_resolver", "section": "O", "formula": "clear alert when signal gone.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "owner_resolver", "num": 279, "name": "owner_resolver", "section": "O", "formula": "finding \u2192 person via `people` (catalog #43).", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "alert_impact_ranker", "num": 281, "name": "alert_impact_ranker", "section": "O", "formula": "\u20b9-weighted alert priority.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "recurring_issue_detector", "num": 282, "name": "recurring_issue_detector", "section": "O", "formula": "same signature recurs \u2192 chronic flag.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "evidence_ref_validator", "num": 283, "name": "evidence_ref_validator", "section": "P", "formula": "every claim has `evidence_refs` (I2).", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "tool_run_ledger", "num": 284, "name": "tool_run_ledger", "section": "P", "formula": "record each tool call (catalog #45/#47).", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "mock_vs_real_differ", "num": 286, "name": "mock_vs_real_differ", "section": "P", "formula": "mock vs real output diff.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "tenant_scope_guard", "num": 287, "name": "tenant_scope_guard", "section": "P", "formula": "every read tenant-scoped (I4).", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "confidence_scorer", "num": 288, "name": "confidence_scorer", "section": "P", "formula": "attach confidence to result.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "assumption_logger", "num": 289, "name": "assumption_logger", "section": "P", "formula": "record assumptions used.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "tool_coverage_dashboard", "num": 290, "name": "tool_coverage_dashboard", "section": "P", "formula": "which tools live/blocked.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "closure_rate_calculator", "num": 292, "name": "closure_rate_calculator", "section": "Q", "formula": "per-person/role closure %.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "sla_compliance_scorer", "num": 293, "name": "sla_compliance_scorer", "section": "Q", "formula": "task within due horizon.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "workload_balancer", "num": 294, "name": "workload_balancer", "section": "Q", "formula": "assignments per owner.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "overdue_escalation_list", "num": 295, "name": "overdue_escalation_list", "section": "Q", "formula": "aging tasks by owner.", "side_effect": "read", "status": "ready", "owner": "pipeline (internal)", "scope": "infra", "callable": true}, {"id": "accountability_map", "num": 296, "name": "accountability_map", "section": "Q", "formula": "issue \u2192 owner \u2192 outcome trace.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "response_time_analyzer", "num": 297, "name": "response_time_analyzer", "section": "Q", "formula": "alert \u2192 ack latency.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "role_coverage_checker", "num": 298, "name": "role_coverage_checker", "section": "Q", "formula": "every scope has an owner.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "repeat_offender_detector", "num": 299, "name": "repeat_offender_detector", "section": "Q", "formula": "outlet/person with chronic issues.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "people_registry_audit", "num": 300, "name": "people_registry_audit", "section": "Q", "formula": "roster completeness/contactability.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "dish_units_per_day", "num": 301, "name": "dish_units_per_day", "section": "D", "formula": "average units sold per active selling day per dish, chain-wide.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_revenue_per_day", "num": 302, "name": "dish_revenue_per_day", "section": "D", "formula": "average \u20b9 revenue per active selling day per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_units_per_day_by_outlet", "num": 303, "name": "dish_units_per_day_by_outlet", "section": "D", "formula": "units/day per dish split by outlet (Jag/Raj/WTP).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_revenue_per_day_by_outlet", "num": 304, "name": "dish_revenue_per_day_by_outlet", "section": "D", "formula": "\u20b9/day per dish split by outlet.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_rolling_avg_7d", "num": 305, "name": "dish_rolling_avg_7d", "section": "D", "formula": "7-day trailing rolling average units/day per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_rolling_avg_28d", "num": 306, "name": "dish_rolling_avg_28d", "section": "D", "formula": "28-day trailing rolling average units/day per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_rolling_avg_delta_7v28", "num": 307, "name": "dish_rolling_avg_delta_7v28", "section": "D", "formula": "gap between 7d and 28d rolling avg (short-term vs baseline).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_velocity_rank_chainwide", "num": 308, "name": "dish_velocity_rank_chainwide", "section": "D", "formula": "rank all dishes by average daily units chain-wide.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_velocity_rank_by_outlet", "num": 309, "name": "dish_velocity_rank_by_outlet", "section": "D", "formula": "per-outlet velocity ranking of dishes.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_velocity_percentile", "num": 310, "name": "dish_velocity_percentile", "section": "D", "formula": "percentile bucket of each dish's velocity in the menu.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_active_selling_days", "num": 311, "name": "dish_active_selling_days", "section": "D", "formula": "count of distinct days a dish actually sold (denominator hygiene).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_days_since_last_sale", "num": 312, "name": "dish_days_since_last_sale", "section": "D", "formula": "days elapsed since a dish's most recent sale.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_days_since_first_sale", "num": 313, "name": "dish_days_since_first_sale", "section": "D", "formula": "dish age = days since first recorded sale.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_selling_day_coverage", "num": 314, "name": "dish_selling_day_coverage", "section": "D", "formula": "fraction of calendar days in window with \u22651 sale of the dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_units_per_cover", "num": 315, "name": "dish_units_per_cover", "section": "D", "formula": "units of dish sold per dine-in cover (attach intensity).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_avg_line_qty", "num": 316, "name": "dish_avg_line_qty", "section": "D", "formula": "average quantity per order line for a dish (single vs multi buys).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_peak_day_units", "num": 317, "name": "dish_peak_day_units", "section": "D", "formula": "single best sales day and its unit count per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_median_daily_units", "num": 318, "name": "dish_median_daily_units", "section": "D", "formula": "median (robust) daily units per dish vs mean.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_velocity_coefficient_of_variation", "num": 319, "name": "dish_velocity_coefficient_of_variation", "section": "D", "formula": "day-to-day volatility of a dish's daily units.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "chain_daily_dish_movement_summary", "num": 320, "name": "chain_daily_dish_movement_summary", "section": "D", "formula": "chain-wide table of units/day + \u20b9/day for every dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_dow_profile", "num": 321, "name": "dish_dow_profile", "section": "D", "formula": "average units per day-of-week for a dish (Mon\u2013Sun histogram).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_peak_dow", "num": 322, "name": "dish_peak_dow", "section": "D", "formula": "the day-of-week a dish sells highest (operator's \"sells high on what day\").", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_trough_dow", "num": 323, "name": "dish_trough_dow", "section": "D", "formula": "the weakest day-of-week for a dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_weekend_vs_weekday_index", "num": 324, "name": "dish_weekend_vs_weekday_index", "section": "D", "formula": "ratio of weekend to weekday average units per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_dow_concentration", "num": 325, "name": "dish_dow_concentration", "section": "D", "formula": "how skewed a dish's sales are toward specific weekdays.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_daypart_split", "num": 326, "name": "dish_daypart_split", "section": "D", "formula": "units split across lunch/afternoon/dinner/late dayparts from sold_at.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_lunch_vs_dinner_index", "num": 327, "name": "dish_lunch_vs_dinner_index", "section": "D", "formula": "ratio of dinner to lunch units per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_peak_daypart", "num": 328, "name": "dish_peak_daypart", "section": "D", "formula": "the daypart in which a dish sells most.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_hourly_curve", "num": 329, "name": "dish_hourly_curve", "section": "D", "formula": "hour-of-day sales curve for a dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_peak_hour", "num": 330, "name": "dish_peak_hour", "section": "D", "formula": "single highest-selling hour for a dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_dow_x_daypart_heatmap", "num": 331, "name": "dish_dow_x_daypart_heatmap", "section": "D", "formula": "day-of-week \u00d7 daypart unit matrix per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_dow_by_outlet", "num": 332, "name": "dish_dow_by_outlet", "section": "D", "formula": "day-of-week peak per dish per outlet (cross-outlet timing variance).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_dow_by_channel", "num": 333, "name": "dish_dow_by_channel", "section": "D", "formula": "weekday profile split dine-in vs delivery per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "menu_peak_day_leaderboard", "num": 334, "name": "menu_peak_day_leaderboard", "section": "D", "formula": "for each weekday, which dishes over-index that day.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_daypart_revenue_split", "num": 335, "name": "dish_daypart_revenue_split", "section": "D", "formula": "\u20b9 (not just units) split by daypart per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_early_vs_late_week_trend", "num": 336, "name": "dish_early_vs_late_week_trend", "section": "D", "formula": "Mon-Tue vs Fri-Sat momentum within the week.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "outlet_daypart_mix_signature", "num": 337, "name": "outlet_daypart_mix_signature", "section": "D", "formula": "each outlet's dish mix by daypart (profile fingerprint).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_stall_detector", "num": 338, "name": "dish_stall_detector", "section": "D", "formula": "flags dishes whose velocity has flattened after prior growth.", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_decline_detector", "num": 339, "name": "dish_decline_detector", "section": "D", "formula": "flags dishes with sustained downward velocity slope.", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_order_drop_alert", "num": 340, "name": "dish_order_drop_alert", "section": "D", "formula": "detects when a dish's daily orders fall sharply vs baseline (operator's \"orders fall\").", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_momentum_score", "num": 341, "name": "dish_momentum_score", "section": "D", "formula": "signed momentum (recent slope) per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_acceleration", "num": 342, "name": "dish_acceleration", "section": "D", "formula": "second-derivative: is decline accelerating or bottoming.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_plateau_detector", "num": 343, "name": "dish_plateau_detector", "section": "D", "formula": "identifies flat-line dishes at a stable ceiling.", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_sudden_stop_detector", "num": 344, "name": "dish_sudden_stop_detector", "section": "D", "formula": "dishes that sold regularly then abruptly went to zero.", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_trend_slope_28d", "num": 345, "name": "dish_trend_slope_28d", "section": "D", "formula": "linear regression slope of daily units over trailing 28d.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_trend_slope_by_outlet", "num": 346, "name": "dish_trend_slope_by_outlet", "section": "D", "formula": "per-outlet trend slope (decline isolated to one outlet).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_dropoff_magnitude", "num": 347, "name": "dish_dropoff_magnitude", "section": "D", "formula": "% decline from a dish's rolling peak to current level.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_weeks_in_decline", "num": 348, "name": "dish_weeks_in_decline", "section": "D", "formula": "consecutive weeks of falling units per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_recovery_detector", "num": 349, "name": "dish_recovery_detector", "section": "D", "formula": "dishes that declined then rebounded above prior level.", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_volatility_flag", "num": 350, "name": "dish_volatility_flag", "section": "D", "formula": "flags erratic dishes with no stable trend (noise vs signal).", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_changepoint_detector", "num": 351, "name": "dish_changepoint_detector", "section": "D", "formula": "detects the date a dish's sales level structurally shifted.", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_wow_change", "num": 352, "name": "dish_wow_change", "section": "D", "formula": "week-over-week % change in units per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_mom_change", "num": 353, "name": "dish_mom_change", "section": "D", "formula": "month-over-month % change in units per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_zscore_anomaly", "num": 354, "name": "dish_zscore_anomaly", "section": "D", "formula": "flags days where a dish's units deviate >N\u03c3 from its norm.", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "menu_decline_watchlist", "num": 355, "name": "menu_decline_watchlist", "section": "D", "formula": "ranked list of all declining dishes by severity for ops review.", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_stall_after_launch", "num": 356, "name": "dish_stall_after_launch", "section": "D", "formula": "new dishes that stalled shortly after introduction.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_lifecycle_stage", "num": 357, "name": "dish_lifecycle_stage", "section": "D", "formula": "classifies each dish new/rising/mature/declining/dead.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_lifecycle_transitions", "num": 358, "name": "dish_lifecycle_transitions", "section": "D", "formula": "dishes that changed lifecycle stage in the window.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_age_vs_velocity", "num": 359, "name": "dish_age_vs_velocity", "section": "D", "formula": "scatter of dish age against current velocity.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_new_launch_tracker", "num": 360, "name": "dish_new_launch_tracker", "section": "D", "formula": "dishes first-sold within the last N days and their ramp.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_dead_detector", "num": 361, "name": "dish_dead_detector", "section": "D", "formula": "dishes with zero sales for N+ consecutive days (candidate delist).", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_zombie_detector", "num": 362, "name": "dish_zombie_detector", "section": "D", "formula": "priced/on-menu dishes selling near-zero but not fully dead.", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_rank_churn", "num": 363, "name": "dish_rank_churn", "section": "D", "formula": "dishes whose velocity rank moved most between two periods.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_rank_history", "num": 364, "name": "dish_rank_history", "section": "D", "formula": "time-series of a dish's velocity rank.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_rising_stars", "num": 365, "name": "dish_rising_stars", "section": "D", "formula": "low-base dishes with fastest growth rate.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_falling_from_top", "num": 366, "name": "dish_falling_from_top", "section": "D", "formula": "former top-sellers now dropping in rank.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_time_to_maturity", "num": 367, "name": "dish_time_to_maturity", "section": "D", "formula": "days from launch to velocity plateau per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "menu_lifecycle_distribution", "num": 368, "name": "menu_lifecycle_distribution", "section": "D", "formula": "count of dishes in each lifecycle stage.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_launch_success_score", "num": 369, "name": "dish_launch_success_score", "section": "D", "formula": "composite ramp-speed + retention score for new dishes.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "menu_engineering_matrix", "num": 370, "name": "menu_engineering_matrix", "section": "D", "formula": "classifies dishes star/plowhorse/puzzle/dog via margin \u00d7 velocity.", "side_effect": "read", "status": "blocked", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "dish_star_list", "num": 371, "name": "dish_star_list", "section": "D", "formula": "high-margin high-velocity dishes to protect/feature.", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_plowhorse_list", "num": 372, "name": "dish_plowhorse_list", "section": "D", "formula": "low-margin high-velocity dishes (repricing candidates).", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_puzzle_list", "num": 373, "name": "dish_puzzle_list", "section": "D", "formula": "high-margin low-velocity dishes (promote/reposition).", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_dog_list", "num": 374, "name": "dish_dog_list", "section": "D", "formula": "low-margin low-velocity dishes (delist candidates).", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "menu_matrix_by_outlet", "num": 375, "name": "menu_matrix_by_outlet", "section": "D", "formula": "menu-engineering quadrants computed per outlet.", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "menu_matrix_shift", "num": 376, "name": "menu_matrix_shift", "section": "D", "formula": "dishes that crossed quadrants between two periods.", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_margin_velocity_scatter", "num": 377, "name": "dish_margin_velocity_scatter", "section": "D", "formula": "raw data table backing the matrix (margin vs velocity).", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "menu_quadrant_revenue_share", "num": 378, "name": "menu_quadrant_revenue_share", "section": "D", "formula": "share of revenue/profit sitting in each quadrant.", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_reprice_candidate_ranker", "num": 379, "name": "dish_reprice_candidate_ranker", "section": "D", "formula": "plowhorses ranked by margin uplift potential.", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_promote_candidate_ranker", "num": 380, "name": "dish_promote_candidate_ranker", "section": "D", "formula": "puzzles ranked by velocity-upside if promoted.", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_contribution_margin", "num": 381, "name": "dish_contribution_margin", "section": "D", "formula": "per-dish contribution margin from recipe cost vs price.", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_gross_profit_per_day", "num": 382, "name": "dish_gross_profit_per_day", "section": "D", "formula": "daily gross profit contribution per dish.", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "menu_profit_concentration", "num": 383, "name": "menu_profit_concentration", "section": "D", "formula": "share of total profit from top-N dishes (Pareto).", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_cannibalization_detector", "num": 384, "name": "dish_cannibalization_detector", "section": "D", "formula": "new/promoted dish coinciding with another dish's drop.", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_halo_detector", "num": 385, "name": "dish_halo_detector", "section": "D", "formula": "dishes whose sales rise alongside a hero dish.", "side_effect": "alert", "status": "ready", "owner": "Dish & Menu Performance", "scope": "scheduled_check", "callable": true}, {"id": "dish_substitution_pairs", "num": 386, "name": "dish_substitution_pairs", "section": "D", "formula": "dish pairs with inverse day-to-day sales correlation.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_complementarity_pairs", "num": 387, "name": "dish_complementarity_pairs", "section": "D", "formula": "dish pairs with positive co-movement over time.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "variant_cannibalization", "num": 388, "name": "variant_cannibalization", "section": "D", "formula": "variants of one item stealing from each other (e.g. sizes).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_net_incrementality", "num": 389, "name": "dish_net_incrementality", "section": "D", "formula": "new-dish gross sales minus estimated cannibalized sales.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "promo_cannibalization_check", "num": 390, "name": "promo_cannibalization_check", "section": "D", "formula": "whether a discounted dish pulled from full-price siblings.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "category_internal_cannibalization", "num": 391, "name": "category_internal_cannibalization", "section": "D", "formula": "cannibalization concentration within a menu category.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "combo_attach_rate", "num": 392, "name": "combo_attach_rate", "section": "D", "formula": "fraction of orders containing a combo/bundle item.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "combo_vs_alacarte_margin", "num": 393, "name": "combo_vs_alacarte_margin", "section": "D", "formula": "margin comparison bundle vs sum of components.", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "combo_incrementality", "num": 394, "name": "combo_incrementality", "section": "D", "formula": "whether combos add baskets or just discount existing ones.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_attach_rate", "num": 395, "name": "dish_attach_rate", "section": "D", "formula": "probability a given dish appears with an anchor dish in an order.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_top_attachments", "num": 396, "name": "dish_top_attachments", "section": "D", "formula": "top co-ordered dishes for a given anchor dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "combo_component_leakage", "num": 397, "name": "combo_component_leakage", "section": "D", "formula": "combo components also bought a la carte at higher effective price.", "side_effect": "read", "status": "partial", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "bundle_uplift_estimate", "num": 398, "name": "bundle_uplift_estimate", "section": "D", "formula": "average basket-value lift when a bundle is present.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "combo_penetration_by_outlet", "num": 399, "name": "combo_penetration_by_outlet", "section": "D", "formula": "combo attach rate per outlet.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "combo_penetration_by_channel", "num": 400, "name": "combo_penetration_by_channel", "section": "D", "formula": "combo attach dine-in vs delivery.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_pairwise_coorder_matrix", "num": 401, "name": "dish_pairwise_coorder_matrix", "section": "D", "formula": "co-occurrence counts for every dish pair in orders.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_market_basket_lift", "num": 402, "name": "dish_market_basket_lift", "section": "D", "formula": "association-rule lift/confidence for dish pairs.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "basket_frequent_itemsets", "num": 403, "name": "basket_frequent_itemsets", "section": "D", "formula": "most common multi-dish combinations in orders.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "basket_size_distribution", "num": 404, "name": "basket_size_distribution", "section": "D", "formula": "distribution of dishes-per-order across the chain.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_basket_position", "num": 405, "name": "dish_basket_position", "section": "D", "formula": "is a dish typically an anchor or an add-on in baskets.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_coorder_by_daypart", "num": 406, "name": "dish_coorder_by_daypart", "section": "D", "formula": "how a dish's co-order partners change by daypart.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_coorder_by_channel", "num": 407, "name": "dish_coorder_by_channel", "section": "D", "formula": "co-order partners dine-in vs delivery per dish.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "basket_revenue_by_pattern", "num": 408, "name": "basket_revenue_by_pattern", "section": "D", "formula": "revenue contribution of top co-order patterns.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_solo_order_rate", "num": 409, "name": "dish_solo_order_rate", "section": "D", "formula": "how often a dish is bought alone vs in a basket.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "cross_category_attach", "num": 410, "name": "cross_category_attach", "section": "D", "formula": "attach rates across menu categories (e.g. starter\u2192beverage).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_mix_share", "num": 411, "name": "dish_mix_share", "section": "D", "formula": "each dish's share of total units/revenue in a window.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_mix_shift", "num": 412, "name": "dish_mix_shift", "section": "D", "formula": "change in each dish's mix share between two periods.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "category_mix_share", "num": 413, "name": "category_mix_share", "section": "D", "formula": "menu-category share of units/revenue.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "category_mix_shift", "num": 414, "name": "category_mix_shift", "section": "D", "formula": "category-level mix change over time.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "channel_dish_mix", "num": 415, "name": "channel_dish_mix", "section": "D", "formula": "dish mix compared dine-in vs Zomato vs Swiggy.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "dish_mix_entropy", "num": 416, "name": "dish_mix_entropy", "section": "D", "formula": "diversity of the dish mix (concentration vs spread).", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "mix_shift_revenue_bridge", "num": 417, "name": "mix_shift_revenue_bridge", "section": "D", "formula": "decomposes revenue change into mix vs volume vs price.", "side_effect": "read", "status": "ready", "owner": "Dish & Menu Performance", "scope": "llm_query", "callable": true}, {"id": "avg_daily_movement_dish", "num": 418, "name": "avg_daily_movement_dish", "section": "F", "formula": "average daily units sold per dish over a window (operator's \"average movement\" baseline).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "avg_daily_movement_outlet", "num": 419, "name": "avg_daily_movement_outlet", "section": "F", "formula": "average daily units per outlet across all dishes.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "avg_daily_revenue_dish", "num": 420, "name": "avg_daily_revenue_dish", "section": "F", "formula": "average daily revenue per dish over a window.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "avg_weekly_movement_dish", "num": 421, "name": "avg_weekly_movement_dish", "section": "F", "formula": "average units per ISO-week per dish (smooths intra-week noise).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "avg_movement_by_weekday", "num": 422, "name": "avg_movement_by_weekday", "section": "F", "formula": "mean units per dish split by day-of-week (Mon..Sun profile).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "avg_movement_by_daypart", "num": 423, "name": "avg_movement_by_daypart", "section": "F", "formula": "mean units per dish by daypart (lunch/dinner) from sold_at.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "avg_movement_by_channel", "num": 424, "name": "avg_movement_by_channel", "section": "F", "formula": "mean units per dish split by channel (dine-in/Zomato/Swiggy).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "median_daily_movement_dish", "num": 425, "name": "median_daily_movement_dish", "section": "F", "formula": "median daily units (robust central tendency vs mean).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "trimmed_mean_movement_dish", "num": 426, "name": "trimmed_mean_movement_dish", "section": "F", "formula": "trimmed-mean daily units dropping top/bottom percentile outliers.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "rolling_avg_movement_dish", "num": 427, "name": "rolling_avg_movement_dish", "section": "F", "formula": "trailing N-day rolling average of dish units (moving baseline).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "baseline_vs_actual_dish", "num": 428, "name": "baseline_vs_actual_dish", "section": "F", "formula": "today's units vs its rolling baseline, delta and pct.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "movement_run_rate_dish", "num": 429, "name": "movement_run_rate_dish", "section": "F", "formula": "annualized/monthly run-rate projection from recent average.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "zero_movement_days_dish", "num": 430, "name": "zero_movement_days_dish", "section": "F", "formula": "count of days a dish sold zero units in window (intermittency).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "first_last_sale_date_dish", "num": 431, "name": "first_last_sale_date_dish", "section": "F", "formula": "earliest and latest observed sale date per dish (active span).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_naive_dish", "num": 432, "name": "forecast_naive_dish", "section": "F", "formula": "naive forecast: next-period demand = last observed period.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_seasonal_naive_dish", "num": 433, "name": "forecast_seasonal_naive_dish", "section": "F", "formula": "seasonal-naive: forecast = same weekday last week.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_moving_avg_dish", "num": 434, "name": "forecast_moving_avg_dish", "section": "F", "formula": "N-day moving-average forecast of dish units.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_weighted_moving_avg_dish", "num": 435, "name": "forecast_weighted_moving_avg_dish", "section": "F", "formula": "recency-weighted moving-average forecast.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_expsmooth_dish", "num": 436, "name": "forecast_expsmooth_dish", "section": "F", "formula": "single exponential smoothing (deterministic alpha) forecast.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_double_expsmooth_dish", "num": 437, "name": "forecast_double_expsmooth_dish", "section": "F", "formula": "Holt double exponential smoothing (level+trend).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_weekday_seasonal_dish", "num": 438, "name": "forecast_weekday_seasonal_dish", "section": "F", "formula": "weekday-seasonal forecast (weekday index x level).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_trend_seasonal_dish", "num": 439, "name": "forecast_trend_seasonal_dish", "section": "F", "formula": "additive trend+weekday-season composite forecast.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_horizon_dish", "num": 440, "name": "forecast_horizon_dish", "section": "F", "formula": "multi-day-ahead forecast vector (h=1..N) for a dish.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_next_dispatch_wave_dish", "num": 441, "name": "forecast_next_dispatch_wave_dish", "section": "F", "formula": "forecast units for the next 12:30/18:30 dispatch window.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_ensemble_dish", "num": 442, "name": "forecast_ensemble_dish", "section": "F", "formula": "deterministic average of naive/MA/expsmooth/seasonal forecasts.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_best_method_dish", "num": 443, "name": "forecast_best_method_dish", "section": "F", "formula": "pick lowest-backtest-error method per dish and forecast.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_interval_dish", "num": 444, "name": "forecast_interval_dish", "section": "F", "formula": "point forecast plus residual-based prediction interval band.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_growth_adjusted_dish", "num": 445, "name": "forecast_growth_adjusted_dish", "section": "F", "formula": "baseline scaled by observed trend growth rate.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_cut_demand", "num": 446, "name": "forecast_cut_demand", "section": "F", "formula": "forecast demand per chicken cut (Bada/Chhota) aggregated from dishes.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_prep_demand", "num": 447, "name": "forecast_prep_demand", "section": "F", "formula": "forecast prep-item demand (tikka/satay/lollipop) from dish forecasts.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_ingredient_demand", "num": 448, "name": "forecast_ingredient_demand", "section": "F", "formula": "explode dish forecast through BOM to per-ingredient units.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_whole_bird_requirement", "num": 449, "name": "forecast_whole_bird_requirement", "section": "F", "formula": "birds needed to satisfy forecast cut/prep demand.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_ingredient_by_outlet", "num": 450, "name": "forecast_ingredient_by_outlet", "section": "F", "formula": "per-outlet ingredient forecast from outlet dish forecasts.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_cut_yield_gap", "num": 451, "name": "forecast_cut_yield_gap", "section": "F", "formula": "forecast cut demand vs bird-yield supply (joint-product bound).", "side_effect": "alert", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "scheduled_check", "callable": true}, {"id": "forecast_daypart_prep_load", "num": 452, "name": "forecast_daypart_prep_load", "section": "F", "formula": "prep-item forecast bucketed to dispatch-wave loads.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_ingredient_rollup_central", "num": 453, "name": "forecast_ingredient_rollup_central", "section": "F", "formula": "central-kitchen aggregate ingredient forecast across outlets.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_mape_dish", "num": 454, "name": "forecast_mape_dish", "section": "F", "formula": "mean absolute percentage error of a method's backtest per dish.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_wape_dish", "num": 455, "name": "forecast_wape_dish", "section": "F", "formula": "weighted absolute percentage error (volume-weighted MAPE).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_smape_dish", "num": 456, "name": "forecast_smape_dish", "section": "F", "formula": "symmetric MAPE (handles low-volume dishes).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_mae_dish", "num": 457, "name": "forecast_mae_dish", "section": "F", "formula": "mean absolute error in units per dish.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_rmse_dish", "num": 458, "name": "forecast_rmse_dish", "section": "F", "formula": "root-mean-square error per dish.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_mase_dish", "num": 459, "name": "forecast_mase_dish", "section": "F", "formula": "mean absolute scaled error vs seasonal-naive benchmark.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_bias_dish", "num": 460, "name": "forecast_bias_dish", "section": "F", "formula": "mean signed error (over/under-forecast direction).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_bias_pct_dish", "num": 461, "name": "forecast_bias_pct_dish", "section": "F", "formula": "bias as pct of average demand (systematic lean).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_tracking_signal_dish", "num": 462, "name": "forecast_tracking_signal_dish", "section": "F", "formula": "cumulative-error / MAD tracking signal for drift alarm.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_residual_drift", "num": 463, "name": "forecast_residual_drift", "section": "F", "formula": "trend in forecast residuals over time (accuracy decay).", "side_effect": "alert", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "scheduled_check", "callable": true}, {"id": "forecast_hit_rate_dish", "num": 464, "name": "forecast_hit_rate_dish", "section": "F", "formula": "pct of days actual fell within prediction interval.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_accuracy_by_horizon", "num": 465, "name": "forecast_accuracy_by_horizon", "section": "F", "formula": "error curve by forecast horizon (h=1..N degradation).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_accuracy_by_weekday", "num": 466, "name": "forecast_accuracy_by_weekday", "section": "F", "formula": "error split by weekday (which days forecast worst).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_method_leaderboard", "num": 467, "name": "forecast_method_leaderboard", "section": "F", "formula": "rank forecast methods by backtest error per dish.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "forecast_over_under_ledger", "num": 468, "name": "forecast_over_under_ledger", "section": "F", "formula": "running tally of over- vs under-forecast events per dish.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "infra", "callable": true}, {"id": "forecast_error_outliers", "num": 469, "name": "forecast_error_outliers", "section": "F", "formula": "days with error beyond k-sigma of residual distribution.", "side_effect": "alert", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "scheduled_check", "callable": true}, {"id": "corr_orders_vs_sales_dish", "num": 470, "name": "corr_orders_vs_sales_dish", "section": "F", "formula": "correlation of procurement/prep orders vs realized dish sales.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "corr_orders_vs_sales_ingredient", "num": 471, "name": "corr_orders_vs_sales_ingredient", "section": "F", "formula": "correlation of ingredient orders vs consumption-implied demand.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "corr_dispatch_vs_sales_outlet", "num": 472, "name": "corr_dispatch_vs_sales_outlet", "section": "F", "formula": "correlation of dispatch quantities vs outlet sell-through.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "leadlag_orders_sales", "num": 473, "name": "leadlag_orders_sales", "section": "F", "formula": "lead-lag cross-correlation: how many days orders lead sales.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "order_sales_mismatch_dish", "num": 474, "name": "order_sales_mismatch_dish", "section": "F", "formula": "signed gap between ordered/prepped and sold per dish.", "side_effect": "alert", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "scheduled_check", "callable": true}, {"id": "order_sales_ratio_dish", "num": 475, "name": "order_sales_ratio_dish", "section": "F", "formula": "order-to-sales ratio (over/under-ordering indicator).", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "order_fill_vs_demand", "num": 476, "name": "order_fill_vs_demand", "section": "F", "formula": "fulfilled order qty vs forecast demand coverage.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "sales_predict_order_regression", "num": 477, "name": "sales_predict_order_regression", "section": "F", "formula": "deterministic linear fit sales->required order qty.", "side_effect": "alert", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "scheduled_check", "callable": true}, {"id": "order_sales_divergence_alert", "num": 478, "name": "order_sales_divergence_alert", "section": "F", "formula": "flag dishes where orders and sales de-correlate over window.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "procurement_sales_elasticity", "num": 479, "name": "procurement_sales_elasticity", "section": "F", "formula": "how ordered volume tracks demand swings (slope).", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "when_orders_fall_impact", "num": 480, "name": "when_orders_fall_impact", "section": "F", "formula": "quantify sales/stockout impact on days orders dropped (operator ask).", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "orders_fall_detector", "num": 481, "name": "orders_fall_detector", "section": "F", "formula": "detect periods where order volume falls below demand baseline.", "side_effect": "alert", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "scheduled_check", "callable": true}, {"id": "chicken_purchase_vs_dish_corr", "num": 482, "name": "chicken_purchase_vs_dish_corr", "section": "F", "formula": "correlation of whole-bird purchases vs downstream dish sales.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "prep_order_vs_dish_corr", "num": 483, "name": "prep_order_vs_dish_corr", "section": "F", "formula": "correlation of prep orders vs corresponding dish sales (should be high).", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "co_sale_matrix", "num": 484, "name": "co_sale_matrix", "section": "F", "formula": "pairwise co-sale correlation matrix across dishes.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "basket_affinity_pairs", "num": 485, "name": "basket_affinity_pairs", "section": "F", "formula": "items frequently sold in same order (lift/confidence).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "basket_association_rules", "num": 486, "name": "basket_association_rules", "section": "F", "formula": "deterministic support/confidence/lift rules for dish pairs.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "complement_pairs", "num": 487, "name": "complement_pairs", "section": "F", "formula": "positively-correlated dishes (bought together).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "substitute_pairs", "num": 488, "name": "substitute_pairs", "section": "F", "formula": "negatively-correlated dishes (one up, other down).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "co_order_matrix", "num": 489, "name": "co_order_matrix", "section": "F", "formula": "pairwise correlation of dishes appearing in same procurement/prep order.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "item_correlation_by_outlet", "num": 490, "name": "item_correlation_by_outlet", "section": "F", "formula": "co-sale correlation computed per outlet.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "item_correlation_by_channel", "num": 491, "name": "item_correlation_by_channel", "section": "F", "formula": "co-sale correlation split by dine-in vs delivery.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "cross_sell_candidates", "num": 492, "name": "cross_sell_candidates", "section": "F", "formula": "dishes with high attach-rate to a target dish.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "bundle_opportunity_score", "num": 493, "name": "bundle_opportunity_score", "section": "F", "formula": "score dish pairs for bundling by joint frequency + margin.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "cut_shared_dishes", "num": 494, "name": "cut_shared_dishes", "section": "F", "formula": "dishes sharing a chicken cut (joint-demand cluster).", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "demand_correlation_clusters", "num": 495, "name": "demand_correlation_clusters", "section": "F", "formula": "cluster dishes by demand-curve similarity.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "dow_demand_index", "num": 496, "name": "dow_demand_index", "section": "F", "formula": "day-of-week demand multiplier per dish (weekend lift).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "weekend_vs_weekday_lift", "num": 497, "name": "weekend_vs_weekday_lift", "section": "F", "formula": "pct demand uplift on weekends per dish/outlet.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "month_of_month_seasonality", "num": 498, "name": "month_of_month_seasonality", "section": "F", "formula": "monthly demand index across the observed span.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "payday_demand_effect", "num": 499, "name": "payday_demand_effect", "section": "F", "formula": "demand delta around month-end/1st payday windows.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "festival_demand_lift", "num": 500, "name": "festival_demand_lift", "section": "F", "formula": "demand uplift on Indian festival dates per dish.", "side_effect": "read", "status": "blocked", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "holiday_calendar_effect", "num": 501, "name": "holiday_calendar_effect", "section": "F", "formula": "demand delta on public/regional holidays.", "side_effect": "read", "status": "blocked", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "weather_demand_sensitivity", "num": 502, "name": "weather_demand_sensitivity", "section": "F", "formula": "demand response to temperature/rain per dish.", "side_effect": "read", "status": "blocked", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "local_event_demand_lift", "num": 503, "name": "local_event_demand_lift", "section": "F", "formula": "demand spikes around Jaipur local events/concerts.", "side_effect": "read", "status": "blocked", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "cricket_match_night_lift", "num": 504, "name": "cricket_match_night_lift", "section": "F", "formula": "demand uplift on IPL/match nights (wings/delivery).", "side_effect": "read", "status": "blocked", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "school_college_term_effect", "num": 505, "name": "school_college_term_effect", "section": "F", "formula": "demand shift by academic term/vacation calendar.", "side_effect": "read", "status": "blocked", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "exogenous_driver_ranking", "num": 506, "name": "exogenous_driver_ranking", "section": "F", "formula": "rank exogenous drivers by explained demand variance.", "side_effect": "read", "status": "blocked", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "regressor_augmented_forecast", "num": 507, "name": "regressor_augmented_forecast", "section": "F", "formula": "forecast with day-of-week + holiday + event regressors.", "side_effect": "read", "status": "blocked", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "rain_delivery_shift", "num": 508, "name": "rain_delivery_shift", "section": "F", "formula": "dine-in->delivery channel shift on rainy days.", "side_effect": "read", "status": "blocked", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "heatwave_beverage_lift", "num": 509, "name": "heatwave_beverage_lift", "section": "F", "formula": "beverage/cold-item demand vs heat index.", "side_effect": "read", "status": "blocked", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "price_demand_elasticity_dish", "num": 510, "name": "price_demand_elasticity_dish", "section": "F", "formula": "demand response to menu price changes (log-log slope).", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "discount_lift_dish", "num": 511, "name": "discount_lift_dish", "section": "F", "formula": "incremental units from discount vs baseline.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "channel_price_gap_demand", "num": 512, "name": "channel_price_gap_demand", "section": "F", "formula": "demand effect of dine-in vs delivery price gap.", "side_effect": "alert", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "scheduled_check", "callable": true}, {"id": "promo_response_curve", "num": 513, "name": "promo_response_curve", "section": "F", "formula": "demand vs discount-depth response curve per dish.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "channel_mix_shift", "num": 514, "name": "channel_mix_shift", "section": "F", "formula": "how demand share moves across channels over time.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "delivery_commission_breakeven", "num": 515, "name": "delivery_commission_breakeven", "section": "F", "formula": "demand needed to offset aggregator commission.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "cross_price_elasticity", "num": 516, "name": "cross_price_elasticity", "section": "F", "formula": "demand of dish A vs price of related dish B.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "discount_cannibalization_check", "num": 517, "name": "discount_cannibalization_check", "section": "F", "formula": "whether a promo pulls demand from sibling dishes.", "side_effect": "read", "status": "partial", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "demand_volatility_dish", "num": 518, "name": "demand_volatility_dish", "section": "F", "formula": "coefficient of variation of daily demand per dish.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "demand_predictability_score", "num": 519, "name": "demand_predictability_score", "section": "F", "formula": "composite predictability score (CV + autocorr + intermittency).", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "demand_stability_ranking", "num": 520, "name": "demand_stability_ranking", "section": "F", "formula": "rank dishes stable->erratic for forecasting confidence.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "intermittent_demand_flag", "num": 521, "name": "intermittent_demand_flag", "section": "F", "formula": "flag sparse/lumpy-demand dishes (Croston-style handling).", "side_effect": "alert", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "scheduled_check", "callable": true}, {"id": "demand_autocorrelation", "num": 522, "name": "demand_autocorrelation", "section": "F", "formula": "lag-1..lag-7 autocorrelation of dish demand series.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "demand_concentration_pareto", "num": 523, "name": "demand_concentration_pareto", "section": "F", "formula": "Pareto (80/20) of demand across dishes.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "revenue_concentration_pareto", "num": 524, "name": "revenue_concentration_pareto", "section": "F", "formula": "Pareto of revenue across dishes.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "long_tail_dish_share", "num": 525, "name": "long_tail_dish_share", "section": "F", "formula": "share of dishes contributing negligible demand.", "side_effect": "read", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "llm_query", "callable": true}, {"id": "demand_spike_detector", "num": 526, "name": "demand_spike_detector", "section": "F", "formula": "flag statistical demand spikes vs baseline.", "side_effect": "alert", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "scheduled_check", "callable": true}, {"id": "demand_dip_detector", "num": 527, "name": "demand_dip_detector", "section": "F", "formula": "flag statistical demand dips (soft-demand days).", "side_effect": "alert", "status": "ready", "owner": "Demand Forecasting & Correlation", "scope": "scheduled_check", "callable": true}, {"id": "define_yield_vector", "num": 528, "name": "define_yield_vector", "section": "J", "formula": "Register a standard yield vector for a bird SKU: cut\u2192fraction-of-live-weight, summing to 1 (incl. loss).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "list_yield_standards", "num": 529, "name": "list_yield_standards", "section": "J", "formula": "List all registered standard yield vectors with version, effective date, and source.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "get_cut_yield_fraction", "num": 530, "name": "get_cut_yield_fraction", "section": "J", "formula": "Return the standard yield fraction (by weight) of a specific cut per whole bird.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "yield_vector_mass_balance_check", "num": 531, "name": "yield_vector_mass_balance_check", "section": "J", "formula": "Verify a yield vector's fractions plus declared loss sum to 1.0 within tolerance.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "bird_live_to_dressed_ratio", "num": 532, "name": "bird_live_to_dressed_ratio", "section": "J", "formula": "Compute dressed-weight fraction (yield after evisceration/feather loss) per bird SKU.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "learn_yield_vector_from_actuals", "num": 533, "name": "learn_yield_vector_from_actuals", "section": "J", "formula": "Fit an empirical yield vector from production cut-weights logged per processed bird batch.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "yield_standard_vs_actual_drift", "num": 534, "name": "yield_standard_vs_actual_drift", "section": "J", "formula": "Per-cut delta between standard yield fraction and observed production actual.", "side_effect": "alert", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "yield_drift_trend", "num": 535, "name": "yield_drift_trend", "section": "J", "formula": "Time-series of per-cut yield drift to detect degrading carcass utilization.", "side_effect": "alert", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "yield_loss_attribution", "num": 536, "name": "yield_loss_attribution", "section": "J", "formula": "Decompose total yield loss into evisceration, cutting scrap, and unclassified per batch.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cutter_yield_variance", "num": 537, "name": "cutter_yield_variance", "section": "J", "formula": "Variance in achieved yield by cutter/shift to flag skill-driven yield loss.", "side_effect": "alert", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "bird_weight_distribution", "num": 538, "name": "bird_weight_distribution", "section": "J", "formula": "Distribution of purchased whole-bird weights to size the yield model correctly.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "expected_cut_weight_per_bird", "num": 539, "name": "expected_cut_weight_per_bird", "section": "J", "formula": "Convert yield fractions \u00d7 avg bird weight to absolute grams of each cut per bird.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "bada_chhota_split_ratio", "num": 540, "name": "bada_chhota_split_ratio", "section": "J", "formula": "Standard mass split between Bada (big cuts) and Chhota (small cuts) streams per bird.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "secondary_cut_derivation_map", "num": 541, "name": "secondary_cut_derivation_map", "section": "J", "formula": "Map primary cuts to derived products (wings\u2192lollipop, breast\u2192tikka) with conversion loss.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "derived_product_yield", "num": 542, "name": "derived_product_yield", "section": "J", "formula": "Net yield of a derived product from its parent cut after trimming/portioning loss.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "yield_vector_confidence", "num": 543, "name": "yield_vector_confidence", "section": "J", "formula": "Confidence/sample-size score for each cut fraction in a learned yield vector.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "reconcile_yield_to_purchase_weight", "num": 544, "name": "reconcile_yield_to_purchase_weight", "section": "J", "formula": "Check that \u03a3(processed cut weights) reconciles to purchased bird kg for a period.", "side_effect": "alert", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "seasonal_yield_adjustment", "num": 545, "name": "seasonal_yield_adjustment", "section": "J", "formula": "Adjust yield vector for seasonal bird-weight/condition variation.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "build_cut_dish_bom", "num": 546, "name": "build_cut_dish_bom", "section": "J", "formula": "Assemble the cut\u2192dish consumption map from golden_book/recipe_line BOMs.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "dish_cut_requirement", "num": 547, "name": "dish_cut_requirement", "section": "J", "formula": "Per dish, list which cuts (and grams of each) one sold unit consumes.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cut_to_dish_index", "num": 548, "name": "cut_to_dish_index", "section": "J", "formula": "Inverse map: per cut, the set of dishes that draw on it.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cut_dish_bom_coverage", "num": 549, "name": "cut_dish_bom_coverage", "section": "J", "formula": "Fraction of sold dishes that have a resolvable cut-level BOM.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "unmapped_dish_report", "num": 550, "name": "unmapped_dish_report", "section": "J", "formula": "Dishes with sales but no cut\u2194dish BOM linkage (costing/demand gap).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "shared_cut_dish_clusters", "num": 551, "name": "shared_cut_dish_clusters", "section": "J", "formula": "Group dishes that compete for the same cut (joint-input clusters).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cut_bom_gram_normalize", "num": 552, "name": "cut_bom_gram_normalize", "section": "J", "formula": "Normalize BOM cut quantities to grams for uniform demand rollup.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "dish_to_bird_equivalent", "num": 553, "name": "dish_to_bird_equivalent", "section": "J", "formula": "Express one dish's cut demand as fractional whole-birds required.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "multi_cut_dish_flag", "num": 554, "name": "multi_cut_dish_flag", "section": "J", "formula": "Flag dishes consuming multiple cuts from the same or different birds.", "side_effect": "alert", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "rollup_sales_to_cut_demand", "num": 555, "name": "rollup_sales_to_cut_demand", "section": "J", "formula": "Roll dish sales \u00d7 cut-BOM down to total demand (kg/units) per cut for a period.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cut_demand_by_outlet", "num": 556, "name": "cut_demand_by_outlet", "section": "J", "formula": "Cut-level demand split by outlet (Jagatpura/Rajapark/WTP).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cut_demand_by_wave", "num": 557, "name": "cut_demand_by_wave", "section": "J", "formula": "Cut demand aggregated to dispatch wave / daypart for prep scheduling.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cut_demand_timeseries", "num": 558, "name": "cut_demand_timeseries", "section": "J", "formula": "Daily/weekly time-series of demand per cut.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cut_demand_share", "num": 559, "name": "cut_demand_share", "section": "J", "formula": "Each cut's share of total cut demand across the menu.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "peak_cut_demand", "num": 560, "name": "peak_cut_demand", "section": "J", "formula": "Peak-period demand per cut for capacity/prep sizing.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cut_demand_forecast", "num": 561, "name": "cut_demand_forecast", "section": "J", "formula": "Forecast next-period cut demand from historical sales seasonality.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cut_demand_volatility", "num": 562, "name": "cut_demand_volatility", "section": "J", "formula": "Coefficient of variation of demand per cut (planning risk).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cross_outlet_cut_pooling", "num": 563, "name": "cross_outlet_cut_pooling", "section": "J", "formula": "Poolable cut demand across outlets to smooth per-cut surplus/deficit.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "dish_contribution_to_cut_demand", "num": 564, "name": "dish_contribution_to_cut_demand", "section": "J", "formula": "For a given cut, rank dishes by their contribution to its demand.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "cut_demand_to_bird_demand", "num": 565, "name": "cut_demand_to_bird_demand", "section": "J", "formula": "Convert each cut's demand into the whole-bird count it alone would require.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "binding_cut_identifier", "num": 566, "name": "binding_cut_identifier", "section": "J", "formula": "Identify the cut whose demand forces the largest whole-bird order (the constraint).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "required_birds_per_cut", "num": 567, "name": "required_birds_per_cut", "section": "J", "formula": "Birds needed to satisfy each cut independently (demand \u00f7 yield fraction \u00d7 weight).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "forced_overproduction_vector", "num": 568, "name": "forced_overproduction_vector", "section": "J", "formula": "Given birds ordered for the binding cut, surplus produced of every other cut.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "per_cut_surplus_deficit", "num": 569, "name": "per_cut_surplus_deficit", "section": "J", "formula": "Surplus/deficit of each cut under a chosen whole-bird order quantity.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "imbalance_index", "num": 570, "name": "imbalance_index", "section": "J", "formula": "Scalar index of how mismatched cut demand is vs the fixed yield vector.", "side_effect": "alert", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "demand_yield_mismatch_matrix", "num": 571, "name": "demand_yield_mismatch_matrix", "section": "J", "formula": "Matrix of demand-share vs yield-share per cut, highlighting the gap.", "side_effect": "alert", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "binding_cut_over_time", "num": 572, "name": "binding_cut_over_time", "section": "J", "formula": "Track which cut is binding across periods (procurement-lock shifts).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "overproduction_cost_estimate", "num": 573, "name": "overproduction_cost_estimate", "section": "J", "formula": "\u20b9 value of forced surplus cuts at cost basis for a given order.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "demand_yield_correlation", "num": 574, "name": "demand_yield_correlation", "section": "J", "formula": "Correlation between cut demand shares and yield shares (1 = perfectly balanced).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "structural_surplus_cuts", "num": 575, "name": "structural_surplus_cuts", "section": "J", "formula": "Cuts persistently over-produced due to structural demand-yield gap.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "structural_deficit_cuts", "num": 576, "name": "structural_deficit_cuts", "section": "J", "formula": "Cuts persistently short, forcing extra bird buys.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "imbalance_trend", "num": 577, "name": "imbalance_trend", "section": "J", "formula": "Trend of the imbalance index over time (worsening/improving).", "side_effect": "alert", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "min_waste_bird_count", "num": 578, "name": "min_waste_bird_count", "section": "J", "formula": "Bird count minimizing total surplus (may underserve binding cut).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "min_service_bird_count", "num": 579, "name": "min_service_bird_count", "section": "J", "formula": "Bird count meeting all cut demand (max surplus).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "service_vs_waste_frontier", "num": 580, "name": "service_vs_waste_frontier", "section": "J", "formula": "Tradeoff frontier between cut service level and forced-surplus waste.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "imbalance_by_outlet", "num": 581, "name": "imbalance_by_outlet", "section": "J", "formula": "Per-outlet demand-yield imbalance (outlet mix drives different bindings).", "side_effect": "alert", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "optimize_whole_bird_order", "num": 582, "name": "optimize_whole_bird_order", "section": "J", "formula": "Solve min-bird order under multi-cut demand + surplus-cost + service constraints.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "order_qty_service_level", "num": 583, "name": "order_qty_service_level", "section": "J", "formula": "Bird order to hit a target per-cut service level (fill rate).", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "order_qty_waste_capped", "num": 584, "name": "order_qty_waste_capped", "section": "J", "formula": "Max bird order subject to a surplus/waste ceiling.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "blended_objective_order", "num": 585, "name": "blended_objective_order", "section": "J", "formula": "Order minimizing (procurement + surplus + shortage penalty) weighted cost.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "order_sensitivity_to_binding_cut", "num": 586, "name": "order_sensitivity_to_binding_cut", "section": "J", "formula": "Sensitivity of optimal bird count to binding-cut demand shocks.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "supplement_vs_wholebird_tradeoff", "num": 587, "name": "supplement_vs_wholebird_tradeoff", "section": "J", "formula": "Compare buying extra whole birds vs sourcing the deficit cut \u00e0 la carte.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "order_split_across_suppliers", "num": 588, "name": "order_split_across_suppliers", "section": "J", "formula": "Split bird order across suppliers by price/yield/weight profile.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "reorder_point_wholebird", "num": 589, "name": "reorder_point_wholebird", "section": "J", "formula": "Reorder point for whole birds given lead time and cut-demand volatility.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "order_rounding_to_case", "num": 590, "name": "order_rounding_to_case", "section": "J", "formula": "Round optimal bird count to purchasable case/crate size with impact note.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "multi_period_order_plan", "num": 591, "name": "multi_period_order_plan", "section": "J", "formula": "Roll order optimization across a horizon accounting for freezable surplus carryover.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "order_vs_actual_variance", "num": 592, "name": "order_vs_actual_variance", "section": "J", "formula": "Compare recommended bird order to actual purchase and quantify the gap.", "side_effect": "alert", "status": "ready", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "capacity_constrained_order", "num": 593, "name": "capacity_constrained_order", "section": "J", "formula": "Constrain bird order by central-kitchen cutting/prep capacity.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "surplus_cut_inventory", "num": 594, "name": "surplus_cut_inventory", "section": "J", "formula": "Current on-hand surplus per cut awaiting routing.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "surplus_routing_candidates", "num": 595, "name": "surplus_routing_candidates", "section": "J", "formula": "Dishes/specials that can absorb a given surplus cut.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "surplus_reroute_plan", "num": 596, "name": "surplus_reroute_plan", "section": "J", "formula": "Plan reallocating surplus low-demand cuts into alternative dishes.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "surplus_discount_recommendation", "num": 597, "name": "surplus_discount_recommendation", "section": "J", "formula": "Recommended markdown to clear surplus cut before spoilage.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "surplus_freeze_decision", "num": 598, "name": "surplus_freeze_decision", "section": "J", "formula": "Freeze vs sell-now decision for a surplus cut given shelf life and demand.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "spoilage_risk_score", "num": 599, "name": "spoilage_risk_score", "section": "J", "formula": "Spoilage risk per surplus cut from age, shelf life, and demand rate.", "side_effect": "alert", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "cost_of_forced_surplus", "num": 600, "name": "cost_of_forced_surplus", "section": "J", "formula": "Realized \u20b9 cost of surplus that spoiled or was discounted.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "surplus_aging_report", "num": 601, "name": "surplus_aging_report", "section": "J", "formula": "Aging buckets of surplus cut inventory.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "surplus_to_special_conversion", "num": 602, "name": "surplus_to_special_conversion", "section": "J", "formula": "Convert surplus cut into a chef-special BOM to monetize.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "surplus_transfer_between_outlets", "num": 603, "name": "surplus_transfer_between_outlets", "section": "J", "formula": "Move surplus cut from a low-demand to high-demand outlet.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "surplus_absorption_capacity", "num": 604, "name": "surplus_absorption_capacity", "section": "J", "formula": "How much surplus cut alternative dishes can realistically absorb.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "net_surplus_after_reroute", "num": 605, "name": "net_surplus_after_reroute", "section": "J", "formula": "Residual surplus after applying all reroute/discount/freeze levers.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "surplus_recovery_value", "num": 606, "name": "surplus_recovery_value", "section": "J", "formula": "Recoverable \u20b9 from surplus via reroute/discount vs full spoilage loss.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "low_demand_cut_ranking", "num": 607, "name": "low_demand_cut_ranking", "section": "J", "formula": "Rank cuts by chronic underselling relative to yield.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "demand_seeding_candidates", "num": 608, "name": "demand_seeding_candidates", "section": "J", "formula": "Cuts most in need of demand-push to rebalance procurement.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "promo_lever_impact_estimate", "num": 609, "name": "promo_lever_impact_estimate", "section": "J", "formula": "Estimated cut-demand lift from a promo/menu placement on a low-demand cut.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "combo_bundle_recommendation", "num": 610, "name": "combo_bundle_recommendation", "section": "J", "formula": "Recommend bundles pairing high-demand with surplus cuts.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "menu_rebalance_suggestion", "num": 611, "name": "menu_rebalance_suggestion", "section": "J", "formula": "Menu changes that raise low-demand-cut sales toward yield share.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "price_lever_for_demand_shift", "num": 612, "name": "price_lever_for_demand_shift", "section": "J", "formula": "Price change on a cut's dishes to shift demand toward balance.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "seeded_demand_vs_yield_gap", "num": 613, "name": "seeded_demand_vs_yield_gap", "section": "J", "formula": "Residual demand-yield gap after applying seeding levers.", "side_effect": "alert", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "scheduled_check", "callable": true}, {"id": "secondary_product_elasticity", "num": 614, "name": "secondary_product_elasticity", "section": "J", "formula": "Estimated price/promo elasticity of low-demand-cut dishes.", "side_effect": "read", "status": "blocked", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "new_dish_for_surplus_cut", "num": 615, "name": "new_dish_for_surplus_cut", "section": "J", "formula": "Propose a new dish concept to consume a structurally surplus cut.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "allocate_carcass_cost_physical", "num": 616, "name": "allocate_carcass_cost_physical", "section": "J", "formula": "Allocate whole-bird \u20b9 to co-products by physical-weight (yield) share.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "allocate_carcass_cost_sales_value", "num": 617, "name": "allocate_carcass_cost_sales_value", "section": "J", "formula": "Allocate carcass \u20b9 by relative sales value of each cut.", "side_effect": "read", "status": "partial", "owner": "Joint-Product / Yield-Split Procurement Risk", "scope": "llm_query", "callable": true}, {"id": "compute_reorder_point", "num": 618, "name": "compute_reorder_point", "section": "P", "formula": "reorder point per SKU from lead-time demand + safety stock.", "side_effect": "read", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "compute_par_level", "num": 619, "name": "compute_par_level", "section": "P", "formula": "target par (max) stock per SKU-outlet from demand + review period.", "side_effect": "read", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "economic_order_quantity", "num": 620, "name": "economic_order_quantity", "section": "P", "formula": "EOQ per SKU balancing order cost vs holding cost.", "side_effect": "read", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "safety_stock_calc", "num": 621, "name": "safety_stock_calc", "section": "P", "formula": "safety stock from lead-time variability and service level.", "side_effect": "read", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "moq_rounding_check", "num": 622, "name": "moq_rounding_check", "section": "P", "formula": "flag orders below supplier minimum order quantity.", "side_effect": "read", "status": "blocked", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "pack_size_rounding", "num": 623, "name": "pack_size_rounding", "section": "P", "formula": "round order qty up to supplier pack/case multiples.", "side_effect": "read", "status": "blocked", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "order_qty_vs_demand_gap", "num": 624, "name": "order_qty_vs_demand_gap", "section": "P", "formula": "ordered_qty vs derived demand per SKU.", "side_effect": "alert", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "scheduled_check", "callable": true}, {"id": "over_order_flag", "num": 625, "name": "over_order_flag", "section": "P", "formula": "flag ordered_qty exceeding par by threshold.", "side_effect": "alert", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "scheduled_check", "callable": true}, {"id": "under_order_flag", "num": 626, "name": "under_order_flag", "section": "P", "formula": "flag ordered_qty below reorder point.", "side_effect": "alert", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "scheduled_check", "callable": true}, {"id": "qty_volatility_per_sku", "num": 627, "name": "qty_volatility_per_sku", "section": "P", "formula": "coefficient of variation of ordered_qty over time.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "demand_forecast_sku", "num": 628, "name": "demand_forecast_sku", "section": "P", "formula": "moving-average / trend forecast of order qty per SKU.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "perishable_shelf_life_cap", "num": 629, "name": "perishable_shelf_life_cap", "section": "P", "formula": "cap order qty to shelf-life-consumable volume.", "side_effect": "read", "status": "blocked", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "order_frequency_per_sku", "num": 630, "name": "order_frequency_per_sku", "section": "P", "formula": "distinct order dates / interval stats per SKU.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "interorder_interval_stats", "num": 631, "name": "interorder_interval_stats", "section": "P", "formula": "mean/CV of days between consecutive orders.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "order_consolidation_opportunity", "num": 632, "name": "order_consolidation_opportunity", "section": "P", "formula": "SKUs frequently ordered same-week from same supplier to merge.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "buy_ahead_vs_jit_signal", "num": 633, "name": "buy_ahead_vs_jit_signal", "section": "P", "formula": "recommend JIT for perishables vs buy-ahead for shelf-stable.", "side_effect": "read", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "optimal_order_cycle", "num": 634, "name": "optimal_order_cycle", "section": "P", "formula": "economic order cycle length per SKU from EOQ + demand.", "side_effect": "read", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "weekday_order_pattern", "num": 635, "name": "weekday_order_pattern", "section": "P", "formula": "order-day-of-week distribution per supplier.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "perishable_delivery_cadence", "num": 636, "name": "perishable_delivery_cadence", "section": "P", "formula": "flag perishable SKUs with too-infrequent delivery.", "side_effect": "read", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "bulk_vs_frequent_tradeoff", "num": 637, "name": "bulk_vs_frequent_tradeoff", "section": "P", "formula": "compare unit cost of bulk vs frequent small orders.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "lead_time_buffer_timing", "num": 638, "name": "lead_time_buffer_timing", "section": "P", "formula": "days-before-need to place order given lead time.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "supplier_fill_rate", "num": 639, "name": "supplier_fill_rate", "section": "P", "formula": "received_qty / ordered_qty per supplier.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "line_fill_rate", "num": 640, "name": "line_fill_rate", "section": "P", "formula": "% of order lines fully filled per supplier.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "on_time_delivery_pct", "num": 641, "name": "on_time_delivery_pct", "section": "P", "formula": "received_on vs delivery_date on-time %.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "lead_time_per_supplier", "num": 642, "name": "lead_time_per_supplier", "section": "P", "formula": "po_no date to received_on lead-time stats.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "lead_time_variability", "num": 643, "name": "lead_time_variability", "section": "P", "formula": "std-dev / CV of supplier lead times.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "short_delivery_detect", "num": 644, "name": "short_delivery_detect", "section": "P", "formula": "lines where received_qty < ordered_qty.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "over_delivery_detect", "num": 645, "name": "over_delivery_detect", "section": "P", "formula": "lines where received_qty > ordered_qty.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "split_delivery_detect", "num": 646, "name": "split_delivery_detect", "section": "P", "formula": "single PO fulfilled across multiple received_on dates.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "delivery_delay_days", "num": 647, "name": "delivery_delay_days", "section": "P", "formula": "signed days late/early per delivery.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "perfect_order_rate", "num": 648, "name": "perfect_order_rate", "section": "P", "formula": "% orders on-time, in-full, correctly billed.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "supplier_reliability_scorecard", "num": 649, "name": "supplier_reliability_scorecard", "section": "P", "formula": "composite of fill/on-time/lead-time per supplier.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "late_delivery_trend", "num": 650, "name": "late_delivery_trend", "section": "P", "formula": "trend of on-time % per supplier over time.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "backorder_frequency", "num": 651, "name": "backorder_frequency", "section": "P", "formula": "recurrence of short deliveries per SKU-supplier.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "receipt_without_delivery_date", "num": 652, "name": "receipt_without_delivery_date", "section": "P", "formula": "receipts missing scheduled delivery_date.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "chronic_short_supplier", "num": 653, "name": "chronic_short_supplier", "section": "P", "formula": "suppliers with persistent under-delivery pattern.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "price_benchmark_cross_supplier", "num": 654, "name": "price_benchmark_cross_supplier", "section": "P", "formula": "unit_price per SKU compared across suppliers.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "lowest_cost_supplier_per_sku", "num": 655, "name": "lowest_cost_supplier_per_sku", "section": "P", "formula": "cheapest current supplier per canonical item.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "price_anomaly_zscore", "num": 656, "name": "price_anomaly_zscore", "section": "P", "formula": "flag unit_price outliers vs SKU historical mean.", "side_effect": "alert", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "scheduled_check", "callable": true}, {"id": "rate_change_detect", "num": 657, "name": "rate_change_detect", "section": "P", "formula": "step-change in unit_price for a SKU-supplier.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "price_trend_per_sku", "num": 658, "name": "price_trend_per_sku", "section": "P", "formula": "regression slope of unit_price over time per SKU.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "seasonal_price_pattern", "num": 659, "name": "seasonal_price_pattern", "section": "P", "formula": "month-of-year price seasonality per SKU.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "price_dispersion_per_sku", "num": 660, "name": "price_dispersion_per_sku", "section": "P", "formula": "spread of prices paid across suppliers/time.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "price_increase_alert", "num": 661, "name": "price_increase_alert", "section": "P", "formula": "unit_price up beyond threshold vs prior buy.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "overpay_vs_market", "num": 662, "name": "overpay_vs_market", "section": "P", "formula": "paid above cross-supplier median for same SKU.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "price_paid_vs_min_history", "num": 663, "name": "price_paid_vs_min_history", "section": "P", "formula": "current price vs historical minimum per SKU.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "savings_if_lowest_sourced", "num": 664, "name": "savings_if_lowest_sourced", "section": "P", "formula": "spend delta if each SKU bought at min supplier price.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "unit_price_uom_normalize", "num": 665, "name": "unit_price_uom_normalize", "section": "P", "formula": "normalize price to common UOM before comparison.", "side_effect": "read", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "blended_avg_price_sku", "num": 666, "name": "blended_avg_price_sku", "section": "P", "formula": "volume-weighted average price per SKU.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "price_volatility_index", "num": 667, "name": "price_volatility_index", "section": "P", "formula": "CV of unit_price per SKU over window.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "new_high_price_watch", "num": 668, "name": "new_high_price_watch", "section": "P", "formula": "SKU hitting all-time-high unit_price.", "side_effect": "alert", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "scheduled_check", "callable": true}, {"id": "spend_by_supplier", "num": 669, "name": "spend_by_supplier", "section": "P", "formula": "total paid_amount aggregated per supplier.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "spend_by_category", "num": 670, "name": "spend_by_category", "section": "P", "formula": "spend aggregated by category.", "side_effect": "read", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "llm_query", "callable": true}, {"id": "spend_by_sku", "num": 671, "name": "spend_by_sku", "section": "P", "formula": "spend per canonical ingredient.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "spend_by_outlet", "num": 672, "name": "spend_by_outlet", "section": "P", "formula": "spend attributed per outlet.", "side_effect": "read", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "spend_trend_monthly", "num": 673, "name": "spend_trend_monthly", "section": "P", "formula": "month-over-month total spend trend.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "spend_pareto_abc", "num": 674, "name": "spend_pareto_abc", "section": "P", "formula": "ABC classification of SKUs/suppliers by spend.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "supplier_concentration_hhi", "num": 675, "name": "supplier_concentration_hhi", "section": "P", "formula": "Herfindahl concentration of spend across suppliers.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "single_source_risk", "num": 676, "name": "single_source_risk", "section": "P", "formula": "SKUs sourced from only one supplier.", "side_effect": "alert", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "scheduled_check", "callable": true}, {"id": "tail_spend_analysis", "num": 677, "name": "tail_spend_analysis", "section": "P", "formula": "long-tail low-value suppliers/SKUs for rationalization.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "category_spend_share", "num": 678, "name": "category_spend_share", "section": "P", "formula": "each category's % of total spend.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "spend_growth_per_supplier", "num": 679, "name": "spend_growth_per_supplier", "section": "P", "formula": "period-over-period spend growth per supplier.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "top_n_suppliers_spend", "num": 680, "name": "top_n_suppliers_spend", "section": "P", "formula": "ranked top suppliers by spend with cumulative %.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "maverick_spend_estimate", "num": 681, "name": "maverick_spend_estimate", "section": "P", "formula": "spend outside preferred/lowest-cost supplier.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "spend_per_ordered_unit", "num": 682, "name": "spend_per_ordered_unit", "section": "P", "formula": "cost intensity per unit across categories.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "new_supplier_spend_ramp", "num": 683, "name": "new_supplier_spend_ramp", "section": "P", "formula": "spend trajectory of recently-added suppliers.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "supplier_count_per_category", "num": 684, "name": "supplier_count_per_category", "section": "P", "formula": "number of active suppliers per category (dup-risk/leverage).", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "missing_invoice_detect", "num": 685, "name": "missing_invoice_detect", "section": "P", "formula": "receipts with no invoice_no.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "duplicate_invoice_detect", "num": 686, "name": "duplicate_invoice_detect", "section": "P", "formula": "same invoice_no reused across lines/dates.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "duplicate_payment_detect", "num": 687, "name": "duplicate_payment_detect", "section": "P", "formula": "same supplier+amount+invoice paid twice.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "unbilled_receipt", "num": 688, "name": "unbilled_receipt", "section": "P", "formula": "received goods with no invoice/paid_amount.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "po_without_receipt", "num": 689, "name": "po_without_receipt", "section": "P", "formula": "po_no present but no matching receipt.", "side_effect": "read", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "llm_query", "callable": true}, {"id": "receipt_without_po", "num": 690, "name": "receipt_without_po", "section": "P", "formula": "receipts lacking a po_no (off-process buys).", "side_effect": "read", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "llm_query", "callable": true}, {"id": "amount_line_mismatch", "num": 691, "name": "amount_line_mismatch", "section": "P", "formula": "paid_amount vs received_qty \u00d7 unit_price mismatch.", "side_effect": "alert", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "scheduled_check", "callable": true}, {"id": "tax_gst_mismatch", "num": 692, "name": "tax_gst_mismatch", "section": "P", "formula": "GST implied vs paid_amount inconsistency.", "side_effect": "alert", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "scheduled_check", "callable": true}, {"id": "overpayment_detect", "num": 693, "name": "overpayment_detect", "section": "P", "formula": "paid_amount exceeds invoiced/computed amount.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "underpayment_detect", "num": 694, "name": "underpayment_detect", "section": "P", "formula": "paid_amount below computed line amount.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "payment_aging_buckets", "num": 695, "name": "payment_aging_buckets", "section": "P", "formula": "open payables aged by days since receipt.", "side_effect": "read", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "payment_status_summary", "num": 696, "name": "payment_status_summary", "section": "P", "formula": "counts/value by payment_status.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "three_way_match", "num": 697, "name": "three_way_match", "section": "P", "formula": "PO \u2194 receipt \u2194 invoice quantity/price match.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "price_billed_vs_ordered", "num": 698, "name": "price_billed_vs_ordered", "section": "P", "formula": "invoiced unit_price vs ordered unit_price.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "qty_billed_vs_received", "num": 699, "name": "qty_billed_vs_received", "section": "P", "formula": "billed qty vs received_qty discrepancy.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "round_number_invoice_flag", "num": 700, "name": "round_number_invoice_flag", "section": "P", "formula": "suspiciously round invoice amounts (fraud heuristic).", "side_effect": "alert", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "scheduled_check", "callable": true}, {"id": "invoice_sequence_gap", "num": 701, "name": "invoice_sequence_gap", "section": "P", "formula": "gaps/anomalies in per-supplier invoice numbering.", "side_effect": "alert", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "scheduled_check", "callable": true}, {"id": "duplicate_line_within_invoice", "num": 702, "name": "duplicate_line_within_invoice", "section": "P", "formula": "repeated SKU line inside one invoice.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "stale_unpaid_invoice", "num": 703, "name": "stale_unpaid_invoice", "section": "P", "formula": "unpaid invoices past aging threshold.", "side_effect": "read", "status": "partial", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "payment_before_receipt", "num": 704, "name": "payment_before_receipt", "section": "P", "formula": "paid_amount recorded before received_on.", "side_effect": "read", "status": "ready", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "invoice_vs_contract_price", "num": 705, "name": "invoice_vs_contract_price", "section": "P", "formula": "invoiced price vs contracted rate per SKU.", "side_effect": "read", "status": "blocked", "owner": "Procurement & Supplier Ops", "scope": "llm_query", "callable": true}, {"id": "prep_plan_from_demand", "num": 706, "name": "prep_plan_from_demand", "section": "R", "formula": "compute required prep qty per dish from forecast/recent sales \u00d7 recipe.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "prep_to_demand_ratio", "num": 707, "name": "prep_to_demand_ratio", "section": "R", "formula": "ratio of planned prep to expected demand per dish/cut.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "batch_size_recommend", "num": 708, "name": "batch_size_recommend", "section": "R", "formula": "recommend batch size per prep item from demand and batch-yield constraints.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "batch_count_required", "num": 709, "name": "batch_count_required", "section": "R", "formula": "number of batches needed per item given standard batch size.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "prep_sequence_plan", "num": 710, "name": "prep_sequence_plan", "section": "R", "formula": "order prep tasks across stations by lead time and dispatch wave deadlines.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "dispatch_wave_allocation", "num": 711, "name": "dispatch_wave_allocation", "section": "R", "formula": "split prep quantities across the 12:30/18:30 dispatch waves by outlet demand.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "per_outlet_prep_split", "num": 712, "name": "per_outlet_prep_split", "section": "R", "formula": "allocate central prep quantities to each outlet by its demand share.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "cut_level_demand_rollup", "num": 713, "name": "cut_level_demand_rollup", "section": "R", "formula": "roll dish demand down to required quantity per chicken cut.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "bird_count_from_cut_demand", "num": 714, "name": "bird_count_from_cut_demand", "section": "R", "formula": "birds to break down to satisfy the binding cut demand.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "joint_product_overproduction_estimate", "num": 715, "name": "joint_product_overproduction_estimate", "section": "R", "formula": "surplus of low-demand cuts forced by binding high-demand cut.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "binding_cut_identify", "num": 716, "name": "binding_cut_identify", "section": "R", "formula": "identify which cut is the binding constraint on bird count.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "prep_lead_time_schedule", "num": 717, "name": "prep_lead_time_schedule", "section": "R", "formula": "back-schedule prep start times from dispatch deadlines and prep durations.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "marination_hold_schedule", "num": 718, "name": "marination_hold_schedule", "section": "R", "formula": "schedule marination starts to meet minimum marinate-time before cook.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "tandoor_slot_plan", "num": 719, "name": "tandoor_slot_plan", "section": "R", "formula": "allocate tandoor cook slots across batches within capacity.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "station_load_plan", "num": 720, "name": "station_load_plan", "section": "R", "formula": "assign prep volume to stations balancing load.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "prep_carryover_plan", "num": 721, "name": "prep_carryover_plan", "section": "R", "formula": "plan use of prior-day carryover prep before fresh prep.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "safety_stock_prep_buffer", "num": 722, "name": "safety_stock_prep_buffer", "section": "R", "formula": "recommend prep buffer above demand from demand variability.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "min_batch_threshold_check", "num": 723, "name": "min_batch_threshold_check", "section": "R", "formula": "flag items whose demand is below minimum viable batch size.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "prep_consolidation_opportunity", "num": 724, "name": "prep_consolidation_opportunity", "section": "R", "formula": "merge small same-item preps into one batch to cut waste.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "dispatch_deadline_risk", "num": 725, "name": "dispatch_deadline_risk", "section": "R", "formula": "flag prep items at risk of missing dispatch wave cutoff.", "side_effect": "alert", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "scheduled_check", "callable": true}, {"id": "standard_yield_lookup", "num": 726, "name": "standard_yield_lookup", "section": "R", "formula": "standard yield % per cut/dish from golden_book.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "actual_yield_compute", "num": 727, "name": "actual_yield_compute", "section": "R", "formula": "actual yield from input weight vs output weight per batch.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "yield_variance", "num": 728, "name": "yield_variance", "section": "R", "formula": "actual minus standard yield per cut/dish/batch.", "side_effect": "alert", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "scheduled_check", "callable": true}, {"id": "low_yield_batch_detect", "num": 729, "name": "low_yield_batch_detect", "section": "R", "formula": "flag batches with yield below tolerance band.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "yield_by_chef", "num": 730, "name": "yield_by_chef", "section": "R", "formula": "yield performance grouped by chef.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "yield_by_shift", "num": 731, "name": "yield_by_shift", "section": "R", "formula": "yield grouped by shift/dispatch wave.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "yield_by_station", "num": 732, "name": "yield_by_station", "section": "R", "formula": "yield grouped by prep station.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "whole_bird_yield_breakdown", "num": 733, "name": "whole_bird_yield_breakdown", "section": "R", "formula": "expected weight per cut from one bird (Bada/Chhota).", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "bada_chhota_yield_compare", "num": 734, "name": "bada_chhota_yield_compare", "section": "R", "formula": "compare cut-yield profiles of Bada vs Chhota birds.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "cut_yield_deviation", "num": 735, "name": "cut_yield_deviation", "section": "R", "formula": "per-cut deviation of actual cut weight from standard.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "dish_yield_from_prep", "num": 736, "name": "dish_yield_from_prep", "section": "R", "formula": "portions produced per unit prep input vs standard.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "yield_loss_valuation", "num": 737, "name": "yield_loss_valuation", "section": "R", "formula": "\u20b9 value of yield shortfall vs standard.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "cumulative_yield_gap", "num": 738, "name": "cumulative_yield_gap", "section": "R", "formula": "running total yield gap over a period.", "side_effect": "alert", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "scheduled_check", "callable": true}, {"id": "yield_benchmark_percentile", "num": 739, "name": "yield_benchmark_percentile", "section": "R", "formula": "rank a batch's yield against its historical distribution.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "theoretical_output_from_input", "num": 740, "name": "theoretical_output_from_input", "section": "R", "formula": "expected output portions from measured raw input.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "edible_yield_ratio", "num": 741, "name": "edible_yield_ratio", "section": "R", "formula": "edible output vs gross bird weight per cut.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "tandoor_cook_loss", "num": 742, "name": "tandoor_cook_loss", "section": "R", "formula": "cook-loss % from raw-to-cooked weight in tandoor.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "cook_shrinkage_by_dish", "num": 743, "name": "cook_shrinkage_by_dish", "section": "R", "formula": "shrinkage per cooked dish (tikka/satay/lollipop).", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "marinade_uptake_weight", "num": 744, "name": "marinade_uptake_weight", "section": "R", "formula": "weight gained from marinade absorption per batch.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "trim_waste_ratio", "num": 745, "name": "trim_waste_ratio", "section": "R", "formula": "trim/cutting waste as % of raw input.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "bone_byproduct_yield", "num": 746, "name": "bone_byproduct_yield", "section": "R", "formula": "bone byproduct weight per bird broken down.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "skin_byproduct_yield", "num": 747, "name": "skin_byproduct_yield", "section": "R", "formula": "skin byproduct weight per bird.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "evaporation_loss_estimate", "num": 748, "name": "evaporation_loss_estimate", "section": "R", "formula": "moisture/evaporation loss over hold or cook.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "net_usable_after_shrinkage", "num": 749, "name": "net_usable_after_shrinkage", "section": "R", "formula": "usable output after all shrinkage stages.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "shrinkage_stage_waterfall", "num": 750, "name": "shrinkage_stage_waterfall", "section": "R", "formula": "decompose total loss across trim/cook/evaporation stages.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "standard_shrinkage_lookup", "num": 751, "name": "standard_shrinkage_lookup", "section": "R", "formula": "standard shrinkage factor per process from golden_book.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "shrinkage_variance", "num": 752, "name": "shrinkage_variance", "section": "R", "formula": "actual vs standard shrinkage per batch/dish.", "side_effect": "alert", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "scheduled_check", "callable": true}, {"id": "byproduct_recovery_value", "num": 753, "name": "byproduct_recovery_value", "section": "R", "formula": "recoverable \u20b9 from bone/skin byproduct.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "raw_to_cooked_conversion", "num": 754, "name": "raw_to_cooked_conversion", "section": "R", "formula": "conversion factor raw\u2192cooked per dish.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "cut_to_portion_conversion", "num": 755, "name": "cut_to_portion_conversion", "section": "R", "formula": "conversion cut weight\u2192sellable portions per dish.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "moisture_loss_hold_time", "num": 756, "name": "moisture_loss_hold_time", "section": "R", "formula": "moisture loss as function of hold duration.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "waste_rate_by_node", "num": 757, "name": "waste_rate_by_node", "section": "R", "formula": "waste % per production node (cutting/marination/tandoor).", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "waste_rate_by_dish", "num": 758, "name": "waste_rate_by_dish", "section": "R", "formula": "waste % per dish.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "waste_rate_by_cut", "num": 759, "name": "waste_rate_by_cut", "section": "R", "formula": "waste % per chicken cut.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "waste_value_inr", "num": 760, "name": "waste_value_inr", "section": "R", "formula": "\u20b9 value of waste per node/dish/cut.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "end_of_day_dump_qty", "num": 761, "name": "end_of_day_dump_qty", "section": "R", "formula": "quantity dumped at end of day per item.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "end_of_day_dump_value", "num": 762, "name": "end_of_day_dump_value", "section": "R", "formula": "\u20b9 value of end-of-day dump.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "expired_prep_waste", "num": 763, "name": "expired_prep_waste", "section": "R", "formula": "prep discarded for exceeding shelf-life.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "overproduction_waste_qty", "num": 764, "name": "overproduction_waste_qty", "section": "R", "formula": "waste attributable to producing above sold.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "overproduction_waste_value", "num": 765, "name": "overproduction_waste_value", "section": "R", "formula": "\u20b9 of overproduction waste.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "spoilage_waste_qty", "num": 766, "name": "spoilage_waste_qty", "section": "R", "formula": "spoilage-driven waste per item.", "side_effect": "alert", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "scheduled_check", "callable": true}, {"id": "return_waste_qty", "num": 767, "name": "return_waste_qty", "section": "R", "formula": "waste from outlet returns/unsold dispatch.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "waste_pareto_by_dish", "num": 768, "name": "waste_pareto_by_dish", "section": "R", "formula": "Pareto ranking of dishes by waste contribution.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "waste_pareto_by_cut", "num": 769, "name": "waste_pareto_by_cut", "section": "R", "formula": "Pareto ranking of cuts by waste.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "low_demand_cut_waste", "num": 770, "name": "low_demand_cut_waste", "section": "R", "formula": "waste concentrated in joint-product low-demand cuts.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "waste_trend_daily", "num": 771, "name": "waste_trend_daily", "section": "R", "formula": "daily waste rate/value trend.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "waste_to_sales_ratio", "num": 772, "name": "waste_to_sales_ratio", "section": "R", "formula": "waste value as % of sales.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "avoidable_vs_unavoidable_waste", "num": 773, "name": "avoidable_vs_unavoidable_waste", "section": "R", "formula": "split waste into trim/bone (unavoidable) vs dump/spoil (avoidable).", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "waste_hotspot_rank", "num": 774, "name": "waste_hotspot_rank", "section": "R", "formula": "rank nodes\u00d7dishes by waste \u20b9 to prioritize.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "dump_reason_breakdown", "num": 775, "name": "dump_reason_breakdown", "section": "R", "formula": "categorize dumps by reason (expiry/overprod/spoil/return).", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "produced_vs_sold", "num": 776, "name": "produced_vs_sold", "section": "R", "formula": "produced qty vs sold qty per dish.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "produced_vs_dispatched", "num": 777, "name": "produced_vs_dispatched", "section": "R", "formula": "produced qty vs dispatched qty per dish.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "dispatched_vs_sold", "num": 778, "name": "dispatched_vs_sold", "section": "R", "formula": "dispatched to outlet vs sold per dish/outlet.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "overproduction_qty", "num": 779, "name": "overproduction_qty", "section": "R", "formula": "surplus of produced/dispatched over sold.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "underproduction_qty", "num": 780, "name": "underproduction_qty", "section": "R", "formula": "shortfall of produced/dispatched vs demand.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "stockout_from_underprep", "num": 781, "name": "stockout_from_underprep", "section": "R", "formula": "dishes that hit stockout due to under-prep.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "surplus_from_overprep", "num": 782, "name": "surplus_from_overprep", "section": "R", "formula": "surplus units left from over-prep.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "sell_through_rate", "num": 783, "name": "sell_through_rate", "section": "R", "formula": "sold \u00f7 dispatched per dish/outlet.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "overproduction_cost", "num": 784, "name": "overproduction_cost", "section": "R", "formula": "\u20b9 cost of overproduced units.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "stockout_lost_sales_estimate", "num": 785, "name": "stockout_lost_sales_estimate", "section": "R", "formula": "estimated lost revenue from stockouts.", "side_effect": "read", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "forecast_vs_actual_demand", "num": 786, "name": "forecast_vs_actual_demand", "section": "R", "formula": "planned demand vs realized sales per dish.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "production_accuracy_score", "num": 787, "name": "production_accuracy_score", "section": "R", "formula": "composite score of produced-to-sold match.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "dispatch_accuracy_by_outlet", "num": 788, "name": "dispatch_accuracy_by_outlet", "section": "R", "formula": "dispatch-to-sell match per outlet.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "chronic_overprep_item", "num": 789, "name": "chronic_overprep_item", "section": "R", "formula": "items persistently over-prepped across days.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "chronic_stockout_item", "num": 790, "name": "chronic_stockout_item", "section": "R", "formula": "items persistently stocking out.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "demand_volatility_by_dish", "num": 791, "name": "demand_volatility_by_dish", "section": "R", "formula": "sales variability per dish to size buffers.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "portion_size_variance", "num": 792, "name": "portion_size_variance", "section": "R", "formula": "actual portion weight vs BOM portion.", "side_effect": "alert", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "scheduled_check", "callable": true}, {"id": "off_recipe_substitution_flag", "num": 793, "name": "off_recipe_substitution_flag", "section": "R", "formula": "flag ingredient substitutions vs BOM.", "side_effect": "alert", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "scheduled_check", "callable": true}, {"id": "ingredient_overuse_vs_bom", "num": 794, "name": "ingredient_overuse_vs_bom", "section": "R", "formula": "ingredient consumed above BOM spec.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "ingredient_underuse_vs_bom", "num": 795, "name": "ingredient_underuse_vs_bom", "section": "R", "formula": "ingredient consumed below BOM spec.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "batch_cost_variance", "num": 796, "name": "batch_cost_variance", "section": "R", "formula": "actual batch cost vs standard BOM cost.", "side_effect": "alert", "status": "partial", "owner": "Production / Prep / Yield / Wastage", "scope": "scheduled_check", "callable": true}, {"id": "recipe_adherence_score", "num": 797, "name": "recipe_adherence_score", "section": "R", "formula": "composite adherence score per batch/chef.", "side_effect": "alert", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "scheduled_check", "callable": true}, {"id": "bom_completeness_check", "num": 798, "name": "bom_completeness_check", "section": "R", "formula": "verify a dish's BOM has all required ingredients/yields.", "side_effect": "read", "status": "ready", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "marinade_ratio_check", "num": 799, "name": "marinade_ratio_check", "section": "R", "formula": "marinade-to-meat ratio vs recipe spec.", "side_effect": "read", "status": "blocked", "owner": "Production / Prep / Yield / Wastage", "scope": "llm_query", "callable": true}, {"id": "stock_on_hand_current", "num": 800, "name": "stock_on_hand_current", "section": "I", "formula": "current on-hand qty per SKU/outlet from latest stock_snapshot.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_on_hand_by_cut", "num": 801, "name": "stock_on_hand_by_cut", "section": "I", "formula": "on-hand grouped by chicken cut (breast/leg/wing/etc.) per outlet.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_on_hand_by_outlet", "num": 802, "name": "stock_on_hand_by_outlet", "section": "I", "formula": "total on-hand rolled up per outlet across all SKUs.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_on_hand_central_kitchen", "num": 803, "name": "stock_on_hand_central_kitchen", "section": "I", "formula": "central-kitchen on-hand position for raw + prepped items.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "book_stock_position", "num": 804, "name": "book_stock_position", "section": "I", "formula": "book (theoretical) on-hand = opening + receipts \u2212 consumption \u2212 transfers.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "book_vs_physical_gap", "num": 805, "name": "book_vs_physical_gap", "section": "I", "formula": "per-SKU delta between book stock and last physical count.", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "opening_closing_continuity", "num": 806, "name": "opening_closing_continuity", "section": "I", "formula": "verify closing[day N] == opening[day N+1] per SKU/outlet.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "stock_snapshot_freshness", "num": 807, "name": "stock_snapshot_freshness", "section": "I", "formula": "age of latest count per outlet; flags stale/never-counted locations.", "side_effect": "read", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "llm_query", "callable": true}, {"id": "stock_position_asof", "num": 808, "name": "stock_position_asof", "section": "I", "formula": "reconstruct on-hand at an arbitrary past timestamp from movement ledger.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_coverage_completeness", "num": 809, "name": "stock_coverage_completeness", "section": "I", "formula": "% of active SKUs that have any stock record vs total sku_item master.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "negative_book_stock_detect", "num": 810, "name": "negative_book_stock_detect", "section": "I", "formula": "SKUs whose computed book stock is < 0 (impossible position).", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "zero_stock_active_sku", "num": 811, "name": "zero_stock_active_sku", "section": "I", "formula": "active/selling SKUs currently at zero on-hand.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "prepped_item_on_hand", "num": 812, "name": "prepped_item_on_hand", "section": "I", "formula": "on-hand of cut/prepped WIP items distinct from raw inputs.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "raw_material_on_hand", "num": 813, "name": "raw_material_on_hand", "section": "I", "formula": "on-hand of raw chicken/produce/dry-staple inputs only.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_position_trend", "num": 814, "name": "stock_position_trend", "section": "I", "formula": "on-hand time series per SKU across snapshots.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_value_current", "num": 815, "name": "stock_value_current", "section": "I", "formula": "on-hand qty \u00d7 sku_cost per SKU/outlet in rupees.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_value_by_outlet", "num": 816, "name": "stock_value_by_outlet", "section": "I", "formula": "total \u20b9 inventory value rolled up per outlet.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_value_by_category", "num": 817, "name": "stock_value_by_category", "section": "I", "formula": "\u20b9 value grouped by category (raw/prepped/produce/dry).", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_value_by_cut", "num": 818, "name": "stock_value_by_cut", "section": "I", "formula": "\u20b9 inventory tied up per chicken cut.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_value_total_chain", "num": 819, "name": "stock_value_total_chain", "section": "I", "formula": "chain-wide total inventory \u20b9 across all outlets + central.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "dead_stock_value", "num": 820, "name": "dead_stock_value", "section": "I", "formula": "\u20b9 locked in non-moving/dead SKUs.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "expiry_risk_value", "num": 821, "name": "expiry_risk_value", "section": "I", "formula": "\u20b9 of stock within N days of expiry.", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "stock_value_trend", "num": 822, "name": "stock_value_trend", "section": "I", "formula": "inventory \u20b9 over time; detects inventory build-up.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "sku_cost_coverage", "num": 823, "name": "sku_cost_coverage", "section": "I", "formula": "% of on-hand SKUs with a valid sku_cost (else valuation gaps).", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_value_wac", "num": 824, "name": "stock_value_wac", "section": "I", "formula": "weighted-average-cost valuation from purchase history.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_value_fifo", "num": 825, "name": "stock_value_fifo", "section": "I", "formula": "FIFO valuation using dated receipt lots.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "carrying_cost_estimate", "num": 826, "name": "carrying_cost_estimate", "section": "I", "formula": "estimated holding cost (\u20b9 value \u00d7 carry rate \u00d7 days held).", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stockout_current", "num": 827, "name": "stockout_current", "section": "I", "formula": "SKUs currently at/below zero on-hand right now.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "sold_while_zero_phantom", "num": 828, "name": "sold_while_zero_phantom", "section": "I", "formula": "sales_canonical rows for a SKU while its stock was zero (phantom sales).", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "eightysix_list_active", "num": 829, "name": "eightysix_list_active", "section": "I", "formula": "items flagged 86'd (unavailable) at each outlet.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "eightysix_sales_impact", "num": 830, "name": "eightysix_sales_impact", "section": "I", "formula": "lost sales \u20b9 estimate for 86'd items vs their normal run-rate.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stockout_frequency", "num": 831, "name": "stockout_frequency", "section": "I", "formula": "count of stockout events per SKU/outlet over window.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stockout_duration", "num": 832, "name": "stockout_duration", "section": "I", "formula": "total hours/days each SKU spent out of stock.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "near_stockout_warning", "num": 833, "name": "near_stockout_warning", "section": "I", "formula": "SKUs with on-hand below warning threshold (imminent stockout).", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stockout_by_daypart", "num": 834, "name": "stockout_by_daypart", "section": "I", "formula": "stockouts concentrated in specific dayparts (lunch/dinner rush).", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "chronic_stockout_sku", "num": 835, "name": "chronic_stockout_sku", "section": "I", "formula": "SKUs stocking out repeatedly (systemic under-stock).", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stockout_sales_loss_total", "num": 836, "name": "stockout_sales_loss_total", "section": "I", "formula": "aggregate estimated revenue lost to stockouts.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "menu_availability_rate", "num": 837, "name": "menu_availability_rate", "section": "I", "formula": "% of menu items in-stock/available per outlet per period.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "substitute_cannibalization", "num": 838, "name": "substitute_cannibalization", "section": "I", "formula": "sales shift to substitutes when a cut is 86'd.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stockout_recovery_time", "num": 839, "name": "stockout_recovery_time", "section": "I", "formula": "lag between stockout and next replenishment/restock.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "days_to_expiry", "num": 840, "name": "days_to_expiry", "section": "I", "formula": "remaining shelf-life per stock lot from batch date + shelf-life rule.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "expiry_risk_flag", "num": 841, "name": "expiry_risk_flag", "section": "I", "formula": "lots within critical days-to-expiry threshold.", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "aging_bucket_report", "num": 842, "name": "aging_bucket_report", "section": "I", "formula": "stock bucketed by age (0-1d/2-3d/4-7d/>7d) per SKU.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "fefo_adherence", "num": 843, "name": "fefo_adherence", "section": "I", "formula": "whether First-Expiry-First-Out is followed vs lot consumption order.", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "fifo_adherence", "num": 844, "name": "fifo_adherence", "section": "I", "formula": "First-In-First-Out compliance from lot in/out sequence.", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "expired_stock_onhand", "num": 845, "name": "expired_stock_onhand", "section": "I", "formula": "stock past expiry still recorded as on-hand (should be written off).", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "spoilage_forecast", "num": 846, "name": "spoilage_forecast", "section": "I", "formula": "projected spoilage qty = at-risk lots \u2212 forecast consumption before expiry.", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "cold_chain_holdtime", "num": 847, "name": "cold_chain_holdtime", "section": "I", "formula": "time raw/prepped chicken held vs safe cold-chain window.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "thaw_refreeze_risk", "num": 848, "name": "thaw_refreeze_risk", "section": "I", "formula": "lots thawed then not consumed within safe window (refreeze hazard).", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "shelf_life_by_cut", "num": 849, "name": "shelf_life_by_cut", "section": "I", "formula": "configured shelf-life per cut vs actual burn-down speed.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "perishable_exposure", "num": 850, "name": "perishable_exposure", "section": "I", "formula": "share of inventory \u20b9 in short-shelf-life perishables.", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "overstock_spoilage_risk", "num": 851, "name": "overstock_spoilage_risk", "section": "I", "formula": "SKUs with on-hand > demand-until-expiry (will spoil).", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "batch_lot_traceability", "num": 852, "name": "batch_lot_traceability", "section": "I", "formula": "trace a batch/lot from receipt \u2192 transfer \u2192 consumption.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "first_expiry_alert", "num": 853, "name": "first_expiry_alert", "section": "I", "formula": "earliest-expiring lot per SKU needing priority consumption.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "write_off_candidate", "num": 854, "name": "write_off_candidate", "section": "I", "formula": "expired/spoiled lots recommended for wastage write-off.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_days_of_supply", "num": 855, "name": "stock_days_of_supply", "section": "I", "formula": "on-hand \u00f7 avg daily consumption = days of cover per SKU.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "days_of_supply_by_outlet", "num": 856, "name": "days_of_supply_by_outlet", "section": "I", "formula": "outlet-level cover computed from sales-derived burn.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "safety_stock_adequacy", "num": 857, "name": "safety_stock_adequacy", "section": "I", "formula": "on-hand vs required safety stock for demand variability.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "reorder_point_breach", "num": 858, "name": "reorder_point_breach", "section": "I", "formula": "SKUs at/below reorder point (ROP = lead-demand + safety).", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "par_level_deviation", "num": 859, "name": "par_level_deviation", "section": "I", "formula": "on-hand vs configured par; over/under par per SKU/outlet.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "coverage_gap_report", "num": 860, "name": "coverage_gap_report", "section": "I", "formula": "SKUs with < N days cover ranked by stockout urgency.", "side_effect": "alert", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "overcoverage_report", "num": 861, "name": "overcoverage_report", "section": "I", "formula": "SKUs with excess cover (> max days) tying up cash.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "lead_time_demand", "num": 862, "name": "lead_time_demand", "section": "I", "formula": "expected demand over supplier lead time per SKU.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "stock_to_demand_ratio", "num": 863, "name": "stock_to_demand_ratio", "section": "I", "formula": "on-hand relative to forward demand forecast.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "cover_by_cut", "num": 864, "name": "cover_by_cut", "section": "I", "formula": "days-of-supply per chicken cut (surfaces joint-product imbalance).", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "weekend_cover_check", "num": 865, "name": "weekend_cover_check", "section": "I", "formula": "whether Fri close-stock covers weekend demand before next delivery.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "fast_slow_dead_class", "num": 866, "name": "fast_slow_dead_class", "section": "I", "formula": "classify SKUs fast/slow/dead by turnover velocity.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "abc_analysis", "num": 867, "name": "abc_analysis", "section": "I", "formula": "ABC classification by consumption \u20b9 (A=top ~80% value).", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "xyz_analysis", "num": 868, "name": "xyz_analysis", "section": "I", "formula": "XYZ by demand variability (X=steady, Z=erratic).", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "abc_xyz_matrix", "num": 869, "name": "abc_xyz_matrix", "section": "I", "formula": "combined ABC\u00d7XYZ 9-box for stocking policy.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "non_moving_sku", "num": 870, "name": "non_moving_sku", "section": "I", "formula": "SKUs with zero movement over N days.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "dead_stock_list", "num": 871, "name": "dead_stock_list", "section": "I", "formula": "on-hand SKUs with no consumption in long window (obsolete).", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "inventory_turnover", "num": 872, "name": "inventory_turnover", "section": "I", "formula": "turns = consumption \u00f7 avg on-hand per SKU/outlet.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "days_inventory_outstanding", "num": 873, "name": "days_inventory_outstanding", "section": "I", "formula": "DIO = 365 \u00f7 turnover per SKU.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "obsolescence_risk", "num": 874, "name": "obsolescence_risk", "section": "I", "formula": "slow-movers with short shelf-life at high obsolescence risk.", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "movement_velocity_rank", "num": 875, "name": "movement_velocity_rank", "section": "I", "formula": "rank SKUs by units-per-day movement.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "sku_rationalization_candidate", "num": 876, "name": "sku_rationalization_candidate", "section": "I", "formula": "dead/slow perishable SKUs to delist.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "new_sku_ramp", "num": 877, "name": "new_sku_ramp", "section": "I", "formula": "recently-added SKUs and their stock-movement adoption curve.", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "count_variance", "num": 878, "name": "count_variance", "section": "I", "formula": "physical count \u2212 book stock per SKU (variance qty + \u20b9).", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "shrinkage_calc", "num": 879, "name": "shrinkage_calc", "section": "I", "formula": "shrinkage = opening + receipts \u2212 consumption \u2212 transfers \u2212 closing.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "shrinkage_by_cut", "num": 880, "name": "shrinkage_by_cut", "section": "I", "formula": "shrinkage concentrated in specific high-theft/high-spoil cuts.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "cycle_count_accuracy", "num": 881, "name": "cycle_count_accuracy", "section": "I", "formula": "% of counted SKUs within tolerance (count accuracy KPI).", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "negative_stock_events", "num": 882, "name": "negative_stock_events", "section": "I", "formula": "instances where recorded stock went below zero.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "variance_trend", "num": 883, "name": "variance_trend", "section": "I", "formula": "count-variance magnitude over time per outlet.", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "high_variance_sku", "num": 884, "name": "high_variance_sku", "section": "I", "formula": "SKUs with recurring large count variances (control gap).", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "unexplained_loss", "num": 885, "name": "unexplained_loss", "section": "I", "formula": "shrinkage not attributable to recorded wastage.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "receipt_posting_lag", "num": 886, "name": "receipt_posting_lag", "section": "I", "formula": "receipts recorded after stock physically arrived (timing variance).", "side_effect": "read", "status": "partial", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "count_coverage_rate", "num": 887, "name": "count_coverage_rate", "section": "I", "formula": "% of SKUs actually cycle-counted per period.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "variance_root_cause_tag", "num": 888, "name": "variance_root_cause_tag", "section": "I", "formula": "bucket variance into spoilage/theft/miscount/unit-error.", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "transfer_in_out_recon", "num": 889, "name": "transfer_in_out_recon", "section": "I", "formula": "transfer-out from source == transfer-in at destination per SKU.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "transfer_imbalance", "num": 890, "name": "transfer_imbalance", "section": "I", "formula": "unmatched/one-sided transfers (in without out or vice versa).", "side_effect": "alert", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "scheduled_check", "callable": true}, {"id": "central_dispatch_vs_outlet_receipt", "num": 891, "name": "central_dispatch_vs_outlet_receipt", "section": "I", "formula": "central kitchen dispatch qty vs outlet-received qty.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "in_transit_stock", "num": 892, "name": "in_transit_stock", "section": "I", "formula": "stock dispatched but not yet received (transit position + \u20b9).", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "transfer_leakage", "num": 893, "name": "transfer_leakage", "section": "I", "formula": "qty lost between dispatch and receipt (transfer shrinkage).", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "inter_outlet_transfer_balance", "num": 894, "name": "inter_outlet_transfer_balance", "section": "I", "formula": "net transfer flow between outlets (giver/taker map).", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "transfer_frequency", "num": 895, "name": "transfer_frequency", "section": "I", "formula": "transfer volume per lane; surfaces mis-allocation reworking.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "transfer_delay", "num": 896, "name": "transfer_delay", "section": "I", "formula": "dispatch\u2192receipt time; cold-chain exposure during transit.", "side_effect": "read", "status": "blocked", "owner": "Inventory & Stock Ops", "scope": "llm_query", "callable": true}, {"id": "dispatch_ordered_vs_dispatched", "num": 897, "name": "dispatch_ordered_vs_dispatched", "section": "X", "formula": "per outlet/item, compare ordered qty vs dispatched qty on internal_dispatch lines.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "dispatch_vs_received_delta", "num": 898, "name": "dispatch_vs_received_delta", "section": "X", "formula": "per outlet/item, dispatched qty vs received qty gap.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "short_dispatch_lines", "num": 899, "name": "short_dispatch_lines", "section": "X", "formula": "flag lines where dispatched < ordered, ranked by shortfall.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "over_dispatch_lines", "num": 900, "name": "over_dispatch_lines", "section": "X", "formula": "flag lines where dispatched > ordered, ranked by excess.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "wrong_item_dispatch", "num": 901, "name": "wrong_item_dispatch", "section": "X", "formula": "item on dispatch line not present in that outlet's ordered set.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "missing_dispatch_line", "num": 902, "name": "missing_dispatch_line", "section": "X", "formula": "ordered items with no matching dispatch line (zero fulfilled).", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "dispatch_line_fill_rate", "num": 903, "name": "dispatch_line_fill_rate", "section": "X", "formula": "per line, dispatched/ordered as a fill ratio.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "outlet_order_fill_rate", "num": 904, "name": "outlet_order_fill_rate", "section": "X", "formula": "per outlet, aggregate lines fully vs partially vs unfilled.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "item_short_dispatch_frequency", "num": 905, "name": "item_short_dispatch_frequency", "section": "X", "formula": "how often each SKU is short-dispatched across days/outlets.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "chronic_short_item_ranking", "num": 906, "name": "chronic_short_item_ranking", "section": "X", "formula": "SKUs persistently short-dispatched over a window.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "dispatch_qty_variance_stat", "num": 907, "name": "dispatch_qty_variance_stat", "section": "X", "formula": "mean/stddev of dispatch fill per item to surface volatile SKUs.", "side_effect": "alert", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "scheduled_check", "callable": true}, {"id": "zero_dispatch_but_ordered", "num": 908, "name": "zero_dispatch_but_ordered", "section": "X", "formula": "outlet ordered but received nothing dispatched that day.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "unordered_but_dispatched", "num": 909, "name": "unordered_but_dispatched", "section": "X", "formula": "outlet got items it never ordered (push/overstock).", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "dispatch_uom_mismatch", "num": 910, "name": "dispatch_uom_mismatch", "section": "X", "formula": "ordered vs dispatched unit-of-measure disagreement on a line.", "side_effect": "alert", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "scheduled_check", "callable": true}, {"id": "dispatch_accuracy_scorecard", "num": 911, "name": "dispatch_accuracy_scorecard", "section": "X", "formula": "composite per-outlet accuracy (fill \u00d7 correctness \u00d7 completeness).", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "wave_bucket_assign", "num": 912, "name": "wave_bucket_assign", "section": "X", "formula": "bucket each dispatch line into lunch(12:30)/dinner(18:30) wave by timestamp.", "side_effect": "read", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "wave_adherence_rate", "num": 913, "name": "wave_adherence_rate", "section": "X", "formula": "% of dispatch lines landing within their target wave window.", "side_effect": "alert", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "scheduled_check", "callable": true}, {"id": "late_dispatch_lines", "num": 914, "name": "late_dispatch_lines", "section": "X", "formula": "lines dispatched after the wave cutoff, ranked by minutes late.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "cutoff_miss_detect", "num": 915, "name": "cutoff_miss_detect", "section": "X", "formula": "orders that missed the wave cutoff entirely and slipped to next wave.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "wave_mix_correctness", "num": 916, "name": "wave_mix_correctness", "section": "X", "formula": "per wave, dispatched item mix vs the mix that wave should carry.", "side_effect": "read", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "split_across_waves", "num": 917, "name": "split_across_waves", "section": "X", "formula": "single order fulfilled across both waves instead of one.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "wave_lead_time", "num": 918, "name": "wave_lead_time", "section": "X", "formula": "order-placed to dispatch-ready duration per wave.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "per_outlet_wave_punctuality", "num": 919, "name": "per_outlet_wave_punctuality", "section": "X", "formula": "each outlet's on-time wave-delivery streak.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "wave_volume_profile", "num": 920, "name": "wave_volume_profile", "section": "X", "formula": "dispatched qty distribution across lunch vs dinner per outlet.", "side_effect": "read", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "prepared_item_wave_plan", "num": 921, "name": "prepared_item_wave_plan", "section": "X", "formula": "target prepared-item qty per outlet per wave.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "wave_backlog_carryover", "num": 922, "name": "wave_backlog_carryover", "section": "X", "formula": "undispatched wave demand rolled into the next wave.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "wave_cutoff_config", "num": 923, "name": "wave_cutoff_config", "section": "X", "formula": "resolve per-outlet wave windows (12:30/18:30) from governance.", "side_effect": "read", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "wave_slippage_trend", "num": 924, "name": "wave_slippage_trend", "section": "X", "formula": "trend of lateness minutes per wave over a window.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "fair_share_allocation", "num": 925, "name": "fair_share_allocation", "section": "X", "formula": "split scarce central supply across outlets equally by need.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "proportional_demand_allocation", "num": 926, "name": "proportional_demand_allocation", "section": "X", "formula": "allocate scarce supply proportional to each outlet's demand.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "priority_allocation", "num": 927, "name": "priority_allocation", "section": "X", "formula": "allocate by outlet priority ranking under scarcity.", "side_effect": "read", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "starvation_detection", "num": 928, "name": "starvation_detection", "section": "X", "formula": "outlets receiving far below demand share (starved).", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "allocation_shortfall_by_outlet", "num": 929, "name": "allocation_shortfall_by_outlet", "section": "X", "formula": "per-outlet gap between fair share and actual allocation.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "scarce_item_flag", "num": 930, "name": "scarce_item_flag", "section": "X", "formula": "items where total demand exceeds central available supply.", "side_effect": "alert", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "scheduled_check", "callable": true}, {"id": "allocation_vs_actual_dispatch", "num": 931, "name": "allocation_vs_actual_dispatch", "section": "X", "formula": "recommended allocation vs what was actually dispatched.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "overallocated_outlet", "num": 932, "name": "overallocated_outlet", "section": "X", "formula": "outlet given more than its demand-justified share.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "allocation_efficiency", "num": 933, "name": "allocation_efficiency", "section": "X", "formula": "how well dispatch matched the optimal allocation plan.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "demand_weighted_priority", "num": 934, "name": "demand_weighted_priority", "section": "X", "formula": "blend demand size and priority into an allocation weight.", "side_effect": "read", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "min_guarantee_allocation", "num": 935, "name": "min_guarantee_allocation", "section": "X", "formula": "enforce a floor qty per outlet before proportional split.", "side_effect": "read", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "allocation_rebalance_suggest", "num": 936, "name": "allocation_rebalance_suggest", "section": "X", "formula": "reallocate surplus from over- to under-served outlets.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "joint_product_cut_allocation", "num": 937, "name": "joint_product_cut_allocation", "section": "X", "formula": "split shared forced-yield cuts across outlets by dish-demand mix.", "side_effect": "read", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "cut_mix_shortfall", "num": 938, "name": "cut_mix_shortfall", "section": "X", "formula": "outlet's needed cut-mix vs central's yield-constrained available mix.", "side_effect": "read", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "outlet_demand_from_sales", "num": 939, "name": "outlet_demand_from_sales", "section": "X", "formula": "derive each outlet's item demand from sales_canonical.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "demand_to_dispatch_gap", "num": 940, "name": "demand_to_dispatch_gap", "section": "X", "formula": "per outlet, demand vs dispatched quantity gap.", "side_effect": "alert", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "scheduled_check", "callable": true}, {"id": "under_served_outlets", "num": 941, "name": "under_served_outlets", "section": "X", "formula": "outlets whose dispatch consistently trails demand.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "over_served_outlets", "num": 942, "name": "over_served_outlets", "section": "X", "formula": "outlets dispatched above their sales-implied demand.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "demand_dispatch_correlation", "num": 943, "name": "demand_dispatch_correlation", "section": "X", "formula": "how tightly dispatch tracks demand per outlet.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "outlet_demand_ranking", "num": 944, "name": "outlet_demand_ranking", "section": "X", "formula": "rank outlets by total demand for consolidation.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "demand_volatility_by_outlet", "num": 945, "name": "demand_volatility_by_outlet", "section": "X", "formula": "variability of each outlet's daily demand.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "balance_index", "num": 946, "name": "balance_index", "section": "X", "formula": "dispersion metric of served-vs-demand across the three outlets.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "item_demand_by_outlet", "num": 947, "name": "item_demand_by_outlet", "section": "X", "formula": "matrix of per-item demand across outlets.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "demand_forecast_naive", "num": 948, "name": "demand_forecast_naive", "section": "X", "formula": "moving-average next-wave demand per outlet/item.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "demand_spike_detect", "num": 949, "name": "demand_spike_detect", "section": "X", "formula": "outlet/item demand spikes exceeding baseline.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "dish_to_ingredient_demand", "num": 950, "name": "dish_to_ingredient_demand", "section": "X", "formula": "explode outlet dish sales into ingredient/cut demand via recipe.", "side_effect": "read", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "dispatch_receipt_reconcile", "num": 951, "name": "dispatch_receipt_reconcile", "section": "X", "formula": "match central dispatch lines to outlet receipt confirmations.", "side_effect": "alert", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "scheduled_check", "callable": true}, {"id": "in_transit_loss", "num": 952, "name": "in_transit_loss", "section": "X", "formula": "dispatched minus received quantity attributed to transit loss.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "unconfirmed_receipts", "num": 953, "name": "unconfirmed_receipts", "section": "X", "formula": "dispatch lines with no outlet receipt acknowledgment.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "receipt_delay", "num": 954, "name": "receipt_delay", "section": "X", "formula": "time between dispatch and outlet receipt confirmation.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "disputed_receipt_lines", "num": 955, "name": "disputed_receipt_lines", "section": "X", "formula": "received qty differs from dispatched beyond tolerance.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "phantom_receipt", "num": 956, "name": "phantom_receipt", "section": "X", "formula": "outlet confirmed receipt with no matching dispatch line.", "side_effect": "alert", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "scheduled_check", "callable": true}, {"id": "reconcile_summary_by_outlet", "num": 957, "name": "reconcile_summary_by_outlet", "section": "X", "formula": "per outlet, dispatched vs received rollup with deltas.", "side_effect": "alert", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "scheduled_check", "callable": true}, {"id": "transit_loss_by_item", "num": 958, "name": "transit_loss_by_item", "section": "X", "formula": "which SKUs lose most quantity in transit.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "open_transfer_aging", "num": 959, "name": "open_transfer_aging", "section": "X", "formula": "age of dispatches still awaiting receipt confirmation.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "receipt_match_rate", "num": 960, "name": "receipt_match_rate", "section": "X", "formula": "% of dispatch lines cleanly reconciled to receipts.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "item_cost_across_outlets", "num": 961, "name": "item_cost_across_outlets", "section": "X", "formula": "same dispatched item's cost compared across outlets.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "item_qty_across_outlets", "num": 962, "name": "item_qty_across_outlets", "section": "X", "formula": "same item's dispatched quantity spread across outlets.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "outlet_fill_rate_from_central", "num": 963, "name": "outlet_fill_rate_from_central", "section": "X", "formula": "each outlet's fill rate sourced from central dispatch.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "cost_variance_outlier_item", "num": 964, "name": "cost_variance_outlier_item", "section": "X", "formula": "items whose per-outlet dispatch cost diverges most.", "side_effect": "alert", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "scheduled_check", "callable": true}, {"id": "waste_variance_across_outlets", "num": 965, "name": "waste_variance_across_outlets", "section": "X", "formula": "waste rate of same item differing across outlets.", "side_effect": "alert", "status": "partial", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "scheduled_check", "callable": true}, {"id": "central_dispatch_cost_share", "num": 966, "name": "central_dispatch_cost_share", "section": "X", "formula": "each outlet's share of total central dispatch cost.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "outlet_receiving_efficiency", "num": 967, "name": "outlet_receiving_efficiency", "section": "X", "formula": "received-vs-dispatched efficiency per outlet.", "side_effect": "read", "status": "blocked", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "variance_ranked_items", "num": 968, "name": "variance_ranked_items", "section": "X", "formula": "items ranked by cross-outlet dispatch variance.", "side_effect": "alert", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "scheduled_check", "callable": true}, {"id": "outlet_cost_per_unit_benchmark", "num": 969, "name": "outlet_cost_per_unit_benchmark", "section": "X", "formula": "benchmark each outlet's unit dispatch cost vs chain median.", "side_effect": "read", "status": "ready", "owner": "Dispatch / Central-Kitchen / Multi-Outlet Logistics", "scope": "llm_query", "callable": true}, {"id": "dish_gross_margin", "num": 970, "name": "dish_gross_margin", "section": "M", "formula": "gross margin (realized price \u2212 recipe cost) per menu item.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "dish_gross_margin_pct", "num": 971, "name": "dish_gross_margin_pct", "section": "M", "formula": "gross margin as % of realized price per dish.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "dish_contribution_margin_pct", "num": 972, "name": "dish_contribution_margin_pct", "section": "M", "formula": "contribution margin ratio per dish.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "dish_margin_by_channel", "num": 973, "name": "dish_margin_by_channel", "section": "M", "formula": "per-dish margin split by dine-in vs Zomato vs Swiggy (net of commission).", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "dish_margin_ranking", "num": 974, "name": "dish_margin_ranking", "section": "M", "formula": "rank all dishes by absolute gross margin, descending.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "dish_margin_pct_ranking", "num": 975, "name": "dish_margin_pct_ranking", "section": "M", "formula": "rank dishes by margin percentage (high-margin vs low-margin).", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "negative_margin_flag", "num": 976, "name": "negative_margin_flag", "section": "M", "formula": "flag dishes where realized price \u2264 recipe cost (loss-makers).", "side_effect": "alert", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "scheduled_check", "callable": true}, {"id": "thin_margin_flag", "num": 977, "name": "thin_margin_flag", "section": "M", "formula": "flag dishes with margin % below a configurable threshold.", "side_effect": "alert", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "scheduled_check", "callable": true}, {"id": "dish_margin_weighted_by_volume", "num": 978, "name": "dish_margin_weighted_by_volume", "section": "M", "formula": "margin weighted by units sold (true P&L contributors).", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "zero_cost_basis_flag", "num": 979, "name": "zero_cost_basis_flag", "section": "M", "formula": "flag dishes sold with no costable recipe (margin uncomputable).", "side_effect": "alert", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "scheduled_check", "callable": true}, {"id": "margin_per_covers", "num": 980, "name": "margin_per_covers", "section": "M", "formula": "average margin per cover/transaction by outlet.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "margin_per_cut", "num": 981, "name": "margin_per_cut", "section": "M", "formula": "margin for each carcass cut using allocated joint cost basis.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "cut_margin_ranking", "num": 982, "name": "cut_margin_ranking", "section": "M", "formula": "rank co-product cuts by contribution margin.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "cut_yield_margin_sensitivity", "num": 983, "name": "cut_yield_margin_sensitivity", "section": "M", "formula": "margin sensitivity to yield shift per cut.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "high_value_cut_utilization", "num": 984, "name": "high_value_cut_utilization", "section": "M", "formula": "margin captured vs foregone on premium cuts.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "cut_mix_margin_impact", "num": 985, "name": "cut_mix_margin_impact", "section": "M", "formula": "margin effect of the realized cut sales mix vs balanced carcass.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "carcass_margin_reconciliation", "num": 986, "name": "carcass_margin_reconciliation", "section": "M", "formula": "reconcile sum-of-cut margins against whole-bird cost basis.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "outlet_blended_margin", "num": 987, "name": "outlet_blended_margin", "section": "M", "formula": "volume-weighted blended gross margin per outlet.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "outlet_blended_margin_pct", "num": 988, "name": "outlet_blended_margin_pct", "section": "M", "formula": "blended margin % per outlet.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "cross_outlet_margin_benchmark", "num": 989, "name": "cross_outlet_margin_benchmark", "section": "M", "formula": "benchmark each outlet's blended margin against the chain median.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "outlet_margin_gap_to_best", "num": 990, "name": "outlet_margin_gap_to_best", "section": "M", "formula": "margin gap of each outlet vs the best-performing outlet.", "side_effect": "alert", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "scheduled_check", "callable": true}, {"id": "chain_blended_margin", "num": 991, "name": "chain_blended_margin", "section": "M", "formula": "chain-wide blended margin (not \u03a3 outlet, computed on pooled data).", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "outlet_margin_dispersion", "num": 992, "name": "outlet_margin_dispersion", "section": "M", "formula": "variance/spread of margin across outlets.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "category_blended_margin", "num": 993, "name": "category_blended_margin", "section": "M", "formula": "blended margin per menu category per outlet.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "theoretical_food_cost_pct", "num": 994, "name": "theoretical_food_cost_pct", "section": "M", "formula": "recipe-derived food cost as % of price per dish.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "actual_food_cost_pct", "num": 995, "name": "actual_food_cost_pct", "section": "M", "formula": "purchases-derived actual food cost % per outlet (supply proxy).", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "food_cost_theoretical_vs_actual", "num": 996, "name": "food_cost_theoretical_vs_actual", "section": "M", "formula": "gap between theoretical and actual food cost %.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "cost_per_serving_by_category", "num": 998, "name": "cost_per_serving_by_category", "section": "M", "formula": "average cost per serving grouped by category.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "food_cost_by_category", "num": 999, "name": "food_cost_by_category", "section": "M", "formula": "food cost % aggregated by menu category.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "food_cost_drift", "num": 1000, "name": "food_cost_drift", "section": "M", "formula": "food cost % change over time per dish/outlet.", "side_effect": "alert", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "scheduled_check", "callable": true}, {"id": "food_cost_target_variance", "num": 1001, "name": "food_cost_target_variance", "section": "M", "formula": "actual food cost % vs a configured target %.", "side_effect": "alert", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "scheduled_check", "callable": true}, {"id": "ingredient_cost_share", "num": 1002, "name": "ingredient_cost_share", "section": "M", "formula": "per-dish cost broken down by ingredient contribution.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "top_cost_ingredients", "num": 1003, "name": "top_cost_ingredients", "section": "M", "formula": "ingredients driving the most total cost across the menu.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "staple_cost_coverage", "num": 1004, "name": "staple_cost_coverage", "section": "M", "formula": "% of recipe cost captured given missing dry-staples purchases.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "costable_recipe_coverage", "num": 1005, "name": "costable_recipe_coverage", "section": "M", "formula": "share of menu that is fully costable vs blocked.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "margin_erosion_total", "num": 1006, "name": "margin_erosion_total", "section": "M", "formula": "total actual\u2212theoretical margin gap per dish/outlet.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "erosion_decomposition", "num": 1007, "name": "erosion_decomposition", "section": "M", "formula": "decompose erosion into waste / price / yield / portion / mix causes.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "erosion_cause_waste", "num": 1008, "name": "erosion_cause_waste", "section": "M", "formula": "margin lost attributable to wastage/spoilage.", "side_effect": "read", "status": "blocked", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "erosion_cause_price", "num": 1009, "name": "erosion_cause_price", "section": "M", "formula": "margin lost to purchase-price inflation on inputs.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "erosion_cause_yield", "num": 1010, "name": "erosion_cause_yield", "section": "M", "formula": "margin lost to yield below recipe standard.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "erosion_cause_portion", "num": 1011, "name": "erosion_cause_portion", "section": "M", "formula": "margin lost to portion overage vs recipe.", "side_effect": "read", "status": "blocked", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "erosion_cause_mix", "num": 1012, "name": "erosion_cause_mix", "section": "M", "formula": "margin lost to unfavorable sales-mix shift.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "erosion_trend", "num": 1013, "name": "erosion_trend", "section": "M", "formula": "erosion trajectory over time per outlet.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "top_erosion_drivers", "num": 1014, "name": "top_erosion_drivers", "section": "M", "formula": "rank dishes/causes by total margin eroded.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "erosion_recovery_estimate", "num": 1015, "name": "erosion_recovery_estimate", "section": "M", "formula": "margin recoverable by closing each erosion cause.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "menu_vs_realized_price", "num": 1016, "name": "menu_vs_realized_price", "section": "M", "formula": "published menu price vs realized average selling price per dish.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "price_leakage_amount", "num": 1017, "name": "price_leakage_amount", "section": "M", "formula": "total revenue lost between menu and realized price.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "price_leakage_ranking", "num": 1018, "name": "price_leakage_ranking", "section": "M", "formula": "rank dishes by absolute price leakage.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "discount_depth", "num": 1019, "name": "discount_depth", "section": "M", "formula": "average discount % applied per dish/channel.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "discount_leakage", "num": 1020, "name": "discount_leakage", "section": "M", "formula": "revenue given away via discounts per dish/outlet.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "undercharge_flag", "num": 1021, "name": "undercharge_flag", "section": "M", "formula": "flag transactions realized below menu price (excl. sanctioned discounts).", "side_effect": "alert", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "scheduled_check", "callable": true}, {"id": "free_item_leakage", "num": 1022, "name": "free_item_leakage", "section": "M", "formula": "revenue foregone on zero-priced/complimentary line items.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "channel_price_parity", "num": 1023, "name": "channel_price_parity", "section": "M", "formula": "compare same-dish price across dine-in vs aggregators.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "channel_price_disparity_flag", "num": 1024, "name": "channel_price_disparity_flag", "section": "M", "formula": "flag dishes priced inconsistently across channels.", "side_effect": "alert", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "scheduled_check", "callable": true}, {"id": "discount_frequency", "num": 1025, "name": "discount_frequency", "section": "M", "formula": "how often a dish is discounted vs sold at full price.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "promo_leakage", "num": 1026, "name": "promo_leakage", "section": "M", "formula": "revenue impact of promo-flagged transactions.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "price_override_incidence", "num": 1027, "name": "price_override_incidence", "section": "M", "formula": "rate of manual price overrides per outlet.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "leakage_per_outlet", "num": 1028, "name": "leakage_per_outlet", "section": "M", "formula": "total price+discount leakage aggregated per outlet.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "net_realized_price", "num": 1029, "name": "net_realized_price", "section": "M", "formula": "price net of discounts and channel deductions per dish.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "aggregator_commission_drain", "num": 1030, "name": "aggregator_commission_drain", "section": "M", "formula": "total commission paid to Zomato/Swiggy per dish/outlet.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "effective_payout_pct", "num": 1031, "name": "effective_payout_pct", "section": "M", "formula": "net payout % after aggregator commission and fees.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "aggregator_vs_dinein_margin", "num": 1032, "name": "aggregator_vs_dinein_margin", "section": "M", "formula": "margin comparison of aggregator vs dine-in per dish.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "commission_adjusted_margin", "num": 1033, "name": "commission_adjusted_margin", "section": "M", "formula": "dish margin after subtracting aggregator commission.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "delivery_fee_impact", "num": 1034, "name": "delivery_fee_impact", "section": "M", "formula": "margin impact of delivery/packaging fees per order.", "side_effect": "read", "status": "blocked", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "aggregator_ad_promo_spend", "num": 1035, "name": "aggregator_ad_promo_spend", "section": "M", "formula": "ad/promo spend on aggregators vs incremental revenue.", "side_effect": "read", "status": "blocked", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "aggregator_settlement_variance", "num": 1036, "name": "aggregator_settlement_variance", "section": "M", "formula": "booked payout vs actual aggregator settlement.", "side_effect": "alert", "status": "blocked", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "scheduled_check", "callable": true}, {"id": "aggregator_breakeven_price", "num": 1037, "name": "aggregator_breakeven_price", "section": "M", "formula": "price needed on aggregator to match dine-in margin.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "channel_profitability_ranking", "num": 1038, "name": "channel_profitability_ranking", "section": "M", "formula": "rank channels by net contribution margin.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "aggregator_mix_margin_impact", "num": 1039, "name": "aggregator_mix_margin_impact", "section": "M", "formula": "margin effect of channel mix shift toward aggregators.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "commission_tier_sensitivity", "num": 1040, "name": "commission_tier_sensitivity", "section": "M", "formula": "margin sensitivity to commission-rate changes.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "whatif_price_simulation", "num": 1041, "name": "whatif_price_simulation", "section": "M", "formula": "simulate margin/revenue at a hypothetical new price.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "cost_plus_target_price", "num": 1042, "name": "cost_plus_target_price", "section": "M", "formula": "target price for a chosen food-cost % from recipe cost.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "margin_target_price", "num": 1043, "name": "margin_target_price", "section": "M", "formula": "price required to hit a target gross margin %.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "price_elasticity_estimate", "num": 1044, "name": "price_elasticity_estimate", "section": "M", "formula": "estimate demand elasticity from price/volume history.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "elasticity_aware_price", "num": 1045, "name": "elasticity_aware_price", "section": "M", "formula": "margin-optimal price given estimated elasticity.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "menu_price_optimization", "num": 1046, "name": "menu_price_optimization", "section": "M", "formula": "optimize prices across menu for total margin.", "side_effect": "read", "status": "partial", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "price_point_test", "num": 1047, "name": "price_point_test", "section": "M", "formula": "compare margin/volume outcomes across tested price points.", "side_effect": "read", "status": "ready", "owner": "Margin / Cost / P&L / Pricing / Leakage", "scope": "llm_query", "callable": true}, {"id": "net_sales_trend", "num": 1048, "name": "net_sales_trend", "section": "S", "formula": "daily net-sales time series (revenue minus discount) per tenant/outlet over a window.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "gross_vs_net_bridge", "num": 1049, "name": "gross_vs_net_bridge", "section": "S", "formula": "decompose gross_amount \u2192 discount \u2192 tax \u2192 net revenue as a waterfall.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_per_outlet", "num": 1050, "name": "revenue_per_outlet", "section": "S", "formula": "total and share of net sales by outlet for a period.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_per_day", "num": 1051, "name": "revenue_per_day", "section": "S", "formula": "calendar-day revenue with rolling 7-day average overlay.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_per_hour", "num": 1052, "name": "revenue_per_hour", "section": "S", "formula": "revenue bucketed by hour-of-day from sold_at across the window.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_spike_detector", "num": 1053, "name": "revenue_spike_detector", "section": "S", "formula": "flag days whose revenue exceeds rolling mean + k\u00b7stddev.", "side_effect": "alert", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "scheduled_check", "callable": true}, {"id": "revenue_drop_detector", "num": 1054, "name": "revenue_drop_detector", "section": "S", "formula": "flag days whose revenue falls below rolling mean \u2212 k\u00b7stddev.", "side_effect": "alert", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "scheduled_check", "callable": true}, {"id": "revenue_concentration_hhi", "num": 1055, "name": "revenue_concentration_hhi", "section": "S", "formula": "Herfindahl index of revenue across outlets/items/channels.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_run_rate", "num": 1056, "name": "revenue_run_rate", "section": "S", "formula": "annualized/monthly run-rate projected from trailing N-day average.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_wow_growth", "num": 1057, "name": "revenue_wow_growth", "section": "S", "formula": "week-over-week net-sales growth rate per outlet.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_mom_growth", "num": 1058, "name": "revenue_mom_growth", "section": "S", "formula": "month-over-month net-sales growth rate per outlet.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_yoy_growth", "num": 1059, "name": "revenue_yoy_growth", "section": "S", "formula": "year-over-year growth where prior-year sold_on coverage exists.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "top_revenue_days", "num": 1060, "name": "top_revenue_days", "section": "S", "formula": "rank the N highest-revenue days in the window.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "bottom_revenue_days", "num": 1061, "name": "bottom_revenue_days", "section": "S", "formula": "rank the N lowest-revenue days (excluding closures).", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_variance_vs_baseline", "num": 1062, "name": "revenue_variance_vs_baseline", "section": "S", "formula": "actual vs trailing-baseline revenue with % delta per day.", "side_effect": "alert", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "scheduled_check", "callable": true}, {"id": "revenue_seasonality_index", "num": 1063, "name": "revenue_seasonality_index", "section": "S", "formula": "per-weekday seasonality multipliers from historical means.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_cumulative_mtd", "num": 1064, "name": "revenue_cumulative_mtd", "section": "S", "formula": "month-to-date cumulative revenue vs same point prior month.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_pace_to_target", "num": 1065, "name": "revenue_pace_to_target", "section": "S", "formula": "MTD pace vs a supplied monthly revenue target.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "net_sales_by_item", "num": 1066, "name": "net_sales_by_item", "section": "S", "formula": "net revenue attributed per menu_item_ref, ranked.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_pareto_items", "num": 1067, "name": "revenue_pareto_items", "section": "S", "formula": "items driving 80% of revenue (Pareto cut).", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_momentum", "num": 1068, "name": "revenue_momentum", "section": "S", "formula": "short-vs-long moving-average crossover signal on daily revenue.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "revenue_forecast_naive", "num": 1069, "name": "revenue_forecast_naive", "section": "S", "formula": "next-N-day revenue projection via seasonal-naive baseline.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "hourly_sales_curve", "num": 1070, "name": "hourly_sales_curve", "section": "S", "formula": "normalized qty/revenue curve across the operating day.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "lunch_dinner_split", "num": 1071, "name": "lunch_dinner_split", "section": "S", "formula": "revenue and cover share for lunch vs dinner dayparts.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "peak_hour_identifier", "num": 1072, "name": "peak_hour_identifier", "section": "S", "formula": "identify top revenue/order hours per outlet.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "off_peak_windows", "num": 1073, "name": "off_peak_windows", "section": "S", "formula": "flag sustained low-volume hour ranges as off-peak.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "daypart_revenue_mix", "num": 1074, "name": "daypart_revenue_mix", "section": "S", "formula": "revenue share across breakfast/lunch/snack/dinner/late buckets.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "opening_hour_pattern", "num": 1075, "name": "opening_hour_pattern", "section": "S", "formula": "first-transaction time distribution and early-day ramp.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "closing_hour_pattern", "num": 1076, "name": "closing_hour_pattern", "section": "S", "formula": "last-transaction time distribution and late-day tail.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "weekday_weekend_split", "num": 1077, "name": "weekday_weekend_split", "section": "S", "formula": "revenue/covers weekday vs weekend comparison.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "day_of_week_profile", "num": 1078, "name": "day_of_week_profile", "section": "S", "formula": "average revenue and orders by day-of-week.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "daypart_shift_detection", "num": 1079, "name": "daypart_shift_detection", "section": "S", "formula": "detect shifts in daypart mix vs prior period.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "hourly_heatmap_matrix", "num": 1080, "name": "hourly_heatmap_matrix", "section": "S", "formula": "day-of-week \u00d7 hour revenue/order intensity matrix.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "late_night_demand", "num": 1081, "name": "late_night_demand", "section": "S", "formula": "quantify post-cutoff-hour order volume and revenue.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "peak_hour_concentration", "num": 1082, "name": "peak_hour_concentration", "section": "S", "formula": "share of daily revenue occurring in the single peak hour.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "daypart_item_mix", "num": 1083, "name": "daypart_item_mix", "section": "S", "formula": "best-selling items per daypart for menu/staffing alignment.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "time_to_first_order", "num": 1084, "name": "time_to_first_order", "section": "S", "formula": "lag between opening and first sale per day.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "intraday_slowdown_detector", "num": 1085, "name": "intraday_slowdown_detector", "section": "S", "formula": "flag unexpected mid-day dips vs typical hourly curve.", "side_effect": "alert", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "scheduled_check", "callable": true}, {"id": "cover_count_trend", "num": 1086, "name": "cover_count_trend", "section": "S", "formula": "daily total covers time series per outlet.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "avg_check_per_cover", "num": 1087, "name": "avg_check_per_cover", "section": "S", "formula": "net revenue divided by covers (spend per guest).", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "avg_check_per_order", "num": 1088, "name": "avg_check_per_order", "section": "S", "formula": "net revenue divided by distinct pos_txn_id.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "table_turnover_rate", "num": 1089, "name": "table_turnover_rate", "section": "S", "formula": "orders per table_ref per service period.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "covers_per_hour", "num": 1090, "name": "covers_per_hour", "section": "S", "formula": "throughput of covers by hour for capacity planning.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "seats_vs_covers_utilization", "num": 1091, "name": "seats_vs_covers_utilization", "section": "S", "formula": "covers vs configured seat capacity at peak.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "covers_trend_vs_revenue", "num": 1092, "name": "covers_trend_vs_revenue", "section": "S", "formula": "covers growth vs revenue growth divergence.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "peak_capacity_utilization", "num": 1093, "name": "peak_capacity_utilization", "section": "S", "formula": "max concurrent-order intensity vs capacity ceiling.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "party_size_distribution", "num": 1094, "name": "party_size_distribution", "section": "S", "formula": "covers-per-order distribution (party-size proxy).", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "empty_table_signal", "num": 1095, "name": "empty_table_signal", "section": "S", "formula": "low-turnover tables during peak windows.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "throughput_bottleneck_hour", "num": 1096, "name": "throughput_bottleneck_hour", "section": "S", "formula": "hour where covers saturate relative to revenue.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "dine_in_dwell_proxy", "num": 1097, "name": "dine_in_dwell_proxy", "section": "S", "formula": "gap between first and last line per table as dwell proxy.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "dine_in_vs_delivery_mix", "num": 1098, "name": "dine_in_vs_delivery_mix", "section": "S", "formula": "revenue/order share of dine-in vs delivery.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "channel_revenue_trend", "num": 1099, "name": "channel_revenue_trend", "section": "S", "formula": "net-sales time series split by channel.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "aggregator_dependence", "num": 1100, "name": "aggregator_dependence", "section": "S", "formula": "share of revenue from Zomato+Swiggy vs owned channels.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "channel_concentration_risk", "num": 1101, "name": "channel_concentration_risk", "section": "S", "formula": "HHI/top-channel share as dependence risk score.", "side_effect": "alert", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "scheduled_check", "callable": true}, {"id": "channel_shift_detection", "num": 1102, "name": "channel_shift_detection", "section": "S", "formula": "detect period-over-period migration between channels.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "channel_avg_check", "num": 1103, "name": "channel_avg_check", "section": "S", "formula": "average order value compared across channels.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "zomato_vs_swiggy_split", "num": 1104, "name": "zomato_vs_swiggy_split", "section": "S", "formula": "revenue/order split between the two aggregators.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "channel_item_affinity", "num": 1105, "name": "channel_item_affinity", "section": "S", "formula": "which items over-index on each channel.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "channel_daypart_mix", "num": 1106, "name": "channel_daypart_mix", "section": "S", "formula": "channel share by daypart (delivery skews late, etc.).", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "channel_discount_load", "num": 1107, "name": "channel_discount_load", "section": "S", "formula": "discount rate carried per channel.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "owned_channel_share", "num": 1108, "name": "owned_channel_share", "section": "S", "formula": "direct/dine-in revenue share as margin-quality signal.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "channel_growth_contribution", "num": 1109, "name": "channel_growth_contribution", "section": "S", "formula": "each channel's contribution to total revenue delta.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "new_channel_ramp", "num": 1110, "name": "new_channel_ramp", "section": "S", "formula": "ramp curve for a newly activated channel/outlet.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "channel_take_rate_effective", "num": 1111, "name": "channel_take_rate_effective", "section": "S", "formula": "effective aggregator commission from gross\u2192net gap.", "side_effect": "read", "status": "blocked", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "channel_settlement_reconcile", "num": 1112, "name": "channel_settlement_reconcile", "section": "S", "formula": "payout reconciliation vs recorded channel revenue.", "side_effect": "alert", "status": "blocked", "owner": "Sales / Revenue / Channel / Customer", "scope": "scheduled_check", "callable": true}, {"id": "avg_basket_value", "num": 1113, "name": "avg_basket_value", "section": "S", "formula": "mean net value per order (pos_txn_id).", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "avg_basket_size", "num": 1114, "name": "avg_basket_size", "section": "S", "formula": "mean item count per order.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "items_per_order_distribution", "num": 1115, "name": "items_per_order_distribution", "section": "S", "formula": "histogram of items-per-order.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "attach_rate", "num": 1116, "name": "attach_rate", "section": "S", "formula": "% of orders containing a given add-on/category.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "combo_penetration", "num": 1117, "name": "combo_penetration", "section": "S", "formula": "share of orders including a combo/meal item.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "addon_analysis", "num": 1118, "name": "addon_analysis", "section": "S", "formula": "top add-on items and their attach frequency.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "cross_sell_affinity", "num": 1119, "name": "cross_sell_affinity", "section": "S", "formula": "item pairs frequently co-ordered (market-basket lift).", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "upsell_opportunity", "num": 1120, "name": "upsell_opportunity", "section": "S", "formula": "orders below basket-size norm eligible for upsell.", "side_effect": "read", "status": "ready", "owner": "chatbot/dashboard via MCP gateway", "scope": "llm_query", "callable": true}, {"id": "single_item_order_rate", "num": 1121, "name": "single_item_order_rate", "section": "S", "formula": "share of orders with exactly one item.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "basket_value_trend", "num": 1122, "name": "basket_value_trend", "section": "S", "formula": "average order value over time.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "high_value_order_share", "num": 1123, "name": "high_value_order_share", "section": "S", "formula": "share of orders above a value threshold.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "category_mix_per_basket", "num": 1124, "name": "category_mix_per_basket", "section": "S", "formula": "average category composition within an order.", "side_effect": "read", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "attach_rate_by_channel", "num": 1125, "name": "attach_rate_by_channel", "section": "S", "formula": "add-on attach rate compared across channels.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "basket_anchor_items", "num": 1126, "name": "basket_anchor_items", "section": "S", "formula": "items most present in large baskets (traffic drivers).", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "discount_rate", "num": 1127, "name": "discount_rate", "section": "S", "formula": "total discount as % of gross_amount per outlet/period.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "promo_penetration", "num": 1128, "name": "promo_penetration", "section": "S", "formula": "share of orders carrying any discount.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "discount_driven_vs_organic", "num": 1129, "name": "discount_driven_vs_organic", "section": "S", "formula": "revenue split of discounted vs full-price orders.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "over_discounting_detector", "num": 1130, "name": "over_discounting_detector", "section": "S", "formula": "orders/items whose discount exceeds a threshold band.", "side_effect": "alert", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "scheduled_check", "callable": true}, {"id": "discount_depth_distribution", "num": 1131, "name": "discount_depth_distribution", "section": "S", "formula": "histogram of discount % across orders.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "discount_by_channel", "num": 1132, "name": "discount_by_channel", "section": "S", "formula": "discount load compared across channels.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "discount_by_daypart", "num": 1133, "name": "discount_by_daypart", "section": "S", "formula": "discount concentration by time-of-day.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "discount_by_item", "num": 1134, "name": "discount_by_item", "section": "S", "formula": "items most frequently/deeply discounted.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "coupon_abuse_signal", "num": 1135, "name": "coupon_abuse_signal", "section": "S", "formula": "repeated deep discounts on same item/txn pattern.", "side_effect": "alert", "status": "partial", "owner": "Sales / Revenue / Channel / Customer", "scope": "scheduled_check", "callable": true}, {"id": "margin_erosion_from_discount", "num": 1136, "name": "margin_erosion_from_discount", "section": "S", "formula": "revenue foregone to discounts vs baseline.", "side_effect": "read", "status": "ready", "owner": "Sales / Revenue / Channel / Customer", "scope": "llm_query", "callable": true}, {"id": "series_linear_fit", "num": 1137, "name": "series_linear_fit", "section": "T", "formula": "fit least-squares line to a metric series, return slope, intercept, R\u00b2.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_trend_slope", "num": 1138, "name": "series_trend_slope", "section": "T", "formula": "compute normalized slope (per-period rate of change) of a series.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_trend_direction", "num": 1139, "name": "series_trend_direction", "section": "T", "formula": "classify overall trend as up / down / flat via slope sign and threshold.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_trend_strength", "num": 1140, "name": "series_trend_strength", "section": "T", "formula": "quantify trend strength from R\u00b2 / slope-to-noise ratio.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_trend_significance", "num": 1141, "name": "series_trend_significance", "section": "T", "formula": "test whether a series trend is statistically significant (Mann-Kendall).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_trend_reversal", "num": 1142, "name": "series_trend_reversal", "section": "T", "formula": "detect a change in trend direction (sign flip in fitted slope).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_uptrend_classify", "num": 1143, "name": "series_uptrend_classify", "section": "T", "formula": "flag sustained upward runs meeting min-length/min-slope.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_downtrend_classify", "num": 1144, "name": "series_downtrend_classify", "section": "T", "formula": "flag sustained downward runs meeting min-length/min-slope.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_piecewise_trend", "num": 1145, "name": "series_piecewise_trend", "section": "T", "formula": "segment a series into piecewise-linear trend regions.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_detrend", "num": 1146, "name": "series_detrend", "section": "T", "formula": "remove a fitted trend, return the residual series.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_sma", "num": 1147, "name": "series_sma", "section": "T", "formula": "simple moving average over a configurable window.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_ema", "num": 1148, "name": "series_ema", "section": "T", "formula": "exponential moving average with configurable span/alpha.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_wma", "num": 1149, "name": "series_wma", "section": "T", "formula": "weighted moving average with a supplied weight kernel.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_rolling_median", "num": 1150, "name": "series_rolling_median", "section": "T", "formula": "rolling-median smoother robust to outliers.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_momentum", "num": 1151, "name": "series_momentum", "section": "T", "formula": "momentum as difference over a lookback (value_t \u2212 value_t\u2212k).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_rate_of_change", "num": 1152, "name": "series_rate_of_change", "section": "T", "formula": "percentage rate-of-change over a lookback window.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_acceleration", "num": 1153, "name": "series_acceleration", "section": "T", "formula": "second difference (change in momentum) of a series.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_ma_crossover", "num": 1154, "name": "series_ma_crossover", "section": "T", "formula": "detect fast/slow moving-average crossover events.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_macd", "num": 1155, "name": "series_macd", "section": "T", "formula": "MACD line, signal line, and histogram from two EMAs.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_smoothing_residual", "num": 1156, "name": "series_smoothing_residual", "section": "T", "formula": "residual between raw series and its smoothed version.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_plateau_detect", "num": 1157, "name": "series_plateau_detect", "section": "T", "formula": "detect flat plateau regions (slope \u2248 0 over min length).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_growth_stall", "num": 1158, "name": "series_growth_stall", "section": "T", "formula": "flag transition from growth to flat/negative growth.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_sustained_decline", "num": 1159, "name": "series_sustained_decline", "section": "T", "formula": "detect a persistent decline over a minimum run length.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_flatline_detect", "num": 1160, "name": "series_flatline_detect", "section": "T", "formula": "detect near-constant/zero-variance stretches.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_deceleration", "num": 1161, "name": "series_deceleration", "section": "T", "formula": "detect declining rate-of-change while level still rising.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_stagnation_score", "num": 1162, "name": "series_stagnation_score", "section": "T", "formula": "score how stagnant a series is over a window.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_recovery_detect", "num": 1163, "name": "series_recovery_detect", "section": "T", "formula": "detect recovery after a decline/trough.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_time_since_peak", "num": 1164, "name": "series_time_since_peak", "section": "T", "formula": "periods elapsed since the series' rolling maximum.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_spike_detect", "num": 1165, "name": "series_spike_detect", "section": "T", "formula": "detect sudden positive spikes vs local baseline.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_drop_detect", "num": 1166, "name": "series_drop_detect", "section": "T", "formula": "detect sudden negative drops vs local baseline.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_step_change", "num": 1167, "name": "series_step_change", "section": "T", "formula": "detect abrupt one-off step (level jump) between points.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_level_shift", "num": 1168, "name": "series_level_shift", "section": "T", "formula": "detect sustained level shift (persistent mean change).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_pulse_detect", "num": 1169, "name": "series_pulse_detect", "section": "T", "formula": "detect transient pulse (spike that reverts).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_gap_detect", "num": 1170, "name": "series_gap_detect", "section": "T", "formula": "detect missing/zero gaps interrupting a series.", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "series_local_extrema", "num": 1171, "name": "series_local_extrema", "section": "T", "formula": "locate local maxima and minima (peaks/troughs).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_threshold_cross", "num": 1172, "name": "series_threshold_cross", "section": "T", "formula": "detect crossings above/below a fixed or dynamic threshold.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_changepoint_detect", "num": 1173, "name": "series_changepoint_detect", "section": "T", "formula": "detect change-points in mean/variance (CUSUM/PELT-style).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_regime_shift", "num": 1174, "name": "series_regime_shift", "section": "T", "formula": "segment series into distinct statistical regimes.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_structural_break", "num": 1175, "name": "series_structural_break", "section": "T", "formula": "test for a structural break at known/unknown breakpoint (Chow-style).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_before_after_compare", "num": 1176, "name": "series_before_after_compare", "section": "T", "formula": "compare distribution/mean before vs after a split point.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_cusum", "num": 1177, "name": "series_cusum", "section": "T", "formula": "cumulative-sum chart for detecting small persistent shifts.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_segment_summary", "num": 1178, "name": "series_segment_summary", "section": "T", "formula": "summarize per-segment mean/slope/variance after segmentation.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_breakpoint_rank", "num": 1179, "name": "series_breakpoint_rank", "section": "T", "formula": "rank candidate breakpoints by magnitude/significance.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_dow_seasonality", "num": 1180, "name": "series_dow_seasonality", "section": "T", "formula": "compute day-of-week seasonal profile and strength.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_weekly_seasonality", "num": 1181, "name": "series_weekly_seasonality", "section": "T", "formula": "detect and quantify weekly seasonal cycle.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_monthly_seasonality", "num": 1182, "name": "series_monthly_seasonality", "section": "T", "formula": "detect and quantify monthly/day-of-month seasonal cycle.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_seasonal_decompose", "num": 1183, "name": "series_seasonal_decompose", "section": "T", "formula": "decompose series into trend + seasonal + residual (additive/multiplicative).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_deseasonalize", "num": 1184, "name": "series_deseasonalize", "section": "T", "formula": "remove estimated seasonal component from a series.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_seasonal_index", "num": 1185, "name": "series_seasonal_index", "section": "T", "formula": "compute seasonal index per period (relative to baseline).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_seasonal_strength", "num": 1186, "name": "series_seasonal_strength", "section": "T", "formula": "measure fraction of variance explained by seasonality.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_autocorrelation", "num": 1187, "name": "series_autocorrelation", "section": "T", "formula": "autocorrelation function across lags (detects periodicity).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_dominant_period", "num": 1188, "name": "series_dominant_period", "section": "T", "formula": "estimate dominant cycle length via ACF/periodogram.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_holiday_effect", "num": 1189, "name": "series_holiday_effect", "section": "T", "formula": "estimate effect of flagged calendar events on the series.", "side_effect": "read", "status": "partial", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_zscore_anomaly", "num": 1190, "name": "series_zscore_anomaly", "section": "T", "formula": "flag points exceeding a z-score threshold vs mean/std.", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "series_iqr_anomaly", "num": 1191, "name": "series_iqr_anomaly", "section": "T", "formula": "flag outliers outside Tukey IQR fences.", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "series_mad_anomaly", "num": 1192, "name": "series_mad_anomaly", "section": "T", "formula": "flag outliers via median-absolute-deviation (robust).", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "series_rolling_anomaly", "num": 1193, "name": "series_rolling_anomaly", "section": "T", "formula": "anomaly detection against a rolling-window baseline.", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "series_contextual_anomaly", "num": 1194, "name": "series_contextual_anomaly", "section": "T", "formula": "flag points anomalous within their seasonal context.", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "series_ewma_anomaly", "num": 1195, "name": "series_ewma_anomaly", "section": "T", "formula": "anomaly detection on EWMA-smoothed deviations.", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "series_anomaly_score", "num": 1196, "name": "series_anomaly_score", "section": "T", "formula": "continuous anomaly score per point (0\u20131).", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "series_anomaly_rank", "num": 1197, "name": "series_anomaly_rank", "section": "T", "formula": "rank detected anomalies by severity.", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "matrix_multivariate_outlier", "num": 1198, "name": "matrix_multivariate_outlier", "section": "T", "formula": "detect multivariate outliers across metric columns (Mahalanobis).", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "series_anomaly_persistence", "num": 1199, "name": "series_anomaly_persistence", "section": "T", "formula": "distinguish transient vs persistent anomalies.", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "spc_mean_chart", "num": 1200, "name": "spc_mean_chart", "section": "T", "formula": "X-bar / individuals control chart with center line and limits.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "spc_range_chart", "num": 1201, "name": "spc_range_chart", "section": "T", "formula": "moving-range / R chart for dispersion control.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "spc_control_limit_breach", "num": 1202, "name": "spc_control_limit_breach", "section": "T", "formula": "flag points beyond \u00b1k\u03c3 control limits.", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "spc_western_electric", "num": 1203, "name": "spc_western_electric", "section": "T", "formula": "apply Western Electric zone rules for out-of-control signals.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "spc_run_detect", "num": 1204, "name": "spc_run_detect", "section": "T", "formula": "detect runs of consecutive points on one side of the center line.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "spc_trend_rule", "num": 1205, "name": "spc_trend_rule", "section": "T", "formula": "detect monotonic run (N increasing/decreasing points) rule violation.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "spc_process_capability", "num": 1206, "name": "spc_process_capability", "section": "T", "formula": "compute Cp/Cpk vs specified tolerance limits.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "spc_out_of_control_summary", "num": 1207, "name": "spc_out_of_control_summary", "section": "T", "formula": "summarize all SPC rule violations for a series.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "pair_correlation", "num": 1208, "name": "pair_correlation", "section": "T", "formula": "Pearson/Spearman correlation between two metric series.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "matrix_correlation", "num": 1209, "name": "matrix_correlation", "section": "T", "formula": "full correlation matrix across many metric series.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "pair_lead_lag", "num": 1210, "name": "pair_lead_lag", "section": "T", "formula": "cross-correlation to find optimal lead/lag between two series.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "pair_rolling_correlation", "num": 1211, "name": "pair_rolling_correlation", "section": "T", "formula": "rolling-window correlation over time.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "pair_correlation_break", "num": 1212, "name": "pair_correlation_break", "section": "T", "formula": "detect where a stable correlation breaks down.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "pair_spurious_guard", "num": 1213, "name": "pair_spurious_guard", "section": "T", "formula": "flag likely-spurious correlation (trend-driven / low-N / autocorr).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "infra", "callable": true}, {"id": "pair_granger_lite", "num": 1214, "name": "pair_granger_lite", "section": "T", "formula": "lightweight predictive-precedence test between two series.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "matrix_correlation_cluster", "num": 1215, "name": "matrix_correlation_cluster", "section": "T", "formula": "cluster metrics by correlation similarity.", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "pair_cointegration_lite", "num": 1216, "name": "pair_cointegration_lite", "section": "T", "formula": "test whether two series move together long-run (residual stationarity).", "side_effect": "read", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "llm_query", "callable": true}, {"id": "series_variance", "num": 1217, "name": "series_variance", "section": "T", "formula": "variance/std of a series over a window.", "side_effect": "alert", "status": "ready", "owner": "Time-Series / Anomaly / Statistical Engines", "scope": "scheduled_check", "callable": true}, {"id": "pos_sales_vs_cash_deposit", "num": 1218, "name": "pos_sales_vs_cash_deposit", "section": "C", "formula": "Reconcile POS-recorded cash sales against actual bank/cash deposits per outlet per day.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "payment_mode_mix", "num": 1219, "name": "payment_mode_mix", "section": "C", "formula": "Break down revenue by payment mode (cash/card/UPI/aggregator) per outlet from sales_canonical.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "payment_mode_mix_trend", "num": 1220, "name": "payment_mode_mix_trend", "section": "C", "formula": "Track payment-mode share drift over time to flag sudden cash-share spikes.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "cash_sales_share", "num": 1221, "name": "cash_sales_share", "section": "C", "formula": "Compute cash-collection share of total sales per outlet per day.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "unbanked_cash_estimate", "num": 1222, "name": "unbanked_cash_estimate", "section": "C", "formula": "Estimate cash collected but not yet deposited (cash sales minus deposits).", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "cash_shortage_over", "num": 1223, "name": "cash_shortage_over", "section": "C", "formula": "Detect till shortage/overage vs expected cash from POS.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "till_variance_by_shift", "num": 1224, "name": "till_variance_by_shift", "section": "C", "formula": "Compute per-shift till open/close variance against POS cash.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "settlement_reconciliation", "num": 1225, "name": "settlement_reconciliation", "section": "C", "formula": "Reconcile aggregator/card settlements received vs sales recorded.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "aggregator_payout_lag", "num": 1226, "name": "aggregator_payout_lag", "section": "C", "formula": "Measure days between aggregator sale and settlement receipt.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "card_settlement_gap", "num": 1227, "name": "card_settlement_gap", "section": "C", "formula": "Flag card sales lacking a matching settlement line.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "upi_reconciliation", "num": 1228, "name": "upi_reconciliation", "section": "C", "formula": "Match UPI-tagged POS sales against UPI settlement records.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "payment_status_aging", "num": 1229, "name": "payment_status_aging", "section": "C", "formula": "Age purchases_canonical unpaid/partial invoices by days outstanding.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "unpaid_invoice_exposure", "num": 1230, "name": "unpaid_invoice_exposure", "section": "C", "formula": "Sum outstanding payable exposure by supplier from payment_status.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "paid_vs_invoiced_variance", "num": 1231, "name": "paid_vs_invoiced_variance", "section": "C", "formula": "Compare paid_amount to invoice total per purchase to flag under/overpayment.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "deposit_frequency_compliance", "num": 1232, "name": "deposit_frequency_compliance", "section": "C", "formula": "Check each outlet deposits cash within the mandated banking window.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "large_cash_transaction_flag", "num": 1233, "name": "large_cash_transaction_flag", "section": "C", "formula": "Flag individual POS transactions with abnormally high cash tender.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "round_number_cash_bias", "num": 1234, "name": "round_number_cash_bias", "section": "C", "formula": "Detect over-representation of round-figure cash bills (manipulation signal).", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "zero_cash_day_flag", "num": 1235, "name": "zero_cash_day_flag", "section": "C", "formula": "Flag outlet-days reporting cash sales but zero deposit.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "gst_computation_check", "num": 1236, "name": "gst_computation_check", "section": "C", "formula": "Recompute GST on each sale/purchase from taxable base vs recorded tax.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "tax_collected_vs_remitted", "num": 1237, "name": "tax_collected_vs_remitted", "section": "C", "formula": "Compare output tax collected on sales vs tax remitted in filings.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "input_tax_credit_estimate", "num": 1238, "name": "input_tax_credit_estimate", "section": "C", "formula": "Sum eligible input GST from purchases_canonical for ITC reconciliation.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "net_gst_liability", "num": 1239, "name": "net_gst_liability", "section": "C", "formula": "Estimate net GST payable (output tax minus input credit) per period.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "gstin_validity_check", "num": 1240, "name": "gstin_validity_check", "section": "C", "formula": "Validate supplier GSTIN format and checksum from purchases_canonical.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "missing_gstin_flag", "num": 1241, "name": "missing_gstin_flag", "section": "C", "formula": "Flag purchase invoices lacking a supplier GSTIN.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "hsn_correctness_check", "num": 1242, "name": "hsn_correctness_check", "section": "C", "formula": "Validate HSN/SAC codes against expected food-service ranges.", "side_effect": "read", "status": "partial", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "tax_rate_slab_check", "num": 1243, "name": "tax_rate_slab_check", "section": "C", "formula": "Verify applied GST rate matches the correct slab for the item category.", "side_effect": "read", "status": "partial", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "invoice_series_gap", "num": 1244, "name": "invoice_series_gap", "section": "C", "formula": "Detect missing/broken invoice-number sequences per supplier.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "duplicate_invoice_number", "num": 1245, "name": "duplicate_invoice_number", "section": "C", "formula": "Flag repeated invoice numbers from the same GSTIN.", "side_effect": "read", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "llm_query", "callable": true}, {"id": "e_invoice_compliance", "num": 1246, "name": "e_invoice_compliance", "section": "C", "formula": "Check whether B2B invoices above threshold carry e-invoice/IRN.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "pos_bill_series_gap", "num": 1247, "name": "pos_bill_series_gap", "section": "C", "formula": "Detect gaps in POS bill/txn-id sequences (suppressed sales signal).", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "tax_exempt_anomaly", "num": 1248, "name": "tax_exempt_anomaly", "section": "C", "formula": "Flag sales recording zero tax where tax is expected.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "reverse_charge_flag", "num": 1249, "name": "reverse_charge_flag", "section": "C", "formula": "Flag purchases likely subject to reverse-charge GST.", "side_effect": "alert", "status": "partial", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "cess_applicability_check", "num": 1250, "name": "cess_applicability_check", "section": "C", "formula": "Check whether cess-liable items carry cess.", "side_effect": "read", "status": "partial", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "tax_amount_negative_flag", "num": 1251, "name": "tax_amount_negative_flag", "section": "C", "formula": "Flag negative or implausible tax values in either canonical feed.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "place_of_supply_check", "num": 1252, "name": "place_of_supply_check", "section": "C", "formula": "Verify intra/inter-state tax split (CGST/SGST vs IGST) consistency.", "side_effect": "read", "status": "partial", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "fssai_license_validity", "num": 1253, "name": "fssai_license_validity", "section": "C", "formula": "Check FSSAI license presence and expiry per outlet.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "fssai_number_format_check", "num": 1254, "name": "fssai_number_format_check", "section": "C", "formula": "Validate FSSAI 14-digit license format if present.", "side_effect": "read", "status": "partial", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "license_renewal_alert", "num": 1255, "name": "license_renewal_alert", "section": "C", "formula": "Alert on licenses (FSSAI/trade/GST) nearing expiry.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "shelf_life_expiry_compliance", "num": 1256, "name": "shelf_life_expiry_compliance", "section": "C", "formula": "Flag stock past shelf-life/expiry against batch dates.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "cold_chain_temp_compliance", "num": 1257, "name": "cold_chain_temp_compliance", "section": "C", "formula": "Check cold-storage temperature logs against thresholds.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "temperature_excursion_flag", "num": 1258, "name": "temperature_excursion_flag", "section": "C", "formula": "Flag temperature-log excursions exceeding safe range/duration.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "hygiene_audit_tracking", "num": 1259, "name": "hygiene_audit_tracking", "section": "C", "formula": "Track hygiene-audit scores and overdue audits per outlet.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "hygiene_audit_gap", "num": 1260, "name": "hygiene_audit_gap", "section": "C", "formula": "Flag outlets missing a scheduled hygiene audit.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "batch_recall_traceability", "num": 1261, "name": "batch_recall_traceability", "section": "C", "formula": "Trace a recalled batch through purchases to affected outlets.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "supplier_certification_status", "num": 1262, "name": "supplier_certification_status", "section": "C", "formula": "Track supplier food-safety certification validity.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "pest_control_schedule_compliance", "num": 1263, "name": "pest_control_schedule_compliance", "section": "C", "formula": "Check pest-control service cadence per outlet.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "staff_health_certificate_validity", "num": 1264, "name": "staff_health_certificate_validity", "section": "C", "formula": "Track staff medical/health-card validity.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "allergen_declaration_check", "num": 1265, "name": "allergen_declaration_check", "section": "C", "formula": "Verify allergen declarations exist for menu items.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "labor_cost_percent", "num": 1266, "name": "labor_cost_percent", "section": "C", "formula": "Compute labor cost as a percent of net sales per outlet.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "labor_hours_vs_sales", "num": 1267, "name": "labor_hours_vs_sales", "section": "C", "formula": "Correlate scheduled/worked hours against sales volume.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "labor_per_cover", "num": 1268, "name": "labor_per_cover", "section": "C", "formula": "Compute labor cost per cover/transaction served.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "prep_labor_per_dish", "num": 1269, "name": "prep_labor_per_dish", "section": "C", "formula": "Estimate prep labor cost allocated per dish produced.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "overtime_flag", "num": 1270, "name": "overtime_flag", "section": "C", "formula": "Flag staff/shifts exceeding overtime thresholds.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "overtime_cost_share", "num": 1271, "name": "overtime_cost_share", "section": "C", "formula": "Compute overtime as a share of total labor cost.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "schedule_adherence", "num": 1272, "name": "schedule_adherence", "section": "C", "formula": "Compare scheduled vs actual clock-in/out per shift.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "understaffing_at_peak", "num": 1273, "name": "understaffing_at_peak", "section": "C", "formula": "Detect staffing shortfall against peak transaction hours.", "side_effect": "read", "status": "partial", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "overstaffing_off_peak", "num": 1274, "name": "overstaffing_off_peak", "section": "C", "formula": "Detect excess staffing during low-sales windows.", "side_effect": "read", "status": "partial", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "sales_per_labor_hour", "num": 1275, "name": "sales_per_labor_hour", "section": "C", "formula": "Compute revenue generated per labor hour worked.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "productivity_per_shift", "num": 1276, "name": "productivity_per_shift", "section": "C", "formula": "Rank shift productivity by output per staffed hour.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "absenteeism_rate", "num": 1277, "name": "absenteeism_rate", "section": "C", "formula": "Track no-show/absence rate against roster.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "attrition_flag", "num": 1278, "name": "attrition_flag", "section": "C", "formula": "Flag elevated staff turnover per outlet.", "side_effect": "alert", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "peak_hour_transaction_load", "num": 1279, "name": "peak_hour_transaction_load", "section": "C", "formula": "Derive per-hour transaction load to size staffing needs.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "split_shift_coverage", "num": 1280, "name": "split_shift_coverage", "section": "C", "formula": "Check coverage during meal-peak split shifts.", "side_effect": "read", "status": "blocked", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "task_closure_rate", "num": 1281, "name": "task_closure_rate", "section": "C", "formula": "Compute closed vs total assignments per outlet/owner.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "overdue_assignment_flag", "num": 1282, "name": "overdue_assignment_flag", "section": "C", "formula": "Flag assignments past their due date still open.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "assignment_aging", "num": 1283, "name": "assignment_aging", "section": "C", "formula": "Bucket open assignments by age (days outstanding).", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "escalation_tracker", "num": 1284, "name": "escalation_tracker", "section": "C", "formula": "Track assignments escalated beyond first owner.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "infra", "callable": true}, {"id": "alert_sla_compliance", "num": 1285, "name": "alert_sla_compliance", "section": "C", "formula": "Measure ops_alert/alert_ledger resolution against SLA windows.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "alert_response_time", "num": 1286, "name": "alert_response_time", "section": "C", "formula": "Compute time from alert raised to first action.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "owner_resolution_rate", "num": 1287, "name": "owner_resolution_rate", "section": "C", "formula": "Rank owners by resolution rate and speed.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "workload_balance", "num": 1288, "name": "workload_balance", "section": "C", "formula": "Measure assignment load distribution across the 11-person roster.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "repeat_offender_detection", "num": 1289, "name": "repeat_offender_detection", "section": "C", "formula": "Detect recurring same-type alerts/tasks by outlet or owner.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "unassigned_alert_flag", "num": 1290, "name": "unassigned_alert_flag", "section": "C", "formula": "Flag ops_alerts with no owner assigned.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "person_task_load", "num": 1291, "name": "person_task_load", "section": "C", "formula": "Count active assignments per person from roster linkage.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "role_coverage_gap", "num": 1292, "name": "role_coverage_gap", "section": "C", "formula": "Detect roles/outlets with no accountable owner mapped.", "side_effect": "alert", "status": "partial", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "assignment_reopen_rate", "num": 1293, "name": "assignment_reopen_rate", "section": "C", "formula": "Track assignments reopened after closure.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "sla_breach_trend", "num": 1294, "name": "sla_breach_trend", "section": "C", "formula": "Trend SLA-breach counts over time by category.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "stale_alert_flag", "num": 1295, "name": "stale_alert_flag", "section": "C", "formula": "Flag alert_ledger entries open beyond staleness threshold.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "handoff_gap", "num": 1296, "name": "handoff_gap", "section": "C", "formula": "Detect assignments idle with no owner activity.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "outlet_scorecard", "num": 1297, "name": "outlet_scorecard", "section": "C", "formula": "Composite scorecard per outlet (sales, tax health, task closure, alerts).", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "cross_outlet_benchmark", "num": 1298, "name": "cross_outlet_benchmark", "section": "C", "formula": "Benchmark each outlet against chain median on key metrics.", "side_effect": "read", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "outlier_outlet_detection", "num": 1299, "name": "outlier_outlet_detection", "section": "C", "formula": "Statistically flag outlets deviating from chain norms.", "side_effect": "alert", "status": "ready", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "scheduled_check", "callable": true}, {"id": "manager_performance_index", "num": 1300, "name": "manager_performance_index", "section": "C", "formula": "Score outlet managers on closure, alerts, and reconciliation health.", "side_effect": "read", "status": "partial", "owner": "Cash / Compliance / Labor / People-Ops / Governance", "scope": "llm_query", "callable": true}, {"id": "inventory_count_not_logged_today", "num": 1301, "name": "inventory_count_not_logged_today", "section": "W", "formula": "flag outlets with no inventory count row for today's date.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "opening_stock_not_logged", "num": 1302, "name": "opening_stock_not_logged", "section": "W", "formula": "detect missing opening-stock entry per outlet per day.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "closing_stock_not_logged", "num": 1303, "name": "closing_stock_not_logged", "section": "W", "formula": "detect missing closing-stock entry per outlet per day.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "wastage_not_logged_today", "num": 1304, "name": "wastage_not_logged_today", "section": "W", "formula": "flag zero wastage rows where a wastage log is expected.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "grn_not_entered", "num": 1305, "name": "grn_not_entered", "section": "W", "formula": "purchases delivered but no GRN receipt logged against them.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "sales_not_synced_today", "num": 1306, "name": "sales_not_synced_today", "section": "W", "formula": "outlet with no sales_canonical rows for today vs its usual pattern.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "cash_not_reconciled_today", "num": 1307, "name": "cash_not_reconciled_today", "section": "W", "formula": "no cash-reconciliation entry logged for the outlet's day.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "temperature_not_logged", "num": 1308, "name": "temperature_not_logged", "section": "W", "formula": "missing cold-storage/fryer temperature log entries.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "expected_vs_actual_log_presence", "num": 1309, "name": "expected_vs_actual_log_presence", "section": "W", "formula": "join expected_feed to ingest_run to score which expected logs actually arrived.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "feed_missing_today_by_outlet", "num": 1310, "name": "feed_missing_today_by_outlet", "section": "W", "formula": "matrix of feed \u00d7 outlet flagging any expected feed absent today.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "consecutive_days_missing_feed", "num": 1311, "name": "consecutive_days_missing_feed", "section": "W", "formula": "count run-length of consecutive days a feed has been absent per outlet.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "log_coverage_scorecard_outlet", "num": 1312, "name": "log_coverage_scorecard_outlet", "section": "W", "formula": "% of expected logs present over trailing window, per outlet.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "first_ever_missing_feed", "num": 1313, "name": "first_ever_missing_feed", "section": "W", "formula": "feed that was previously logged but stopped appearing (new gap onset).", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "partial_day_log", "num": 1314, "name": "partial_day_log", "section": "W", "formula": "feed present but row-count far below its historical daily norm.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "weekend_holiday_log_gap", "num": 1315, "name": "weekend_holiday_log_gap", "section": "W", "formula": "distinguish genuine gaps from expected closed-day non-logging.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "never_logged_feed_for_outlet", "num": 1316, "name": "never_logged_feed_for_outlet", "section": "W", "formula": "expected_feed entry that has never once produced an ingest_run.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "stale_feed_last_seen", "num": 1317, "name": "stale_feed_last_seen", "section": "W", "formula": "days since each feed last logged, ranked oldest-first.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "log_completeness_trend", "num": 1318, "name": "log_completeness_trend", "section": "W", "formula": "completeness score direction (improving/degrading) week over week.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "mandatory_feed_absent", "num": 1319, "name": "mandatory_feed_absent", "section": "W", "formula": "subset of missing feeds flagged as compliance-mandatory.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "count_vs_grn_presence_gap", "num": 1320, "name": "count_vs_grn_presence_gap", "section": "W", "formula": "GRN logged but no matching stock count, or vice versa.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "logged_after_cutoff", "num": 1321, "name": "logged_after_cutoff", "section": "W", "formula": "entry ingest time later than the feed's daily cutoff.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "backdated_entry", "num": 1322, "name": "backdated_entry", "section": "W", "formula": "event/business date earlier than entry timestamp beyond tolerance.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "log_lag_event_to_entry", "num": 1323, "name": "log_lag_event_to_entry", "section": "W", "formula": "distribution of lag between event time and logged time per feed.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "end_of_day_dump", "num": 1324, "name": "end_of_day_dump", "section": "W", "formula": "many entries batch-logged within one late window (not throughout day).", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "on_time_logging_streak", "num": 1325, "name": "on_time_logging_streak", "section": "W", "formula": "consecutive days a feed was logged before cutoff, per outlet.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "chronic_late_feed", "num": 1326, "name": "chronic_late_feed", "section": "W", "formula": "feed whose ingest consistently lands after cutoff.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "late_log_by_person", "num": 1327, "name": "late_log_by_person", "section": "W", "formula": "late entries attributed to the responsible person via assignment.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "cutoff_breach_severity", "num": 1328, "name": "cutoff_breach_severity", "section": "W", "formula": "minutes/hours past cutoff, ranked.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "first_log_of_day_time", "num": 1329, "name": "first_log_of_day_time", "section": "W", "formula": "timestamp of the day's first logged entry per outlet (start proxy).", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "last_log_of_day_time", "num": 1330, "name": "last_log_of_day_time", "section": "W", "formula": "timestamp of final entry per outlet (closeout proxy).", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "log_timeliness_scorecard", "num": 1331, "name": "log_timeliness_scorecard", "section": "W", "formula": "on-time % per feed\u00d7outlet over window.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "intraday_log_cadence_gap", "num": 1332, "name": "intraday_log_cadence_gap", "section": "W", "formula": "unusually long silent gap between successive logs.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "same_timestamp_bulk_entry", "num": 1333, "name": "same_timestamp_bulk_entry", "section": "W", "formula": "many rows sharing one identical entry timestamp (bulk backfill).", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "retroactive_edit_flag", "num": 1334, "name": "retroactive_edit_flag", "section": "W", "formula": "entry whose logged date lands N days after its business date.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "implausible_value_flag", "num": 1335, "name": "implausible_value_flag", "section": "W", "formula": "numeric log value outside physically plausible bounds.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "impossible_value_flag", "num": 1336, "name": "impossible_value_flag", "section": "W", "formula": "negative stock, >100% yield, or other logically impossible entries.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "copy_paste_same_value", "num": 1337, "name": "copy_paste_same_value", "section": "W", "formula": "identical value repeated day-over-day beyond chance (lazy logging).", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "round_number_bias", "num": 1338, "name": "round_number_bias", "section": "W", "formula": "over-representation of round numbers signalling estimation not counting.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "missing_mandatory_field", "num": 1339, "name": "missing_mandatory_field", "section": "W", "formula": "required column blank in an otherwise-present log row.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "unit_mismatch_error", "num": 1340, "name": "unit_mismatch_error", "section": "W", "formula": "value/unit inconsistent with the SKU's expected unit.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "zero_where_value_expected", "num": 1341, "name": "zero_where_value_expected", "section": "W", "formula": "zero logged for an item that normally has non-zero.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "blank_where_value_expected", "num": 1342, "name": "blank_where_value_expected", "section": "W", "formula": "null/empty logged where history shows a value.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "contradicts_other_feed", "num": 1343, "name": "contradicts_other_feed", "section": "W", "formula": "count contradicts GRN/sales-derived expectation for same SKU/day.", "side_effect": "read", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "digit_repetition_anomaly", "num": 1344, "name": "digit_repetition_anomaly", "section": "W", "formula": "suspiciously uniform digits (e.g., 111, 5000) indicating fabricated numbers.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "low_variance_series", "num": 1345, "name": "low_variance_series", "section": "W", "formula": "value series with near-zero variance suggesting not actually measured.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "outlier_vs_own_history", "num": 1346, "name": "outlier_vs_own_history", "section": "W", "formula": "single entry far from that SKU/outlet's own distribution.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "duplicate_row_logged", "num": 1347, "name": "duplicate_row_logged", "section": "W", "formula": "same SKU/outlet/day logged more than once.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "benford_deviation_feed", "num": 1348, "name": "benford_deviation_feed", "section": "W", "formula": "first-digit distribution deviating from Benford (fabrication signal).", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "stuck_meter_value", "num": 1349, "name": "stuck_meter_value", "section": "W", "formula": "same value logged unchanged for a long run (sensor/entry stuck).", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "decimal_place_inconsistency", "num": 1350, "name": "decimal_place_inconsistency", "section": "W", "formula": "mixed precision indicating careless entry.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "sign_flip_anomaly", "num": 1351, "name": "sign_flip_anomaly", "section": "W", "formula": "value flips sign implausibly between entries.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "mandatory_field_completeness_rate", "num": 1352, "name": "mandatory_field_completeness_rate", "section": "W", "formula": "% of rows with all required fields filled, per feed.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "data_quality_scorecard_feed", "num": 1353, "name": "data_quality_scorecard_feed", "section": "W", "formula": "composite accuracy/discipline score per feed\u00d7outlet.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "cross_feed_consistency_check", "num": 1354, "name": "cross_feed_consistency_check", "section": "W", "formula": "SKU present in one feed but absent from a coupled feed.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "count_vs_book_unreconciled", "num": 1355, "name": "count_vs_book_unreconciled", "section": "W", "formula": "physical count vs book stock with no reconciliation logged.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "open_variance_aging", "num": 1356, "name": "open_variance_aging", "section": "W", "formula": "days a variance has stayed open without action.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "reconciliation_not_performed", "num": 1357, "name": "reconciliation_not_performed", "section": "W", "formula": "expected reconciliation event with no record for the period.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "unexplained_variance_outstanding", "num": 1358, "name": "unexplained_variance_outstanding", "section": "W", "formula": "variance flagged but no reason/note attached.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "repeat_unreconciled_sku", "num": 1359, "name": "repeat_unreconciled_sku", "section": "W", "formula": "same SKU failing reconciliation across multiple periods.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "reconciliation_closure_rate", "num": 1360, "name": "reconciliation_closure_rate", "section": "W", "formula": "% of opened variances closed within window.", "side_effect": "read", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "variance_write_off_pending", "num": 1361, "name": "variance_write_off_pending", "section": "W", "formula": "variance approved for write-off but not yet posted.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "variance_magnitude_ranked", "num": 1362, "name": "variance_magnitude_ranked", "section": "W", "formula": "outstanding variances ranked by value at risk.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "sales_vs_dispatch_unreconciled", "num": 1363, "name": "sales_vs_dispatch_unreconciled", "section": "W", "formula": "dispatch sheet vs POS sales mismatch not reconciled.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "purchase_vs_grn_unreconciled", "num": 1364, "name": "purchase_vs_grn_unreconciled", "section": "W", "formula": "invoiced purchases vs GRN qty gap unresolved.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "cash_vs_sales_unreconciled", "num": 1365, "name": "cash_vs_sales_unreconciled", "section": "W", "formula": "cash collected vs POS sales gap not reconciled.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "consumption_vs_theoretical_gap", "num": 1366, "name": "consumption_vs_theoretical_gap", "section": "W", "formula": "actual consumption vs recipe-theoretical unreconciled.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "recon_backlog_by_outlet", "num": 1367, "name": "recon_backlog_by_outlet", "section": "W", "formula": "count of open reconciliation items per outlet.", "side_effect": "read", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "recon_aging_buckets", "num": 1368, "name": "recon_aging_buckets", "section": "W", "formula": "open variances bucketed 0-1/2-3/4-7/8+ days.", "side_effect": "read", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "recon_owner_unassigned", "num": 1369, "name": "recon_owner_unassigned", "section": "W", "formula": "open variance with no responsible person assigned.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "recon_reopened_item", "num": 1370, "name": "recon_reopened_item", "section": "W", "formula": "item reconciled then re-diverging (recurring failure).", "side_effect": "read", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "variance_direction_bias", "num": 1371, "name": "variance_direction_bias", "section": "W", "formula": "persistent one-directional variance (systematic shrinkage/over).", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "recon_sla_breach", "num": 1372, "name": "recon_sla_breach", "section": "W", "formula": "reconciliation not closed within its SLA window.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "person_log_compliance_rate", "num": 1373, "name": "person_log_compliance_rate", "section": "W", "formula": "% of a person's assigned logs actually completed on time.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "person_count_variance_accuracy", "num": 1374, "name": "person_count_variance_accuracy", "section": "W", "formula": "reconciliation variance attributed to the counting person.", "side_effect": "alert", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "person_prep_yield", "num": 1375, "name": "person_prep_yield", "section": "W", "formula": "prep output vs input yield per person.", "side_effect": "read", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "chef_yield_shrinkage", "num": 1376, "name": "chef_yield_shrinkage", "section": "W", "formula": "per-chef yield/shrinkage vs recipe-expected.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "cashier_void_rate", "num": 1377, "name": "cashier_void_rate", "section": "W", "formula": "voids per transaction per cashier.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "cashier_discount_rate", "num": 1378, "name": "cashier_discount_rate", "section": "W", "formula": "discount frequency/amount per cashier.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "cashier_refund_rate", "num": 1379, "name": "cashier_refund_rate", "section": "W", "formula": "refunds issued per cashier.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "person_task_closure_rate", "num": 1380, "name": "person_task_closure_rate", "section": "W", "formula": "% of assigned tasks a person closes.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "person_task_sla_breach", "num": 1381, "name": "person_task_sla_breach", "section": "W", "formula": "tasks a person closed past SLA.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "person_error_rework_rate", "num": 1382, "name": "person_error_rework_rate", "section": "W", "formula": "corrections/re-entries attributable to a person.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "punctuality_first_txn_proxy", "num": 1383, "name": "punctuality_first_txn_proxy", "section": "W", "formula": "first-transaction/first-log time as shift-start punctuality proxy.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "worker_scorecard", "num": 1384, "name": "worker_scorecard", "section": "W", "formula": "composite per-person score across compliance/accuracy/timeliness.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "worker_leaderboard", "num": 1385, "name": "worker_leaderboard", "section": "W", "formula": "ranked staff performance across outlets.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "chronic_underperformer_flag", "num": 1386, "name": "chronic_underperformer_flag", "section": "W", "formula": "persistently bottom-quartile person across periods.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "training_gap_signal", "num": 1387, "name": "training_gap_signal", "section": "W", "formula": "recurring error pattern pointing to a specific skill gap.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "handover_completeness_by_person", "num": 1388, "name": "handover_completeness_by_person", "section": "W", "formula": "shift-handover fields completed per person.", "side_effect": "read", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "shift_completeness_by_person", "num": 1389, "name": "shift_completeness_by_person", "section": "W", "formula": "open vs closed shift checklist items per person.", "side_effect": "read", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "workload_fairness", "num": 1390, "name": "workload_fairness", "section": "W", "formula": "distribution of assignments/logs across people (over/under-loaded).", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "person_missing_log_streak", "num": 1391, "name": "person_missing_log_streak", "section": "W", "formula": "consecutive days a person missed an assigned log.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "person_late_log_rate", "num": 1392, "name": "person_late_log_rate", "section": "W", "formula": "share of a person's logs filed after cutoff.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "person_accuracy_trend", "num": 1393, "name": "person_accuracy_trend", "section": "W", "formula": "a person's error/variance rate direction over time.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "unassigned_feed_owner", "num": 1394, "name": "unassigned_feed_owner", "section": "W", "formula": "expected feed with no person in assignment responsible.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "person_coverage_gap", "num": 1395, "name": "person_coverage_gap", "section": "W", "formula": "assigned person absent (no logs) while their feed was due.", "side_effect": "alert", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "cashier_high_cash_handling", "num": 1396, "name": "cashier_high_cash_handling", "section": "W", "formula": "cash-txn share per cashier (shrinkage-risk proxy).", "side_effect": "read", "status": "blocked", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "person_data_quality_contribution", "num": 1397, "name": "person_data_quality_contribution", "section": "W", "formula": "share of quality flags traced to each person.", "side_effect": "read", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "attendance_proxy_from_activity", "num": 1398, "name": "attendance_proxy_from_activity", "section": "W", "formula": "active vs silent staff-days inferred from log/txn activity.", "side_effect": "read", "status": "ready", "owner": "Data-Logging Discipline & Worker Performance", "scope": "llm_query", "callable": true}, {"id": "role_vs_actual_activity_mismatch", "num": 1399, "name": "role_vs_actual_activity_mismatch", "section": "W", "formula": "person's role vs the feeds they actually touch.", "side_effect": "alert", "status": "partial", "owner": "Data-Logging Discipline & Worker Performance", "scope": "scheduled_check", "callable": true}, {"id": "grn_presence_rate", "num": 1400, "name": "grn_presence_rate", "section": "G", "formula": "share of receipts (received_qty>0) that carry a linked GRN document.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "grn_missing_receipts", "num": 1401, "name": "grn_missing_receipts", "section": "G", "formula": "list received lines with no GRN reference.", "side_effect": "alert", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "blind_receiving_detector", "num": 1402, "name": "blind_receiving_detector", "section": "G", "formula": "flag received_qty>0 where no GRN was raised at receipt.", "side_effect": "alert", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "receipt_without_receive_date", "num": 1403, "name": "receipt_without_receive_date", "section": "G", "formula": "received_qty>0 but received_on/delivery_date null.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "grn_vs_po_qty_match", "num": 1404, "name": "grn_vs_po_qty_match", "section": "G", "formula": "GRN received qty vs ordered_qty/confirmed_qty per line.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "grn_vs_po_price_match", "num": 1405, "name": "grn_vs_po_price_match", "section": "G", "formula": "GRN unit price vs PO unit_price per line.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "grn_vs_invoice_qty_match", "num": 1406, "name": "grn_vs_invoice_qty_match", "section": "G", "formula": "GRN received qty vs invoiced qty.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "grn_late_entry_lag", "num": 1407, "name": "grn_late_entry_lag", "section": "G", "formula": "days between received_on and GRN creation timestamp.", "side_effect": "alert", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "partial_grn_detector", "num": 1408, "name": "partial_grn_detector", "section": "G", "formula": "received_qty < confirmed_qty flagged as partial receipt.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "grn_without_po", "num": 1409, "name": "grn_without_po", "section": "G", "formula": "GRN lines with no po_no/external_po_no linkage.", "side_effect": "read", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "grn_over_receipt", "num": 1410, "name": "grn_over_receipt", "section": "G", "formula": "received_qty > ordered_qty (over-delivery accepted).", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "grn_short_receipt", "num": 1411, "name": "grn_short_receipt", "section": "G", "formula": "received_qty < ordered_qty (short-delivery).", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "grn_acceptance_vs_rejection", "num": 1412, "name": "grn_acceptance_vs_rejection", "section": "G", "formula": "accepted vs rejected qty split on receipt.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "receipt_qty_zero_but_delivered", "num": 1413, "name": "receipt_qty_zero_but_delivered", "section": "G", "formula": "delivery_date set yet received_qty=0.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "invoice_presence_rate", "num": 1414, "name": "invoice_presence_rate", "section": "G", "formula": "share of lines carrying invoice_no/seller_invoice_no.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "missing_invoice_no", "num": 1415, "name": "missing_invoice_no", "section": "G", "formula": "list lines with null invoice_no and seller_invoice_no.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "invoice_vs_po_price_variance", "num": 1416, "name": "invoice_vs_po_price_variance", "section": "G", "formula": "unit_price on invoice vs PO price per line.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "invoice_vs_po_qty_variance", "num": 1417, "name": "invoice_vs_po_qty_variance", "section": "G", "formula": "invoiced qty vs ordered/confirmed qty.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "invoice_vs_grn_three_way", "num": 1418, "name": "invoice_vs_grn_three_way", "section": "G", "formula": "invoice qty/price vs GRN received qty/price.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "duplicate_invoice_no", "num": 1419, "name": "duplicate_invoice_no", "section": "G", "formula": "same invoice_no across \u22652 lines/suppliers.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "duplicate_seller_invoice_no", "num": 1420, "name": "duplicate_seller_invoice_no", "section": "G", "formula": "repeated seller_invoice_no per seller_gstin.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "invoice_sequence_gaps", "num": 1421, "name": "invoice_sequence_gaps", "section": "G", "formula": "per-supplier invoice_no numbering gaps.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "invoice_future_date", "num": 1422, "name": "invoice_future_date", "section": "G", "formula": "invoice_date after today (impossible date).", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "invoice_backdated_vs_receipt", "num": 1423, "name": "invoice_backdated_vs_receipt", "section": "G", "formula": "invoice_date earlier than received_on by >N days.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "invoice_date_before_po", "num": 1424, "name": "invoice_date_before_po", "section": "G", "formula": "invoice_date precedes order/PO date.", "side_effect": "read", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "invoice_missing_mandatory_fields", "num": 1425, "name": "invoice_missing_mandatory_fields", "section": "G", "formula": "invoice line missing date/no/amount/GSTIN.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "invoiced_amount_vs_computed", "num": 1426, "name": "invoiced_amount_vs_computed", "section": "G", "formula": "invoiced_amount vs qty\u00d7unit_price+tax.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "invoiced_vs_gross_delta", "num": 1427, "name": "invoiced_vs_gross_delta", "section": "G", "formula": "invoiced_amount vs gross_amount reconciliation.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "einvoice_irn_threshold_flag", "num": 1428, "name": "einvoice_irn_threshold_flag", "section": "G", "formula": "supplier over e-invoice turnover threshold lacking IRN.", "side_effect": "alert", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "irn_presence_check", "num": 1429, "name": "irn_presence_check", "section": "G", "formula": "IRN/QR presence on qualifying invoices.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "credit_note_tracking", "num": 1430, "name": "credit_note_tracking", "section": "G", "formula": "negative/return invoice lines linked to originals.", "side_effect": "read", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "invoice_amount_outlier", "num": 1431, "name": "invoice_amount_outlier", "section": "G", "formula": "invoiced_amount z-score outliers per ingredient.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "payment_status_accuracy", "num": 1432, "name": "payment_status_accuracy", "section": "G", "formula": "payment_status label consistent with paid_amount.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "paid_flag_zero_amount", "num": 1433, "name": "paid_flag_zero_amount", "section": "G", "formula": "status='paid' but paid_amount=0.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "unpaid_aging_buckets", "num": 1434, "name": "unpaid_aging_buckets", "section": "G", "formula": "unpaid balance aged 0-30/31-60/61-90/90+ days.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "partial_payment_tracker", "num": 1435, "name": "partial_payment_tracker", "section": "G", "formula": "0 < paid_amount < invoiced_amount lines.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "overpayment_detector", "num": 1436, "name": "overpayment_detector", "section": "G", "formula": "paid_amount > invoiced_amount/received_amount.", "side_effect": "alert", "status": "ready", "owner": "checks-service/ops-controller (cron)", "scope": "scheduled_check", "callable": true}, {"id": "payment_without_grn", "num": 1437, "name": "payment_without_grn", "section": "G", "formula": "paid_amount>0 with no GRN on the receipt.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "payment_without_invoice", "num": 1438, "name": "payment_without_invoice", "section": "G", "formula": "paid_amount>0 with null invoice_no.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "advance_vs_final_payment", "num": 1439, "name": "advance_vs_final_payment", "section": "G", "formula": "payment made before received_on (advance).", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "duplicate_payment_detector", "num": 1440, "name": "duplicate_payment_detector", "section": "G", "formula": "same supplier+invoice_no paid twice.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "payment_terms_due_date", "num": 1441, "name": "payment_terms_due_date", "section": "G", "formula": "days-to-pay vs contract payment terms.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "overdue_payables", "num": 1442, "name": "overdue_payables", "section": "G", "formula": "unpaid past due-date per payment terms.", "side_effect": "alert", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "held_payment_on_disputed_receipt", "num": 1443, "name": "held_payment_on_disputed_receipt", "section": "G", "formula": "unpaid where short/reject flagged.", "side_effect": "read", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "unpaid_amount_by_supplier", "num": 1444, "name": "unpaid_amount_by_supplier", "section": "G", "formula": "outstanding payable rollup per supplier.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "payment_status_missing", "num": 1445, "name": "payment_status_missing", "section": "G", "formula": "lines with null/blank payment_status.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "three_way_match_rate", "num": 1446, "name": "three_way_match_rate", "section": "G", "formula": "PO\u2194GRN\u2194invoice qty+price match percentage.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "four_way_match_rate", "num": 1447, "name": "four_way_match_rate", "section": "G", "formula": "PO\u2194GRN\u2194invoice\u2194payment full-chain match rate.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "po_invoice_two_way_match", "num": 1448, "name": "po_invoice_two_way_match", "section": "G", "formula": "PO vs invoice match (no-GRN fallback).", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "match_exception_queue", "num": 1449, "name": "match_exception_queue", "section": "G", "formula": "lines failing any leg of the match.", "side_effect": "read", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "qty_tolerance_breach", "num": 1450, "name": "qty_tolerance_breach", "section": "G", "formula": "qty variance beyond tolerance band per line.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "price_tolerance_breach", "num": 1451, "name": "price_tolerance_breach", "section": "G", "formula": "price variance beyond tolerance band per line.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "unmatched_documents", "num": 1452, "name": "unmatched_documents", "section": "G", "formula": "POs, invoices, GRNs with no counterpart.", "side_effect": "read", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "match_completeness_scorecard", "num": 1453, "name": "match_completeness_scorecard", "section": "G", "formula": "per-supplier match-health score.", "side_effect": "read", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "matched_amount_reconciliation", "num": 1454, "name": "matched_amount_reconciliation", "section": "G", "formula": "sum matched vs sum invoiced vs paid.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "document_completeness_score", "num": 1455, "name": "document_completeness_score", "section": "G", "formula": "PO+GRN+invoice+payment present per purchase.", "side_effect": "read", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "missing_document_detector", "num": 1456, "name": "missing_document_detector", "section": "G", "formula": "which of the four docs is absent per line.", "side_effect": "alert", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "open_cycle_aging", "num": 1457, "name": "open_cycle_aging", "section": "G", "formula": "days a purchase cycle stays incomplete/open.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "order_status_consistency", "num": 1458, "name": "order_status_consistency", "section": "G", "formula": "order_status vs delivered/received reality.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "item_status_consistency", "num": 1459, "name": "item_status_consistency", "section": "G", "formula": "item_status vs qty/payment fields.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "status_field_conflict", "num": 1460, "name": "status_field_conflict", "section": "G", "formula": "order_status vs item_status vs payment_status conflicts.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "approval_discipline", "num": 1461, "name": "approval_discipline", "section": "G", "formula": "receipts/payments lacking approval record.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "audit_trail_completeness", "num": 1462, "name": "audit_trail_completeness", "section": "G", "formula": "field_provenance coverage per compliance field.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "exception_queue_master", "num": 1463, "name": "exception_queue_master", "section": "G", "formula": "unified feed of all open compliance exceptions.", "side_effect": "read", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "document_aging_by_supplier", "num": 1464, "name": "document_aging_by_supplier", "section": "G", "formula": "mean cycle-open age per supplier.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "dangling_po_no", "num": 1465, "name": "dangling_po_no", "section": "G", "formula": "po_no/external_po_no with no downstream receipt.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "gst_computed_vs_charged", "num": 1466, "name": "gst_computed_vs_charged", "section": "G", "formula": "cgst+sgst+igst+cess vs tax_rate\u00d7base.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "itc_eligibility_check", "num": 1467, "name": "itc_eligibility_check", "section": "G", "formula": "ITC-claimable = invoice_no + valid GSTIN present.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "gstin_presence", "num": 1468, "name": "gstin_presence", "section": "G", "formula": "lines missing seller_gstin/purchaser_gstin.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "gstin_format_validity", "num": 1469, "name": "gstin_format_validity", "section": "G", "formula": "seller_gstin/purchaser_gstin checksum/format.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "gstin_state_consistency", "num": 1470, "name": "gstin_state_consistency", "section": "G", "formula": "GSTIN state code vs intra/inter-state tax split.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "intra_vs_inter_state_tax", "num": 1471, "name": "intra_vs_inter_state_tax", "section": "G", "formula": "CGST/SGST vs IGST applied per GSTIN states.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "hsn_presence", "num": 1472, "name": "hsn_presence", "section": "G", "formula": "lines missing hsn code.", "side_effect": "read", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "hsn_format_validity", "num": 1473, "name": "hsn_format_validity", "section": "G", "formula": "hsn length/format sanity per line.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "tds_applicability", "num": 1474, "name": "tds_applicability", "section": "G", "formula": "supplier spend crossing TDS threshold.", "side_effect": "read", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "eway_bill_threshold", "num": 1475, "name": "eway_bill_threshold", "section": "G", "formula": "consignment value over e-way-bill limit.", "side_effect": "read", "status": "blocked", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "llm_query", "callable": true}, {"id": "rcm_flag", "num": 1476, "name": "rcm_flag", "section": "G", "formula": "reverse-charge applicability (unregistered/notified supply).", "side_effect": "alert", "status": "partial", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "tax_rate_missing", "num": 1477, "name": "tax_rate_missing", "section": "G", "formula": "lines with null tax_rate but taxable amount.", "side_effect": "alert", "status": "ready", "owner": "Compliance Documents \u2014 GRN / Invoice / Payment", "scope": "scheduled_check", "callable": true}, {"id": "gravy_prep_sheet", "num": 1478, "name": "gravy_prep_sheet", "section": "Y", "formula": "per gravy subrecipe, batch qty needed = \u03a3(dish-demand \u00d7 gravy-BOM qty per dish), from sales_canonical \u00d7 recipe_line.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "gravy_batch_count", "num": 1479, "name": "gravy_batch_count", "section": "Y", "formula": "divide required gravy qty by standard batch size to get number of batches to run.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "gravy_batch_sizing", "num": 1480, "name": "gravy_batch_sizing", "section": "Y", "formula": "recommend batch size/last-batch remainder given vessel/standard-batch constraints.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "gravy_ingredient_requirement", "num": 1481, "name": "gravy_ingredient_requirement", "section": "Y", "formula": "explode gravy BOM (recursive recipe_line) to raw-ingredient totals for the day.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "gravy_dispatch_split_by_outlet", "num": 1482, "name": "gravy_dispatch_split_by_outlet", "section": "Y", "formula": "allocate produced gravy across outlets pro-rata to each outlet's dish demand.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "gravy_dispatch_split_by_wave", "num": 1483, "name": "gravy_dispatch_split_by_wave", "section": "Y", "formula": "split gravy dispatch across the 12:30/18:30 waves by wave-share of demand.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "gravy_yield_plan", "num": 1484, "name": "gravy_yield_plan", "section": "Y", "formula": "expected finished gravy output after wastage_pct/yield_uom shrink per batch.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "gravy_prep_sequence", "num": 1485, "name": "gravy_prep_sequence", "section": "Y", "formula": "order gravies by shared base/hold time into a cook sequence.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "gravy_shelf_life_hold_plan", "num": 1486, "name": "gravy_shelf_life_hold_plan", "section": "Y", "formula": "flag gravy volumes exceeding safe hold window before dispatch.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "gravy_carryover_plan", "num": 1487, "name": "gravy_carryover_plan", "section": "Y", "formula": "net today's gravy need against prior-day carryover on hand.", "side_effect": "read", "status": "blocked", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "gravy_cost_sheet", "num": 1488, "name": "gravy_cost_sheet", "section": "Y", "formula": "cost each gravy batch by pricing exploded raw ingredients from purchases_canonical.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "gravy_prep_vs_actual", "num": 1489, "name": "gravy_prep_vs_actual", "section": "Y", "formula": "planned gravy batch qty vs actual produced (batch history).", "side_effect": "read", "status": "blocked", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "bada_source_plan", "num": 1490, "name": "bada_source_plan", "section": "Y", "formula": "birds/large-cut kg to source to meet bada-cut dish demand (breast\u2192tikka etc).", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "chhota_source_plan", "num": 1491, "name": "chhota_source_plan", "section": "Y", "formula": "small-cut sourcing (wings\u2192lollipop) to meet chhota-cut dish demand.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "cut_break_plan", "num": 1492, "name": "cut_break_plan", "section": "Y", "formula": "whole-bird break-down plan yielding the bada/chhota cut mix demanded.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "marination_prep_sheet", "num": 1493, "name": "marination_prep_sheet", "section": "Y", "formula": "marinade/masala qty per cut type from marination recipe_line \u00d7 cut demand.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "tandoor_batch_plan", "num": 1494, "name": "tandoor_batch_plan", "section": "Y", "formula": "tandoor/fry batch counts for marinated items by capacity per wave.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "chef_prep_sheet_by_station", "num": 1495, "name": "chef_prep_sheet_by_station", "section": "Y", "formula": "group all prep tasks (gravy/cut/marinate) by kitchen station.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "chef_prep_sheet_by_wave", "num": 1496, "name": "chef_prep_sheet_by_wave", "section": "Y", "formula": "prep tasks grouped by 12:30/18:30 dispatch wave deadline.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "station_task_list", "num": 1497, "name": "station_task_list", "section": "Y", "formula": "ordered per-station task list with target qty and uom.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "prep_pick_list", "num": 1498, "name": "prep_pick_list", "section": "Y", "formula": "consolidated raw-ingredient pick list to pull from store for the day.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "prep_timeline_sheet", "num": 1499, "name": "prep_timeline_sheet", "section": "Y", "formula": "back-timed prep schedule so each item is ready before its wave.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "consolidated_order_sheet", "num": 1500, "name": "consolidated_order_sheet", "section": "Y", "formula": "net raw purchase requirement = \u03a3 recipe explosion across all dishes, deduped by SKU.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "supplynote_po_sheet", "num": 1501, "name": "supplynote_po_sheet", "section": "Y", "formula": "format consolidated order as a SupplyNote-ready PO by supplier.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "dispatch_sheet_by_outlet", "num": 1502, "name": "dispatch_sheet_by_outlet", "section": "Y", "formula": "finished-item dispatch quantities per outlet from outlet demand.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "dispatch_sheet_by_wave", "num": 1503, "name": "dispatch_sheet_by_wave", "section": "Y", "formula": "finished-item dispatch quantities per wave.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "replenishment_sheet", "num": 1504, "name": "replenishment_sheet", "section": "Y", "formula": "top-up quantities per outlet vs standing par levels.", "side_effect": "read", "status": "blocked", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "exception_queue_sheet", "num": 1505, "name": "exception_queue_sheet", "section": "Y", "formula": "dishes/gravies with no resolvable BOM or missing cut-map, queued for manual fix.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "sheet_completeness_check", "num": 1506, "name": "sheet_completeness_check", "section": "Y", "formula": "verify every demanded dish has a BOM, cut-map, and cost before a sheet is issued.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "prep_sheet_vs_dispatch_reconcile", "num": 1507, "name": "prep_sheet_vs_dispatch_reconcile", "section": "Y", "formula": "planned prep totals vs dispatch-sheet totals must tie out.", "side_effect": "alert", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "scheduled_check", "callable": true}, {"id": "sheet_version_stamp", "num": 1508, "name": "sheet_version_stamp", "section": "Y", "formula": "stamp each generated sheet with recipe-version + data-as-of + hash for provenance.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "infra", "callable": true}, {"id": "active_recipe_resolver", "num": 1509, "name": "active_recipe_resolver", "section": "Y", "formula": "resolve which recipe/version is in force today per dish/outlet (live recipe over golden).", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "infra", "callable": true}, {"id": "golden_vs_live_recipe_diff", "num": 1510, "name": "golden_vs_live_recipe_diff", "section": "Y", "formula": "line-by-line diff of golden_book BOM vs live recipe_line.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "recipe_version_drift", "num": 1511, "name": "recipe_version_drift", "section": "Y", "formula": "detect version divergence between golden standard and live recipe.", "side_effect": "alert", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "scheduled_check", "callable": true}, {"id": "recipe_change_log", "num": 1512, "name": "recipe_change_log", "section": "Y", "formula": "timeline of recipe_line changes per dish.", "side_effect": "read", "status": "blocked", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "unauthorized_recipe_change_flag", "num": 1513, "name": "unauthorized_recipe_change_flag", "section": "Y", "formula": "flag live recipe edits lacking an approval record.", "side_effect": "alert", "status": "blocked", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "scheduled_check", "callable": true}, {"id": "recipe_approval_status", "num": 1514, "name": "recipe_approval_status", "section": "Y", "formula": "approval state (draft/approved) of the current live recipe.", "side_effect": "read", "status": "blocked", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "recipe_effective_date_check", "num": 1515, "name": "recipe_effective_date_check", "section": "Y", "formula": "confirm the live recipe's effective date covers today.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "recipe_adherence_today", "num": 1516, "name": "recipe_adherence_today", "section": "Y", "formula": "today's implied ingredient usage (sales \u00d7 live BOM) vs golden BOM.", "side_effect": "alert", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "scheduled_check", "callable": true}, {"id": "ingredient_swap_today", "num": 1517, "name": "ingredient_swap_today", "section": "Y", "formula": "components present in live recipe but absent/substituted vs golden.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "portion_drift_today", "num": 1518, "name": "portion_drift_today", "section": "Y", "formula": "per-dish portion/qty in live recipe vs golden portion.", "side_effect": "alert", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "scheduled_check", "callable": true}, {"id": "batch_ratio_drift_today", "num": 1519, "name": "batch_ratio_drift_today", "section": "Y", "formula": "gravy/subrecipe component ratios today vs golden ratios.", "side_effect": "alert", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "scheduled_check", "callable": true}, {"id": "wastage_pct_vs_golden", "num": 1520, "name": "wastage_pct_vs_golden", "section": "Y", "formula": "live recipe_line wastage_pct vs golden expected wastage.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "yield_today_vs_golden", "num": 1521, "name": "yield_today_vs_golden", "section": "Y", "formula": "live yield_uom/portion output vs golden yield.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "recipe_cost_today_vs_golden", "num": 1522, "name": "recipe_cost_today_vs_golden", "section": "Y", "formula": "recipe cost at today's prices vs golden-baked cost.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "ingredient_price_refresh_vs_golden", "num": 1523, "name": "ingredient_price_refresh_vs_golden", "section": "Y", "formula": "per-ingredient purchase price today vs price embedded in golden.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "recipe_margin_today_vs_golden", "num": 1524, "name": "recipe_margin_today_vs_golden", "section": "Y", "formula": "dish margin (menu price \u2212 cost) today vs golden margin.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "recipe_localization_by_outlet", "num": 1525, "name": "recipe_localization_by_outlet", "section": "Y", "formula": "per-outlet recipe variant vs chain golden.", "side_effect": "read", "status": "blocked", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "recipe_consistency_across_outlets", "num": 1526, "name": "recipe_consistency_across_outlets", "section": "Y", "formula": "variance of the same dish's recipe across outlets.", "side_effect": "read", "status": "blocked", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "golden_recipe_staleness", "num": 1527, "name": "golden_recipe_staleness", "section": "Y", "formula": "golden entries not updated within a freshness window.", "side_effect": "alert", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "scheduled_check", "callable": true}, {"id": "recipe_missing_from_golden", "num": 1528, "name": "recipe_missing_from_golden", "section": "Y", "formula": "dish with sales but no golden_book recipe.", "side_effect": "alert", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "scheduled_check", "callable": true}, {"id": "golden_without_sales", "num": 1529, "name": "golden_without_sales", "section": "Y", "formula": "golden recipe that never appears in sales_canonical.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "recipe_coverage_today", "num": 1530, "name": "recipe_coverage_today", "section": "Y", "formula": "% of today's sold dishes with a resolvable live recipe.", "side_effect": "read", "status": "ready", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "recipe_costability_today", "num": 1531, "name": "recipe_costability_today", "section": "Y", "formula": "% of today's dishes whose BOM fully prices out.", "side_effect": "read", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "sop_adherence_today", "num": 1532, "name": "sop_adherence_today", "section": "Y", "formula": "today's prep vs golden_book SOP steps for the dish.", "side_effect": "alert", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "scheduled_check", "callable": true}, {"id": "recipe_component_availability", "num": 1533, "name": "recipe_component_availability", "section": "Y", "formula": "can each dish be made today given on-hand stock of its components.", "side_effect": "read", "status": "blocked", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "llm_query", "callable": true}, {"id": "recipe_gap_vs_menu", "num": 1534, "name": "recipe_gap_vs_menu", "section": "Y", "formula": "menu_item entries with no backing recipe/BOM.", "side_effect": "alert", "status": "partial", "owner": "Prep-Sheets & Recipe Golden\u2194Today", "scope": "scheduled_check", "callable": true}, {"id": "trust_gate_decide", "num": 1535, "name": "trust_gate_decide", "section": "Guardrail", "formula": "combine the guardrail checks into a verdict pass|downgrade|block; fail closed (block on mock/no-evidence)", "side_effect": "gate alert emit", "status": "live", "owner": "guardrail", "scope": "chain", "callable": true}, {"id": "sanity_bound_claimed_value", "num": 1536, "name": "sanity_bound_claimed_value", "section": "Guardrail", "formula": "assert the claimed impact value is finite and within 0..GUARDRAIL_SANE_MAX; else downgrade severity", "side_effect": "none", "status": "live", "owner": "guardrail", "scope": "chain", "callable": true}, {"id": "block_on_mock_data", "num": 1537, "name": "block_on_mock_data", "section": "Guardrail", "formula": "block any candidate whose evidence carries mock/synthetic/fixture markers \u2014 never alert on non-real data", "side_effect": "gate alert emit", "status": "live", "owner": "guardrail", "scope": "chain", "callable": true}, {"id": "caption_provenance_oneline", "num": 1538, "name": "caption_provenance_oneline", "section": "Guardrail", "formula": "stamp a one-line provenance caption (type \u00b7 entity \u00b7 scope \u00b7 value \u00b7 source/tool_run \u00b7 confidence) on every shipped alert", "side_effect": "stamp evidence", "status": "live", "owner": "guardrail", "scope": "chain", "callable": true}, {"id": "state_source_attribution", "num": 1539, "name": "state_source_attribution", "section": "Guardrail", "formula": "require + record the originating source/tool for the insight (this came from feed X via tool Y)", "side_effect": "none", "status": "live", "owner": "guardrail", "scope": "chain", "callable": true}, {"id": "feed_stale_monitor", "num": 1698, "name": "feed_stale_monitor", "section": "SysPerf", "formula": "flag any feed whose canonical watermark is older than its governed feed_sla.max_staleness_days (vs today IST)", "side_effect": "emit ops alert", "status": "live", "owner": "sysperf", "scope": "chain", "callable": true}, {"id": "feed_watermark_status", "num": 1699, "name": "feed_watermark_status", "section": "SysPerf", "formula": "per-feed watermark, days_behind, SLA and stale flag (the sysperf read surface)", "side_effect": "none", "status": "live", "owner": "sysperf", "scope": "chain", "callable": true}, {"id": "etl_silent_fail_monitor", "num": 1700, "name": "etl_silent_fail_monitor", "section": "SysPerf", "formula": "flag an ingest_run etl_fail that had NO successful pull the same day (genuine silent staleness, not a benign retry)", "side_effect": "emit ops alert", "status": "live", "owner": "sysperf", "scope": "chain", "callable": true}, {"id": "sales_totals", "num": 1701, "name": "sales_totals", "section": "Sales-Analytics", "formula": "\u03a3 revenue/orders/qty for a window", "side_effect": "read", "status": "live", "owner": "chatbot", "scope": "chain", "callable": true}, {"id": "sales_by_channel", "num": 1702, "name": "sales_by_channel", "section": "Sales-Analytics", "formula": "revenue by normalized channel (Zomato/Swiggy/Dine-in/Pickup/Uengage)", "side_effect": "read", "status": "live", "owner": "chatbot", "scope": "chain", "callable": true}, {"id": "sales_by_daypart", "num": 1703, "name": "sales_by_daypart", "section": "Sales-Analytics", "formula": "revenue by hour bucket from sold_at", "side_effect": "read", "status": "live", "owner": "chatbot", "scope": "chain", "callable": true}, {"id": "sales_by_weekday", "num": 1704, "name": "sales_by_weekday", "section": "Sales-Analytics", "formula": "revenue by day-of-week", "side_effect": "read", "status": "live", "owner": "chatbot", "scope": "chain", "callable": true}, {"id": "average_order_value", "num": 1705, "name": "average_order_value", "section": "Sales-Analytics", "formula": "revenue / distinct bill", "side_effect": "read", "status": "live", "owner": "chatbot", "scope": "chain", "callable": true}, {"id": "order_count", "num": 1706, "name": "order_count", "section": "Sales-Analytics", "formula": "distinct pos_txn_id in window", "side_effect": "read", "status": "live", "owner": "chatbot", "scope": "chain", "callable": true}, {"id": "revenue_trend", "num": 1707, "name": "revenue_trend", "section": "Sales-Analytics", "formula": "week-on-week revenue delta", "side_effect": "read", "status": "live", "owner": "chatbot", "scope": "chain", "callable": true}, {"id": "sales_by_item", "num": 1710, "name": "sales_by_item", "section": "Sales-Analytics", "formula": "per-item qty+revenue", "side_effect": "read", "status": "blocked", "owner": "chatbot", "scope": "chain", "callable": true}, {"id": "sales_by_category", "num": 1711, "name": "sales_by_category", "section": "Sales-Analytics", "formula": "category rollup", "side_effect": "read", "status": "blocked", "owner": "chatbot", "scope": "chain", "callable": true}, {"id": "basket_affinity", "num": 1712, "name": "basket_affinity", "section": "Sales-Analytics", "formula": "per scope+window: group v_sales_effective lines by pos_txn_id; pair lift = co*orders/(freq_a*freq_b), min support", "side_effect": "read", "status": "live", "owner": "chatbot", "scope": "chain", "callable": true}, {"id": "capability_summary", "num": null, "name": "capability_summary", "section": "meta", "formula": null, "side_effect": null, "status": "live", "owner": "ops", "scope": null, "callable": true}, {"id": "consumption_value_by_outlet", "num": null, "name": "consumption_value_by_outlet", "section": "consumption", "formula": null, "side_effect": null, "status": "live", "owner": "ops", "scope": null, "callable": true}, {"id": "consumption_value_total", "num": null, "name": "consumption_value_total", "section": "consumption", "formula": null, "side_effect": null, "status": "live", "owner": "ops", "scope": null, "callable": true}, {"id": "dish_demand_qty", "num": null, "name": "dish_demand_qty", "section": "sales", "formula": null, "side_effect": null, "status": "live", "owner": "ops", "scope": null, "callable": true}, {"id": "dish_demand_qty_total", "num": null, "name": "dish_demand_qty_total", "section": "sales", "formula": null, "side_effect": null, "status": "live", "owner": "ops", "scope": null, "callable": true}, {"id": "dish_revenue", "num": null, "name": "dish_revenue", "section": null, "formula": null, "side_effect": null, "status": "live", "owner": null, "scope": "answer_layer", "callable": false}, {"id": "food_cost_pct", "num": null, "name": "food_cost_pct", "section": null, "formula": null, "side_effect": null, "status": "live", "owner": null, "scope": "answer_layer", "callable": false}, {"id": "outlet_margin", "num": null, "name": "outlet_margin", "section": null, "formula": null, "side_effect": null, "status": "live", "owner": null, "scope": "answer_layer", "callable": false}, {"id": "outlet_margin_by", "num": null, "name": "outlet_margin_by", "section": null, "formula": null, "side_effect": null, "status": "live", "owner": null, "scope": "answer_layer", "callable": false}, {"id": "provenance_walk", "num": null, "name": "provenance_walk", "section": null, "formula": null, "side_effect": null, "status": "live", "owner": null, "scope": "answer_layer", "callable": false}, {"id": "purchase_by_category", "num": null, "name": "purchase_by_category", "section": null, "formula": null, "side_effect": null, "status": "live", "owner": null, "scope": "answer_layer", "callable": false}, {"id": "revenue_by_outlet", "num": null, "name": "revenue_by_outlet", "section": null, "formula": null, "side_effect": null, "status": "live", "owner": null, "scope": "answer_layer", "callable": false}, {"id": "revenue_total", "num": null, "name": "revenue_total", "section": null, "formula": null, "side_effect": null, "status": "live", "owner": null, "scope": "answer_layer", "callable": false}, {"id": "scan_findings", "num": null, "name": "scan_findings", "section": "scan", "formula": null, "side_effect": null, "status": "live", "owner": "ops", "scope": null, "callable": true}, {"id": "stock_level", "num": null, "name": "stock_level", "section": null, "formula": null, "side_effect": null, "status": "live", "owner": null, "scope": "answer_layer", "callable": false}], "count": 1544, "by_status": {"live": 67, "planned": 15, "partial": 334, "ready": 865, "blocked": 263}}