| Gap | Impact | Solution |
|---|---|---|
| No PDF generation | Can’t send professional invoices | Implement via pdfmake lazy-loaded in api/lib/pdf-invoice.ts |
No mark_invoice_paid action | payment_status never updates to paid | Add action + paid_at, solana_tx_sig columns |
| No invoice email delivery | Invoices only visible in admin UI | Trigger email on finalize_invoice via existing MS Graph |
billing_period NULL on old entries | Invoices may miss pre-035 fees | Migration 038: backfill from DATE_TRUNC('month', created_at) |
| Distribution model not implemented | Settlement statements, rebates don’t exist | Migrations 042–044 + new API actions |
Gaps vs. Industry Best Practices