# Business Analytics ES Queries (v1)

Source of truth:
- Service: `app/Services/Elasticsearch/BusinessAnalyticsElasticsearchService.php`
- API service wrapper: `app/Services/BusinessAnalyticsService.php`
- API controller: `app/Http/Controllers/Analytics/BusinessAnalyticsApiController.php`
- Index: `customer_subscription_v1`

## ES-backed service methods
- `fetchBusinessAnalyticsMrrArr(...)`
- `fetchBusinessAnalyticsRevenueAndActivations(...)`
- `fetchBusinessAnalyticsChurnRate(...)`
- `fetchBusinessAnalyticsRevenueByPackage(...)`
- `fetchBusinessAnalyticsAverageLtv(...)`
- `fetchBusinessAnalyticsMonthlyChurnRates(...)`

## API endpoints
- `GET /admin/business-analytics/widgets/kpi`
- `GET /admin/business-analytics/widgets/charts/mrr-arr-trends`
- `GET /admin/business-analytics/widgets/charts/churn-recovery`
- `GET /admin/business-analytics/widgets/charts/customer-segments`

## v1 mapping notes
- Services support both orders-level and nested subscription-level status/date fields.
- Churn and MRR/ARR are computed from service-level aggregations, not UI-side post processing.
