Reports

Comprehensive insights and analytics

Total Revenue

$data): $is_last = $index === $currency_count - 1; // Get currency code from the data array or use a fallback $currency_code = isset($data['currency_code']) ? $data['currency_code'] : 'USD'; ?>

$0.00

Total Invoices

Active Clients

Average Payment Time

days

Monthly Revenue

Invoice Status

'bg-green-500', 'Unpaid' => 'bg-yellow-500', 'Overdue' => 'bg-red-500', 'Draft' => 'bg-gray-500' ]; if (isset($invoice_status['percentages']) && isset($invoice_status['counts'])) { foreach ($invoice_status['percentages'] as $status => $percentage) { $color = isset($statusColors[ucfirst($status)]) ? $statusColors[ucfirst($status)] : 'bg-gray-500'; $count = isset($invoice_status['counts'][$status]) ? $invoice_status['counts'][$status] : 0; echo '
'; echo '
'; echo '' . esc_html(ucfirst($status)) . ' (' . esc_html($percentage) . '% - ' . esc_html($count) . ')'; echo '
'; } } ?>

Top Clients by Revenue

Client Total Amount Invoices Last Invoice Actions
40, 'default' => 'mp']); } if ($gravatar_url) { echo '' . esc_attr($client['name']) . ''; } ?>
>
$currency_data): ?>
$0.00
invoices View Client
No client data available

Detailed Reports

Total Payments
Total Amount
$data) { if (isset($data['amounts_by_currency'])) { foreach ($data['amounts_by_currency'] as $currency => $currency_data) { if (!isset($total_amounts_by_currency[$currency])) { $total_amounts_by_currency[$currency] = [ 'amount' => 0, 'symbol' => $currency_data['symbol'] ]; } $total_amounts_by_currency[$currency]['amount'] += $currency_data['amount']; } } } } if (!empty($total_amounts_by_currency)): ?> $data): ?>
$0.00
Average Payment
0) { foreach ($payment_report['by_method'] as $method => $data) { if (isset($data['amounts_by_currency'])) { foreach ($data['amounts_by_currency'] as $currency => $currency_data) { if (!isset($average_amounts_by_currency[$currency])) { $average_amounts_by_currency[$currency] = [ 'amount' => 0, 'symbol' => $currency_data['symbol'] ]; } $average_amounts_by_currency[$currency]['amount'] += $currency_data['amount']; } } } // Calculate averages foreach ($average_amounts_by_currency as $currency => $data) { $average_amounts_by_currency[$currency]['amount'] = $data['amount'] / $payment_count; } } if (!empty($average_amounts_by_currency)): ?> $data): ?>
0): ?> No currency data $0.00

Payment Methods Distribution

$data) : ?>
Method Count Amount
$currency_data): ?>
$0.00
No payment method data available

Recent Payments

Date Invoice Amount Method Status Transaction ID Actions
View
No payment records found for the selected period