[ { "widget_id": "wid_open_po_count_001", "type": "kpi", "title": "Open Purchase Orders", "category": "operations", "unit": "count", "scope": [ "chain" ], "description": "Purchase orders that are active and awaiting delivery or confirmation", "drill_down_url": "/purchases/orders", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_open_po_count_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_po_aging_001", "type": "kpi", "title": "PO Aging", "category": "operations", "unit": "count", "scope": [ "chain" ], "description": "Outstanding purchase orders grouped by how long they have been open", "drill_down_url": "/purchases/orders", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_po_aging_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_receipts_this_week_001", "type": "kpi", "title": "Receipts This Week", "category": "operations", "unit": "count", "scope": [ "chain" ], "description": "Deliveries received from suppliers in the last 7 days", "drill_down_url": "/purchases/receipts", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_receipts_this_week_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_stock_ins_today_001", "type": "kpi", "title": "Stock-Ins Today", "category": "operations", "unit": "count", "scope": [ "chain" ], "description": "Items added directly to inventory today without a purchase order", "drill_down_url": "/self-grn", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_stock_ins_today_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_stock_take_pending_001", "type": "kpi", "title": "Pending Stock Takes", "category": "operations", "unit": "count", "scope": [ "chain" ], "description": "Inventory counts that have been started but not yet completed", "drill_down_url": "/inventory/stock-take", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_stock_take_pending_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_shipments_transit_001", "type": "kpi", "title": "Shipments In Transit", "category": "operations", "unit": "count", "scope": [ "chain" ], "description": "Orders that have been dispatched and are on their way to customers", "drill_down_url": "/trade-sales/client-orders", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_shipments_transit_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_appointments_today_001", "type": "kpi", "title": "Appointments Today", "category": "operations", "unit": "count", "scope": [ "retail" ], "description": "All appointments scheduled for today along with their current status", "drill_down_url": "/retail/appointments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_appointments_today_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_no_show_rate_001", "type": "kpi", "title": "No-Show Rate", "category": "operations", "unit": "%", "scope": [ "retail" ], "description": "Share of confirmed appointments where the customer did not show up", "drill_down_url": "/retail/appointments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_no_show_rate_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_staff_utilization_001", "type": "kpi", "title": "Staff Utilization", "category": "operations", "unit": "%", "scope": [ "retail" ], "description": "How much of your team's available time is being filled with bookings", "drill_down_url": "/retail/appointments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_staff_utilization_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_service_mix_001", "type": "kpi", "title": "Service Mix", "category": "operations", "unit": "INR", "scope": [ "retail" ], "description": "Revenue earned across different service categories", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_service_mix_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_low_stock_skus_001", "type": "kpi", "title": "Low Stock SKUs", "category": "inventory", "unit": "count", "scope": [ "chain", "retail" ], "description": "Products running low or completely out of stock and needing replenishment", "drill_down_url": "/inventory/stock-overview", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_low_stock_skus_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_net_stock_value_001", "type": "kpi", "title": "Net Stock Value", "category": "inventory", "unit": "INR", "scope": [ "chain" ], "description": "Total worth of all products currently held in inventory", "drill_down_url": "/inventory/stock-overview", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_net_stock_value_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_adjustments_mtd_001", "type": "kpi", "title": "Adjustments This Month", "category": "inventory", "unit": "count", "scope": [ "chain" ], "description": "Inventory corrections made this month to align stock records with actuals", "drill_down_url": "/inventory/adjustments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_adjustments_mtd_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_invoices_mtd_001", "type": "kpi", "title": "Invoices MTD", "category": "financial", "unit": "count", "scope": [ "company", "chain" ], "description": "Invoices raised to customers or trade partners this month", "drill_down_url": "/trade-sales/invoices", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_invoices_mtd_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_credit_debit_notes_mtd_001", "type": "kpi", "title": "Credit / Debit Notes MTD", "category": "financial", "unit": "INR", "scope": [ "company", "chain" ], "description": "Total value of billing adjustments issued to customers this month", "drill_down_url": "/trade-sales/credit-debit-notes", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_credit_debit_notes_mtd_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_pos_sales_today_001", "type": "kpi", "title": "POS Sales Today", "category": "sales", "unit": "INR", "scope": [ "retail" ], "description": "Total revenue and number of sales completed at the counter today", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_pos_sales_today_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_avg_basket_size_001", "type": "kpi", "title": "Average Basket Size", "category": "sales", "unit": "INR", "scope": [ "retail" ], "description": "Average amount spent per customer visit during the period", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_avg_basket_size_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_avg_ticket_value_001", "type": "kpi", "title": "Average Ticket Value", "category": "sales", "unit": "INR", "scope": [ "retail" ], "description": "Average sale value across all completed transactions in the period", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_avg_ticket_value_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_discount_rate_001", "type": "kpi", "title": "Discount Rate", "category": "sales", "unit": "%", "scope": [ "retail" ], "description": "Proportion of revenue given away as discounts", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_discount_rate_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_refund_rate_001", "type": "kpi", "title": "Refund Rate", "category": "sales", "unit": "%", "scope": [ "retail" ], "description": "Proportion of revenue returned to customers as refunds", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_refund_rate_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_customer_growth_001", "type": "kpi", "title": "Customer Growth", "category": "customers", "unit": "count", "scope": [ "retail" ], "description": "New customers who visited or made a purchase during the period", "drill_down_url": "/retail/customers", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_customer_growth_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_repeat_customer_rate_001", "type": "kpi", "title": "Repeat Customer Rate", "category": "customers", "unit": "%", "scope": [ "retail" ], "description": "Share of customers who have come back for more than one purchase", "drill_down_url": "/retail/customers", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_repeat_customer_rate_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_service_catalogue_coverage_001", "type": "kpi", "title": "Service Catalogue Coverage", "category": "catalogue", "unit": "count", "scope": [ "retail" ], "description": "Active services available for booking and items with incomplete details", "drill_down_url": "/retail/catalogue", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_service_catalogue_coverage_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_spa_bookings_today_001", "type": "kpi", "title": "SPA Bookings Today", "category": "spa_bookings", "unit": "count", "scope": [ "company", "retail" ], "description": "Number of spa appointments and expected revenue for today", "drill_down_url": "/spa/bookings", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_spa_bookings_today_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_spa_bookings_week_001", "type": "kpi", "title": "SPA Bookings This Week", "category": "spa_bookings", "unit": "count", "scope": [ "company", "retail" ], "description": "Number of spa appointments and revenue generated over the last 7 days", "drill_down_url": "/spa/bookings", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_spa_bookings_week_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_spa_occupancy_rate_001", "type": "kpi", "title": "SPA Occupancy Rate", "category": "spa_bookings", "unit": "%", "scope": [ "company", "retail" ], "description": "How full your spa schedule is relative to total available appointment slots", "drill_down_url": "/spa/bookings", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_spa_occupancy_rate_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_spa_cancellation_rate_001", "type": "kpi", "title": "Cancellation Rate", "category": "spa_bookings", "unit": "%", "scope": [ "company", "retail" ], "description": "Share of bookings that were cancelled out of all bookings in the period", "drill_down_url": "/spa/bookings", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_spa_cancellation_rate_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_spa_reschedule_rate_001", "type": "kpi", "title": "Reschedule Rate", "category": "spa_bookings", "unit": "%", "scope": [ "company", "retail" ], "description": "Share of bookings that were moved to a different time in the period", "drill_down_url": "/spa/bookings", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_spa_reschedule_rate_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_spa_top_services_001", "type": "kpi", "title": "Top Services", "category": "spa_bookings", "unit": "INR", "scope": [ "company", "retail" ], "description": "Your 5 most popular services ranked by bookings and revenue earned", "drill_down_url": "/spa/bookings", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_spa_top_services_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_spa_top_staff_001", "type": "kpi", "title": "Top Staff", "category": "spa_bookings", "unit": "count", "scope": [ "company", "retail" ], "description": "Your 5 highest-performing team members by bookings and revenue", "drill_down_url": "/spa/bookings", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_spa_top_staff_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_active_trade_relationships_001", "type": "kpi", "title": "Active Trade Relationships", "category": "trade_network", "unit": "count", "scope": [ "company" ], "description": "Business partnerships that are currently active versus those on hold or expired", "drill_down_url": "/trade-network/relationships", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_active_trade_relationships_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_new_partners_added_001", "type": "kpi", "title": "New Partners Added", "category": "trade_network", "unit": "count", "scope": [ "company" ], "description": "New suppliers or distributors brought on board during the period", "drill_down_url": "/trade-network/partners", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_new_partners_added_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_warehouse_throughput_001", "type": "kpi", "title": "Warehouse Throughput", "category": "trade_network", "unit": "count/day", "scope": [ "company", "chain" ], "description": "Average number of goods received and dispatched per day in the period", "drill_down_url": "/trade-network/warehouses", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_warehouse_throughput_001", "period_window": "mtd", "unit": "count/day" } } }, { "widget_id": "wid_partner_performance_001", "type": "kpi", "title": "Partner Performance", "category": "trade_network", "unit": "%", "scope": [ "company" ], "description": "Top 5 suppliers ranked by how reliably they fulfilled your orders", "drill_down_url": "/trade-network/partners", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_partner_performance_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_chart_sales_revenue_trend_001", "type": "chart", "chart_type": "line", "title": "Revenue Over Time", "category": "sales_charts", "unit": "INR", "scope": [ "retail" ], "description": "How your sales revenue has moved day by day or week by week", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_sales_revenue_trend_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_chart_sales_txn_volume_001", "type": "chart", "chart_type": "line", "title": "Transaction Volume Trend", "category": "sales_charts", "unit": "count", "scope": [ "retail" ], "description": "How the number of sales transactions has changed over the period", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_sales_txn_volume_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_chart_sales_discount_trend_001", "type": "chart", "chart_type": "line", "title": "Discount Trend", "category": "sales_charts", "unit": "%", "scope": [ "retail" ], "description": "How your daily discount levels have trended relative to total sales", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_sales_discount_trend_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_chart_sales_refund_trend_001", "type": "chart", "chart_type": "line", "title": "Refund Trend", "category": "sales_charts", "unit": "%", "scope": [ "retail" ], "description": "How your daily refund levels have trended relative to total sales", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_sales_refund_trend_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_chart_sales_gross_margin_trend_001", "type": "chart", "chart_type": "line", "title": "Gross Margin Trend", "category": "sales_charts", "unit": "INR", "scope": [ "retail" ], "description": "How much profit you are making after costs, tracked day by day", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_sales_gross_margin_trend_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_chart_sales_channel_mix_001", "type": "chart", "chart_type": "bar", "title": "Payment Channel Mix", "category": "sales_charts", "unit": "INR", "scope": [ "retail" ], "description": "Revenue split by how customers paid \u2014 cash, card, wallet, and more", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_sales_channel_mix_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_chart_appt_volume_trend_001", "type": "chart", "chart_type": "line", "title": "Appointment Volume Trend", "category": "operations_charts", "unit": "count", "scope": [ "retail" ], "description": "How the number of appointments has changed from day to day", "drill_down_url": "/retail/appointments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_appt_volume_trend_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_chart_appt_noshow_trend_001", "type": "chart", "chart_type": "line", "title": "No-Show Trend", "category": "operations_charts", "unit": "%", "scope": [ "retail" ], "description": "How your daily no-show rate has changed over the period", "drill_down_url": "/retail/appointments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_appt_noshow_trend_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_chart_appt_cancellation_trend_001", "type": "chart", "chart_type": "line", "title": "Cancellation Trend", "category": "operations_charts", "unit": "%", "scope": [ "retail" ], "description": "How your daily cancellation rate has changed over the period", "drill_down_url": "/retail/appointments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_appt_cancellation_trend_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_chart_staff_utilization_trend_001", "type": "chart", "chart_type": "line", "title": "Staff Utilization Trend", "category": "staff_charts", "unit": "%", "scope": [ "retail" ], "description": "How well your team's time has been filled with bookings over the period", "drill_down_url": "/retail/appointments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_staff_utilization_trend_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_chart_staff_performance_001", "type": "chart", "chart_type": "bar", "title": "Staff Performance", "category": "staff_charts", "unit": "INR", "scope": [ "retail" ], "description": "Revenue and bookings generated by each team member in the period", "drill_down_url": "/retail/appointments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_staff_performance_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_chart_customers_acquisition_trend_001", "type": "chart", "chart_type": "line", "title": "New Customer Acquisition Trend", "category": "customers_charts", "unit": "count", "scope": [ "retail" ], "description": "How many new customers you have been gaining each day", "drill_down_url": "/retail/customers", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_customers_acquisition_trend_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_chart_customers_repeat_vs_new_001", "type": "chart", "chart_type": "stacked_bar", "title": "Repeat vs New Customer Ratio", "category": "customers_charts", "unit": "%", "scope": [ "retail" ], "description": "Daily breakdown of returning customers versus first-time visitors", "drill_down_url": "/retail/customers", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_customers_repeat_vs_new_001", "period_window": "mtd", "unit": "%" } } }, { "widget_id": "wid_chart_catalogue_service_revenue_dist_001", "type": "chart", "chart_type": "bar", "title": "Service Revenue Distribution", "category": "catalogue_charts", "unit": "INR", "scope": [ "retail" ], "description": "How revenue is spread across your different service categories", "drill_down_url": "/retail/catalogue", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_catalogue_service_revenue_dist_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_chart_catalogue_top_services_001", "type": "chart", "chart_type": "bar", "title": "Top Services by Revenue", "category": "catalogue_charts", "unit": "INR", "scope": [ "retail" ], "description": "Your 10 best-selling services ranked by revenue in the period", "drill_down_url": "/retail/catalogue", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_chart_catalogue_top_services_001", "period_window": "mtd", "unit": "INR" } } }, { "widget_id": "wid_tbl_sales_recent_txns_001", "type": "table", "title": "Recent Transactions", "category": "sales_tables", "unit": "count", "scope": [ "retail" ], "description": "Latest completed sales showing customer, amount, and payment status", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_tbl_sales_recent_txns_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_tbl_sales_refunds_cancellations_001", "type": "table", "title": "Refunded & Cancelled Sales", "category": "sales_tables", "unit": "count", "scope": [ "retail" ], "description": "Sales that were refunded or cancelled, showing original and returned amounts", "drill_down_url": "/retail/pos", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_tbl_sales_refunds_cancellations_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_tbl_appt_queue_today_001", "type": "table", "title": "Today's Appointment Queue", "category": "operations_tables", "unit": "count", "scope": [ "retail" ], "description": "All appointments for today sorted by start time, including walk-ins", "drill_down_url": "/retail/appointments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_tbl_appt_queue_today_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_tbl_appt_upcoming_001", "type": "table", "title": "Upcoming Appointments", "category": "operations_tables", "unit": "count", "scope": [ "retail" ], "description": "Confirmed appointments over the next 7 days with service and staff details", "drill_down_url": "/retail/appointments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_tbl_appt_upcoming_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_tbl_customers_top_001", "type": "table", "title": "Top Customers", "category": "customers_tables", "unit": "count", "scope": [ "retail" ], "description": "Your highest-spending customers with total visits and last visit date", "drill_down_url": "/retail/customers", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_tbl_customers_top_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_tbl_catalogue_incomplete_001", "type": "table", "title": "Incomplete Catalogue Items", "category": "catalogue_tables", "unit": "count", "scope": [ "retail" ], "description": "Services that are missing a price, duration, or category and need attention", "drill_down_url": "/retail/catalogue", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_tbl_catalogue_incomplete_001", "period_window": "mtd", "unit": "count" } } }, { "widget_id": "wid_tbl_staff_no_bookings_001", "type": "table", "title": "Staff with No Bookings", "category": "staff_tables", "unit": "count", "scope": [ "retail" ], "description": "Team members who have not had any appointments in the selected period", "drill_down_url": "/retail/appointments", "data_config": { "source": "merchant_kpi_stats", "params": { "widget": "wid_tbl_staff_no_bookings_001", "period_window": "mtd", "unit": "count" } } } ]