{{ ucfirst((string) $campaign->campaign_type) }} {{ __('campaign') }}
{{ $campaign->created_at?->format('M j, Y H:i') ?? '—' }}
{{ __('Campaign analytics') }}
{{ __('Full delivery, engagement, recipient, reply, and error performance for this WhatsApp broadcast.') }}
{{ __('ROI score') }}
{{ $header['roi'] }}
{{ __('Audience') }}
{{ $header['audience'] }}
{{ __('Device') }}
{{ $campaign->device_id ? '#' . $campaign->device_id : '—' }}
{{ __('Cost') }}
{{ $header['cost'] }}
{{ __('CPC') }}
{{ $header['cpc'] }}
{{ __('Quality') }}
{{ $header['quality'] }}
{{ __('Total recipients') }}
{{ number_format($campaign->total_recipients) }}
{{ __('Audience size after duplicate cleanup') }}
{{ __('Delivered') }}
{{ number_format($campaign->delivered_count) }}
{{ number_format($deliveredPct, 1) }}%
delivery rate
{{ __('Read') }}
{{ number_format($campaign->read_count) }}
{{ number_format($readPct, 1) }}% of delivered
{{ __('Replies') }}
{{ number_format($campaign->responded_count) }}
{{ number_format($replyPct, 1) }}%
conversation rate
{{ __('Button taps') }}
{{ number_format($campaign->clicked_count) }}
{{ number_format($clickPct, 1) }}% of total
{{ __('Failed') }}
{{ number_format($campaign->failed_count) }}
{{ number_format($failedPct, 1) }}% failure
rate
{{ __('Delivery curve') }}
{{ __('Sent, delivered, read') }}
Sent
Delivered
Read
{{ __('Outcome mix') }}
{{ __('Final status') }}
{{ __('Conversion funnel') }}
{{ __('From send to reply') }}
{{ __('Recipients') }}{{ number_format($funnel['recipients']) }}
{{ __('Delivered') }}{{ number_format($funnel['delivered']) }} /
{{ $funnel['delivered_pct'] }}%
{{ __('Read') }}{{ number_format($funnel['read']) }} /
{{ $funnel['read_pct'] }}%
{{ __('Clicked') }}{{ number_format($funnel['clicked']) }} /
{{ $funnel['clicked_pct'] }}%
{{ __('Replied') }}{{ number_format($funnel['replied']) }} /
{{ $funnel['replied_pct'] }}%
{{ __('Active hours') }}
{{ __('Read heatmap') }}
{{ __('Best segments') }}
{{ __('Top performers') }}
@if (empty($segments))
{{ __('No segment-level data yet. Once recipients reply or read, the breakdown by contact group will appear here.') }}
@else
@foreach ($segments as $i => $seg)
@endforeach
@endif
{{ $seg['name'] }}
{{ $seg['read_pct'] }}% read
{{ number_format($seg['recipients']) }}
recipient{{ $seg['recipients'] === 1 ? '' : 's' }},
{{ number_format($seg['replies']) }}
repl{{ $seg['replies'] === 1 ? 'y' : 'ies' }},
{{ $seg['recipients'] > 0 ? round(($seg['opt_outs'] / $seg['recipients']) * 100, 1) : 0 }}%
opt-out.