Analytics
Detailed analytics available to admin users through AnalyticsService.
Sales Analytics
Daily Sales
Fetched from the analytics_daily_sales view:
struct DailySales: Codable, Identifiable {
let date: String
let orderCount: Int
let subtotalCents: Int
let taxCents: Int
let tipCents: Int
let totalCents: Int
let discountCents: Int
let avgOrderCents: Int
}Sales Summary
Computed from raw orders data:
struct SalesSummary {
let orderCount: Int
let totalRevenueCents: Int
let totalTipsCents: Int
let totalTaxCents: Int
let avgOrderValueCents: Int
var totalRevenueDollars: Double // Computed
var avgOrderValueDollars: Double // Computed
var totalTipsDollars: Double // Computed
}Hourly Distribution
Shows order volume and revenue by hour of day from analytics_hourly_distribution:
struct HourlyDistribution: Codable, Identifiable {
let hour: Int // 0-23
let orderCount: Int
let totalCents: Int
var hourLabel: String // e.g., "7AM", "2PM"
}Useful for identifying peak hours and staffing needs.
Top Items
Best-selling menu items from analytics_top_items:
struct TopItem: Codable, Identifiable {
let name: String
let menuItemId: String?
let totalQuantity: Int
let totalRevenueCents: Int
let orderCount: Int
var totalRevenueDollars: Double // Computed
}Popular Modifiers
Most-used modifiers from analytics_popular_modifiers:
struct PopularModifier: Codable, Identifiable {
let name: String
let usageCount: Int
let totalAdjustmentCents: Int
}Order Status Breakdown
Current order status distribution from analytics_order_status:
struct OrderStatusStats: Codable, Identifiable {
let status: String
let count: Int // All time
let todayCount: Int // Today
let weekCount: Int // This week
}Available Methods
| Method | Returns | Parameters |
|---|---|---|
getDailySales(days:) | [DailySales] | Number of days |
getSalesSummary(days:) | SalesSummary | Number of days |
getHourlyDistribution() | [HourlyDistribution] | None |
getTopItems(limit:) | [TopItem] | Max items (default 10) |
getPopularModifiers(limit:) | [PopularModifier] | Max items (default 10) |
getOrderStatusBreakdown() | [OrderStatusStats] | None |
getEmployeePerformance() | [EmployeePerformance] | None |
getLoyaltyTierDistribution() | [LoyaltyTierStats] | None |
getStarTransactionsSummary(days:) | StarTransactionsSummary | Number of days |
getNewCustomers(days:) | Int | Number of days |
getTotalCustomers() | Int | None |