Connection error
{{ error }}
Supabase Row-Level Security is blocking the anon key. Add a
SELECT policy for the
anon role on the leads table,
or use your service role key for this internal tool.
No deals in the pipeline yet.
Add your first lead using the + New lead button above.
{{ stages[stage].label }}
{{ leadsByStage[stage]?.length || 0 }}
No deals at this stage
{{ lead.lead_name || lead.trading_name }}
P{{ lead.priority }}
{{ lead.next_action }}
Due {{ fmtDate(lead.next_action_due) }}
Acquisition pipeline
{{ sortedLeads.length }} deal{{ sortedLeads.length !== 1 ? 's' : '' }}
P{{ lead.priority }}
{{ lead.lead_name || lead.trading_name }}
{{ stageLabel(lead.stage) }}
{{ (lead.financial_analysis_status || 'not started').replace('_',' ') }}
{{ ent.company_name }}
Rev {{ fmt(ent.reported_revenue) }}
EBITDA {{ fmt(ent.reported_ebitda) }} ({{ marg(ent.reported_ebitda, ent.reported_revenue) }})
Adj {{ fmt(ent.adjusted_ebitda) }} ({{ marg(ent.adjusted_ebitda, ent.reported_revenue) }})
NP {{ fmt(ent.adjusted_net_profit) }} ({{ marg(ent.adjusted_net_profit, ent.reported_revenue) }})
{{ ent.period_label || '' }}
No financials
No entities added
Daily Digest
{{ todayLong }}
{{ activeCount }}
Active deal{{ activeCount !== 1 ? 's' : '' }}
{{ overdueCount }}
Overdue action{{ overdueCount !== 1 ? 's' : '' }}
Overdue actions
{{ l.lead_name || l.trading_name }}
{{ l.next_action }}
{{ fmtDate(l.next_action_due) }}
Pipeline summary
{{ meta.label }}
{{ countByStage(stage) }} deal{{ countByStage(stage) !== 1 ? 's' : '' }}
Pipeline is healthy — no alerts today.