{% set page_group = "admin" %} {% include 'components/head.html' %} {{ vite_styles('syncfusion') }}
{% include 'components/nav-account.html' %}
{% include 'components/alerts.html' %}
{# Header #}
Back to Reports

{{ event.name }}

{% if event.status == 'active' %} Active {% elseif event.status == 'completed' %} Completed {% elseif event.status == 'draft' %} Draft {% else %} {{ event.status|capitalize }} {% endif %} {{ event.event_type|replace('_', ' ')|title }}
{% if canManage %}
Edit Event
{% endif %}
{{ event.start_date|date('M j, Y') }} - {{ event.end_date|date('M j, Y') }} {{ store.name }}
{# Overview Metrics #}
Total Integrations
{{ integrations|length }}
Connected integrations
Active
{% set totalActive = 0 %} {% for type, summary in integrationSummary %} {% set totalActive = totalActive + summary.active %} {% endfor %} {{ totalActive }}
Currently running
Completed
{% set totalCompleted = 0 %} {% for type, summary in integrationSummary %} {% set totalCompleted = totalCompleted + summary.completed %} {% endfor %} {{ totalCompleted }}
Successfully finished
Failed
{% set totalFailed = 0 %} {% for type, summary in integrationSummary %} {% set totalFailed = totalFailed + summary.failed %} {% endfor %} {{ totalFailed }}
Needs attention
{# ========================================== #} {# PERFORMANCE ANALYTICS SECTION #} {# ========================================== #} {% if metrics %} {# Sales Performance #}

Sales Performance

{{ metrics.dateRange.startDate|date('M j') }} - {{ metrics.dateRange.endDate|date('M j, Y') }} ({{ metrics.dateRange.durationDays }} days)
{# Revenue Card #}
Total Revenue
${{ metrics.sales.eventPeriod.revenue|number_format(0) }}
{% if metrics.sales.lift.revenuePercent != 0 %}
{{ metrics.sales.lift.revenuePercent|abs|number_format(1) }}% vs baseline ({{ metrics.sales.lift.revenueAbsolute > 0 ? '+' : '' }}${{ metrics.sales.lift.revenueAbsolute|number_format(0) }})
{% else %}
No change vs baseline
{% endif %}
{# Transactions Card #}
Transactions
{{ metrics.sales.eventPeriod.transactions|number_format(0) }}
{% if metrics.sales.lift.transactionPercent != 0 %}
{{ metrics.sales.lift.transactionPercent|abs|number_format(1) }}% vs baseline
{% endif %}
{# Average Ticket Card #}
Avg Ticket
${{ metrics.sales.eventPeriod.averageTicket|number_format(2) }}
{% if metrics.sales.lift.averageTicketPercent != 0 %}
{{ metrics.sales.lift.averageTicketPercent|abs|number_format(1) }}% vs baseline
{% endif %}
{# Items Sold Card #}
Items Sold
{{ metrics.sales.eventPeriod.itemsSold|number_format(0) }}
During event period
{# Baseline Comparison Row #}
Baseline Period Comparison ({{ metrics.sales.baselinePeriod.startDate|date('M j') }} - {{ metrics.sales.baselinePeriod.endDate|date('M j') }})
Baseline Revenue ${{ metrics.sales.baselinePeriod.revenue|number_format(0) }}
Baseline Transactions {{ metrics.sales.baselinePeriod.transactions|number_format(0) }}
Baseline Avg Ticket ${{ metrics.sales.baselinePeriod.averageTicket|number_format(2) }}
{# Visual Analytics Charts #} {% if metrics and metrics.dailyBreakdown %}

Visual Analytics

{# Revenue Comparison Chart #}

Revenue: Event vs Baseline

Day-by-day comparison showing event lift
{# Baseline vs Event Comparison Chart #}

Event vs Baseline

Performance Comparison
{# Comeback Cash Funnel Chart #} {% if metrics.comebackCash.events > 0 %}

Comeback Cash Funnel

Issued → Redeemed Conversion
{% endif %}
{% endif %} {# Marketing Performance - Only show if there's SMS or signage data #} {% if metrics.marketing.sms.totals.sent > 0 or metrics.marketing.signage.slides > 0 %}

Marketing Performance

{# SMS Triggers #} {% if metrics.marketing.sms.triggers.activeTriggers > 0 %}
SMS Triggers
{{ metrics.marketing.sms.triggers.activeTriggers }}
Active Triggers
{{ metrics.marketing.sms.triggers.sent|number_format(0) }}
Sent
{{ metrics.marketing.sms.triggers.deliveryRate|number_format(1) }}%
Delivery Rate
{% endif %} {# Digital Signage #} {% if metrics.marketing.signage.slides > 0 %}
Digital Signage
{{ metrics.marketing.signage.slides }}
Slides Active
{% if metrics.marketing.signage.displayHours > 0 %}
{{ metrics.marketing.signage.displayHours|number_format(1) }}
Display Hours
{% endif %} {% if metrics.marketing.signage.impressions > 0 %}
{{ metrics.marketing.signage.impressions|number_format(0) }}
Impressions
{% endif %}
{% endif %}
{% endif %} {# Comeback Cash Performance - Only show if there are coupons #} {% if metrics.comebackCash.events > 0 %}

Comeback Cash Performance

{# Coupons Issued #}
Coupons Issued
{{ metrics.comebackCash.issuance.couponsIssued|number_format(0) }}
${{ metrics.comebackCash.issuance.totalValue|number_format(0) }} total value
{# Coupons Redeemed #}
Coupons Redeemed
{{ metrics.comebackCash.redemptions.couponsRedeemed|number_format(0) }}
${{ metrics.comebackCash.redemptions.totalValueRedeemed|number_format(0) }} redeemed
{# Redemption Rate - THE BIG ONE #} {# Revenue Impact / ROI #}
Revenue from Redemptions
${{ metrics.comebackCash.revenueImpact.revenueFromRedemptions|number_format(0) }}
{% if metrics.comebackCash.revenueImpact.roi > 0 %}
{{ metrics.comebackCash.revenueImpact.roi|number_format(1) }}x ROI
{% endif %}
{# Unique Customers #}
{{ metrics.comebackCash.issuance.uniqueCustomers|number_format(0) }} unique customers earned coupons
{{ metrics.comebackCash.redemptions.uniqueRedemptions|number_format(0) }} customers came back to redeem
{% endif %} {# Inventory Performance - Only show if there's backstock data #} {% if metrics.inventory.backstock.events > 0 or metrics.inventory.buying.totalBuys > 0 %}

Inventory Performance

{# Backstock Metrics #} {% if metrics.inventory.backstock.events > 0 %}
Bins Pulled
{{ metrics.inventory.backstock.binsPulled|number_format(0) }}
from {{ metrics.inventory.backstock.events }} backstock event(s)
Items Processed
{{ metrics.inventory.backstock.itemsProcessed|number_format(0) }}
{{ metrics.inventory.backstock.itemsSold|number_format(0) }} sold
{% endif %} {# Buying Metrics #} {% if metrics.inventory.buying.totalBuys > 0 %}
Total Buys
{{ metrics.inventory.buying.totalBuys|number_format(0) }}
{{ metrics.inventory.buying.totalItems|number_format(0) }} items acquired
Total Paid Out
${{ metrics.inventory.buying.totalPaidOut|number_format(0) }}
Avg ${{ metrics.inventory.buying.averageBuyValue|number_format(2) }} per buy
{% endif %}
{% endif %} {# Year-over-Year Comparison #} {% if yoyComparison %}

Year-over-Year Comparison

vs {{ yoyComparison.previousEvent.name }} ({{ yoyComparison.previousEvent.year }})
Metric {{ yoyComparison.previousEvent.year }} {{ yoyComparison.currentEvent.year }} Change
Revenue ${{ yoyComparison.previousEvent.revenue|number_format(0) }} ${{ yoyComparison.currentEvent.revenue|number_format(0) }} {% if yoyComparison.comparison.revenueChange > 0 %} {% elseif yoyComparison.comparison.revenueChange < 0 %} {% else %} {% endif %} {{ yoyComparison.comparison.revenueChange|abs|number_format(1) }}%
Transactions {{ yoyComparison.previousEvent.transactions|number_format(0) }} {{ yoyComparison.currentEvent.transactions|number_format(0) }} {% if yoyComparison.comparison.transactionChange > 0 %} {% elseif yoyComparison.comparison.transactionChange < 0 %} {% endif %} {{ yoyComparison.comparison.transactionChange|abs|number_format(1) }}%
Avg Ticket ${{ yoyComparison.previousEvent.averageTicket|number_format(2) }} ${{ yoyComparison.currentEvent.averageTicket|number_format(2) }} {% if yoyComparison.comparison.averageTicketChange > 0 %} {% elseif yoyComparison.comparison.averageTicketChange < 0 %} {% endif %} {{ yoyComparison.comparison.averageTicketChange|abs|number_format(1) }}%
{% endif %} {% else %} {# No metrics available - show appropriate message based on status #}
{% if event.status == 'draft' %}

Event is still in draft

Performance metrics will appear once this event is scheduled or active. You'll see:

{% elseif event.status == 'scheduled' %}

Event hasn't started yet

Performance metrics will populate once the event period begins on {{ event.start_date|date('M j, Y') }}. After that, you'll see:

{% elseif event.status == 'cancelled' %}

Event was cancelled

No performance data is available for cancelled events.

{% else %}

Loading metrics...

If metrics don't appear, there may be no data for this event period yet. Expected metrics include:

{% endif %} {% if event.status != 'cancelled' %}
  • Sales performance with lift vs baseline
  • Marketing metrics (SMS delivery rates, signage impressions)
  • Comeback Cash redemption rates and ROI
  • Inventory and backstock metrics
{% endif %}
{% endif %} {# Phase Timeline #} {% if event.phases %}

Phase Timeline

{% set currentDate = "now"|date('Y-m-d') %} {% for phase in event.phases %} {% set phaseStatus = 'upcoming' %} {% if phase.end_date < currentDate %} {% set phaseStatus = 'completed' %} {% elseif phase.start_date <= currentDate and phase.end_date >= currentDate %} {% set phaseStatus = 'active' %} {% endif %}
{% if phaseStatus == 'completed' %} {% elseif phaseStatus == 'active' %} {% else %} {% endif %}
{{ phase.name }}
{{ phase.start_date|date('M j') }} - {{ phase.end_date|date('M j, Y') }}
{{ phaseStatus|capitalize }}
{% endfor %}
{% endif %} {# Integration Breakdown #}

Integration Breakdown

{% if integrationSummary|length > 0 %}
{% for type, summary in integrationSummary %}
{% if type == 'comeback_cash' %} {% elseif type == 'sms_campaign' %} {% elseif type == 'digital_sign' %} {% elseif type == 'buy_status' %} {% elseif type == 'task' %} {% else %} {% endif %}
{{ type|replace('_', ' ')|title }}
{{ summary.count }} integration{{ summary.count != 1 ? 's' : '' }}
{{ summary.active }}
Active
{{ summary.completed }}
Done
{{ summary.failed }}
Failed
Completion {{ summary.count > 0 ? ((summary.completed / summary.count) * 100)|round : 0 }}%
{% endfor %}
{% else %}
No Integrations
This event has no integrations configured yet.
{% endif %}
{# Audit Log #}

Audit Log

{% if auditLog|length > 0 %} {% for entry in auditLog %}
{% if entry.action == 'created' %} {% elseif entry.action == 'updated' %} {% elseif entry.action == 'deleted' %} {% elseif entry.action == 'status_changed' %} {% else %} {% endif %}
{{ entry.user_name }} {{ entry.action|replace('_', ' ') }} {{ entry.created_at|date('M j, Y g:i A') }}
{% if entry.details %}
{{ entry.details|json_encode }}
{% endif %}
{% endfor %} {% else %}
No Activity
No audit log entries found for this event.
{% endif %}
{% include 'components/footer.html' %}
{{ vite_scripts('syncfusion') }}