Reports
Financial and operational analytics
{/* KPI Summary */}
{/* Collection Report */}
Collection by Collector
{collLoading ? :
collection.length === 0 ? No collection data for this period
: (
<>
{collection.map((c, i) => (
{c.collector}
{c.paymentCount} payments
{formatCurrency(c.totalAmount)}
{totalCollected > 0 ? ((c.totalAmount / totalCollected) * 100).toFixed(1) : 0}%
))}
Total
{formatCurrency(totalCollected)}
`₱${(v/1000).toFixed(0)}k`} />
formatCurrency(Number(v))} />
>
)
}
{/* Aging Report */}
Accounts Receivable Aging
{aging.map((a) => (
{a.bucket} days overdue
{a.invoiceCount} invoice{a.invoiceCount !== 1 ? "s" : ""}
0 ? agingRisk[a.bucket] ?? "text-gray-800" : "text-gray-400"}`}>
{formatCurrency(a.totalAmount)}
))}
Total Outstanding
{formatCurrency(totalOutstanding)}
{/* Revenue Trend */}
{revenue.length > 0 && (
Revenue Trend (Monthly)
`₱${(v/1000).toFixed(0)}k`} />
formatCurrency(Number(v))} />
)}
{/* Subscribers by Status + Area */}
Subscribers by Status
{subByStatus.length === 0 ? No subscriber data
: (
{subByStatus.map((_, i) => | )}
{subByStatus.map((s, i) => (
))}
Total{totalSubs}
)}
{subByArea.length > 0 && (
Active Subscribers by Area
{subByArea.map((a) => (
))}
)}
);
}