{{ "%+.2f"|format(portfolio.mtd_pnl * 100) }}%
Abel Portfolio · month to date
{{ "%+.2f"|format(portfolio.today_pnl * 100) }}%
today
{{ "%+.2f"|format(portfolio.total_pnl * 100) }}%
YTD
{{ portfolio.n_active }}/{{ portfolio.n_strats }}
active
Signals
{% for ticker, price in portfolio.prices.items() %} {{ ticker }} ${{ "%.2f"|format(price) }}   {% endfor %}
strategy
pos
today
mtd
ytd
{% for sig in portfolio.signals_active %}
{{ sig.name }}
{{ "%.2f"|format(sig.position) }}
{% if sig.changed %}
NEW
{% endif %}
{{ "%+.2f"|format(sig.today_pnl * 100) }}%
{{ "%+.1f"|format(sig.mtd_pnl * 100) }}%
{{ "%+.1f"|format(sig.ytd_pnl * 100) }}%
{% endfor %} {% if portfolio.signals_flat %}
flat ({{ portfolio.n_flat }})
{% for sig in portfolio.signals_flat %}
{{ sig.name }}
{{ "%+.1f"|format(sig.mtd_pnl * 100) }}%
{{ "%+.1f"|format(sig.ytd_pnl * 100) }}%
{% endfor %} {% endif %}
Recent
updated {{ portfolio.stale_label }}
{% for day in portfolio.recent_days %}
{{ day.date }}
{{ day.n_active }} active
{{ "%+.2f"|format(day.pnl * 100) }}%
{{ day.spark }}
{% endfor %}
{% if portfolio.live_perf %}
Live Performance (since March 2026)
{% for p in portfolio.live_perf %} {% endfor %}
Strategy Days Active Sharpe PnL MaxDD Win
  {{ p.name }} {{ p.days }} {{ p.active_days }} {{ "%.2f"|format(p.sharpe) }} {{ "%+.2f"|format(p.pnl * 100) }}% {% if p.max_dd > 0 %}-{{ "%.1f"|format(p.max_dd * 100) }}%{% else %}0%{% endif %} {{ "%.0f"|format(p.win_rate * 100) }}%
{% endif %}
Ledger
Strategy
Action
Size
PnL
Cum
{% for day in portfolio.ledger %}
{{ day.date }}{% if day.total_pnl != 0 %} {{ "%+.2f"|format(day.total_pnl * 100) }}%{% endif %}
{% for entry in day.entries %}
{{ entry.name }}
{{ entry.action }}
{{ "%.2f"|format(entry.position) if entry.position > 0.01 else "—" }}
{{ "%+.3f"|format(entry.pnl * 100) }}%
{{ "%+.2f"|format(entry.cum_pnl * 100) }}%
{% if entry.pnl > 0 %}
{% elif entry.pnl < 0 %}
{% endif %}
{% endfor %} {% endfor %}
{% for s in strategies %} {% if s.has_data %} {% else %} {% endif %} {% endfor %}
Strategy Asset Sharpe Lo IC Omega MaxDD PnL Health Score
  {{ s.name }} {{ s.asset }}{{ "%.2f"|format(s.metrics.sharpe) }} {% if s.validation and s.validation.metrics.lo_adjusted is defined %}{{ "%.2f"|format(s.validation.metrics.lo_adjusted) }}{% else %}—{% endif %} {% if s.validation and s.validation.metrics.ic is defined %}{{ "%.3f"|format(s.validation.metrics.ic) }}{% else %}—{% endif %} {% if s.validation and s.validation.metrics.omega is defined %}{{ "%.1f"|format(s.validation.metrics.omega) }}{% else %}—{% endif %} {{ "%.1f"|format(s.metrics.max_dd * -100) }}% {{ fmt_pnl_pct(s.metrics.cum_pnl) }} {{ s.health_dots }} {% if s.validation %}{{ s.validation.score }}{% endif %}no data
{% for s in strategies %} {% endfor %}
{% for s in strategies %} {% endfor %}