This section covers analytics endpoints, reporting functionality, and role-based dashboard data for organizers, volunteers, and administrators.
The analytics system provides comprehensive insights into event performance, attendee behavior, and operational metrics with role-based access control and real-time data updates.
{
"eventId": 1,
"timeframe": {
"start": "2024-12-01T00:00:00Z",
"end": "2024-12-01T23:59:59Z",
"timezone": "America/New_York"
},
"overview": {
"totalEvents": 1,
"totalRSVPs": 245,
"confirmedAttendees": 230,
"checkedIn": 180,
"noShows": 50,
"walkIns": 5,
"cancellations": 15,
"revenue": 24500.00,
"refunds": 1500.00,
"netRevenue": 23000.00
},
"trends": {
"registrationGrowth": 12.5, // percentage
"checkInRate": 73.5,
"cancellationRate": 6.1,
"revenueGrowth": 8.3
},
"demographics": {
"ageGroups": {
"18-25": 45,
"26-35": 120,
"36-45": 65,
"46+": 15
},
"genderDistribution": {
"male": 52,
"female": 45,
"other": 2,
"not_specified": 1
},
"locations": {
"local": 180, // within 50 miles
"regional": 45, // 50-200 miles
"national": 20 // 200+ miles
}
},
"performance": {
"conversionRate": 65.2, // visitors to registrations
"dropoffRate": 12.8, // registration dropoff
"engagementScore": 8.4,
"satisfactionRating": 4.2
}
}Get high-level dashboard overview for current user.
Headers:
Authorization: Bearer <your-jwt-token>Query Parameters:
timeframe(string): Time period (7d, 30d, 90d, 1y, custom)startDate(string): Start date for custom timeframeendDate(string): End date for custom timeframe
Response (200 OK):
{
"success": true,
"data": {
"user": {
"role": "ORGANIZER",
"permissions": ["view_analytics", "manage_events"]
},
"overview": {
"totalEvents": 12,
"upcomingEvents": 3,
"totalAttendees": 2450,
"revenue": 125000.00,
"averageRating": 4.3
},
"recentActivity": [
{
"type": "NEW_REGISTRATION",
"event": "Tech Conference 2024",
"user": "John Doe",
"timestamp": "2024-01-15T10:30:00Z"
}
],
"alerts": [
{
"type": "LOW_REGISTRATION",
"event": "Workshop 2024",
"message": "Registration below expected",
"severity": "warning"
}
]
}
}Get comprehensive analytics for a specific event.
Headers:
Authorization: Bearer <your-jwt-token>Path Parameters:
eventId(integer): Event ID
Query Parameters:
metrics(array): Specific metrics to include (overview, demographics, timeline, revenue)granularity(string): Data granularity (hour, day, week, month)
Response (200 OK):
{
"success": true,
"data": {
"event": {
"id": 1,
"title": "Tech Conference 2024",
"status": "ACTIVE"
},
"overview": {
"registrations": {
"total": 245,
"confirmed": 230,
"pending": 10,
"declined": 5,
"waitlisted": 25
},
"attendance": {
"expected": 230,
"checkedIn": 180,
"noShows": 50,
"checkInRate": 78.3
},
"revenue": {
"gross": 24500.00,
"fees": 1500.00,
"refunds": 500.00,
"net": 22500.00
}
},
"timeline": {
"registrations": [
{
"date": "2024-10-01",
"newRegistrations": 15,
"cumulativeRegistrations": 15,
"revenue": 1500.00
}
],
"checkIns": [
{
"hour": "08:00",
"count": 15,
"cumulative": 15
}
]
},
"demographics": {
"age": {
"18-25": 18.4, // percentage
"26-35": 49.0,
"36-45": 26.5,
"46+": 6.1
},
"geography": [
{
"city": "New York",
"state": "NY",
"count": 85,
"percentage": 34.7
}
],
"referralSources": [
{
"source": "social_media",
"count": 120,
"percentage": 49.0
}
]
},
"satisfaction": {
"overall": 4.2,
"venue": 4.1,
"content": 4.4,
"organization": 4.3,
"responseRate": 65.2,
"npsScore": 7.8
}
}
}Get analytics across multiple events for comparison.
Headers:
Authorization: Bearer <your-jwt-token>Query Parameters:
eventIds(array): Specific event IDs to comparecategory(string): Filter by event categorytimeframe(string): Time period for comparisonmetrics(array): Metrics to compare
Response (200 OK):
{
"success": true,
"data": {
"comparison": [
{
"eventId": 1,
"title": "Tech Conference 2024",
"registrations": 245,
"attendance": 180,
"revenue": 24500.00,
"rating": 4.2
},
{
"eventId": 2,
"title": "Workshop Series",
"registrations": 120,
"attendance": 95,
"revenue": 9500.00,
"rating": 4.1
}
],
"trends": {
"registrationGrowth": 15.2,
"attendanceGrowth": 8.7,
"revenueGrowth": 22.1
},
"benchmarks": {
"averageCheckInRate": 75.5,
"averageRating": 4.15,
"industryAverage": {
"checkInRate": 72.0,
"rating": 4.0
}
}
}
}Get detailed revenue analytics.
Headers:
Authorization: Bearer <your-jwt-token>Query Parameters:
eventId(integer): Specific event (optional)timeframe(string): Time periodbreakdown(string): Breakdown by (event, ticket_tier, date, payment_method)
Response (200 OK):
{
"success": true,
"data": {
"summary": {
"totalRevenue": 125000.00,
"grossRevenue": 135000.00,
"refunds": 5000.00,
"fees": 5000.00,
"netRevenue": 125000.00,
"averageTicketPrice": 89.50,
"revenuePerEvent": 10416.67
},
"breakdown": [
{
"category": "General Admission",
"revenue": 80000.00,
"ticketsSold": 1000,
"averagePrice": 80.00,
"percentage": 64.0
},
{
"category": "VIP",
"revenue": 45000.00,
"ticketsSold": 225,
"averagePrice": 200.00,
"percentage": 36.0
}
],
"trends": [
{
"month": "2024-01",
"revenue": 12500.00,
"growth": 8.5
}
],
"forecasting": {
"nextMonth": 15000.00,
"confidence": 85.2,
"factors": ["seasonal_trends", "historical_data", "upcoming_events"]
}
}
}Get user engagement analytics.
Headers:
Authorization: Bearer <your-jwt-token>Query Parameters:
eventId(integer): Specific event (optional)userSegment(string): User segment (new, returning, vip)
Response (200 OK):
{
"success": true,
"data": {
"overview": {
"totalUsers": 2450,
"activeUsers": 1890,
"engagementRate": 77.1,
"averageEventsPerUser": 2.3,
"retentionRate": 65.4
},
"segments": [
{
"segment": "new_users",
"count": 450,
"engagementRate": 62.1,
"conversionRate": 45.2
},
{
"segment": "returning_users",
"count": 1200,
"engagementRate": 85.3,
"conversionRate": 78.9
}
],
"activities": [
{
"activity": "event_view",
"count": 15420,
"uniqueUsers": 1890
},
{
"activity": "registration_start",
"count": 3250,
"uniqueUsers": 2100
},
{
"activity": "registration_complete",
"count": 2450,
"uniqueUsers": 2450
}
],
"cohortAnalysis": [
{
"cohort": "2024-01",
"size": 250,
"retention": {
"month1": 85.2,
"month2": 72.4,
"month3": 65.8
}
}
]
}
}Get real-time event metrics during live events.
Headers:
Authorization: Bearer <your-jwt-token>Query Parameters:
eventId(integer): Event IDrefresh(integer): Refresh interval in seconds
Response (200 OK):
{
"success": true,
"data": {
"timestamp": "2024-12-01T10:30:00Z",
"event": {
"id": 1,
"status": "LIVE",
"startTime": "2024-12-01T09:00:00Z"
},
"checkIns": {
"total": 180,
"lastHour": 45,
"last15Minutes": 12,
"rate": 3.2, // per minute
"peak": {
"time": "08:45",
"count": 15
}
},
"capacity": {
"current": 180,
"maximum": 245,
"utilizationRate": 73.5,
"trend": "increasing"
},
"waitlist": {
"active": 25,
"promoted": 5,
"average_wait": "15 minutes"
},
"issues": [
{
"type": "SLOW_CHECKIN",
"location": "Main Entrance",
"severity": "medium",
"message": "Check-in queue building up"
}
]
}
}Create custom analytics report.
Headers:
Authorization: Bearer <your-jwt-token>Request Body:
{
"name": "Monthly Performance Report",
"timeframe": {
"start": "2024-01-01T00:00:00Z",
"end": "2024-01-31T23:59:59Z"
},
"events": [1, 2, 3], // Optional event filter
"metrics": [
"registrations",
"attendance",
"revenue",
"satisfaction"
],
"dimensions": [
"event_category",
"ticket_tier",
"user_segment"
],
"format": "pdf", // pdf, xlsx, csv
"delivery": {
"email": "organizer@example.com",
"schedule": "monthly" // one-time, daily, weekly, monthly
}
}Response (201 Created):
{
"success": true,
"data": {
"reportId": "RPT-001",
"status": "GENERATING",
"estimatedCompletion": "2024-01-15T10:35:00Z",
"downloadUrl": null // Available when complete
},
"message": "Custom report queued for generation"
}Get status and download link for generated report.
Headers:
Authorization: Bearer <your-jwt-token>Path Parameters:
reportId(string): Report ID
Response (200 OK):
{
"success": true,
"data": {
"reportId": "RPT-001",
"name": "Monthly Performance Report",
"status": "COMPLETED",
"generatedAt": "2024-01-15T10:32:00Z",
"downloadUrl": "https://api.eventra.com/downloads/reports/RPT-001.pdf",
"expiresAt": "2024-01-22T10:32:00Z",
"fileSize": "2.5 MB",
"format": "pdf"
}
}Different user roles have access to different analytics levels:
- Own event registrations and attendance
- Basic event performance metrics
- Personal engagement statistics
- Full analytics for owned events
- Revenue and financial metrics
- Attendee demographics and behavior
- Operational metrics (check-ins, etc.)
- Organization-wide analytics
- Cross-event comparisons
- User behavior analytics
- System performance metrics
- Platform-wide analytics
- Tenant/organization comparisons
- System health and usage metrics
- Business intelligence dashboards
Analytics data is updated in real-time using WebSocket connections:
// WebSocket endpoint for real-time analytics
wss://api.eventra.com/analytics/realtime
// Message format
{
"type": "METRIC_UPDATE",
"eventId": 1,
"metric": "check_ins",
"value": 181,
"change": 1,
"timestamp": "2024-12-01T10:30:00Z"
}- Real-time data: 24 hours
- Detailed analytics: 2 years
- Summary analytics: 5 years
- Archived data: Available on request
- CSV: For data analysis
- Excel: For business reporting
- PDF: For presentation reports
- JSON: For API integration
- Charts: PNG/SVG image exports
Key performance indicators tracked:
-
Conversion Metrics
- Registration conversion rate
- Payment completion rate
- Check-in rate
- Engagement rate
-
Financial Metrics
- Revenue per event
- Average ticket price
- Refund rate
- Cost per acquisition
-
Operational Metrics
- Check-in speed
- Queue times
- Staff efficiency
- System uptime
-
Satisfaction Metrics
- Net Promoter Score (NPS)
- Event ratings
- Feedback response rate
- Return attendance rate
| Code | Description |
|---|---|
INSUFFICIENT_DATA |
Not enough data for meaningful analytics |
INVALID_TIMEFRAME |
Timeframe parameters are invalid |
REPORT_NOT_FOUND |
Analytics report does not exist |
REPORT_EXPIRED |
Report download link has expired |
GENERATION_FAILED |
Report generation failed |
INSUFFICIENT_PERMISSIONS |
User lacks permissions for requested analytics |