{# Inputs: account_points: list[AccountValuePoint] -- selected-period series period_label: str -- e.g. "YTD 2025", "2024", "Lifetime" The lifetime "brush strip" that previously sat below this chart was removed: the Period dropdown in the toolbar already handles the same re-period intent more clearly, and the strip's lifetime account-value compute dominated cold body-load latency. #} {% set has_data = account_points and account_points|length >= 2 %} {% set missing_dates_count = account_points|selectattr('account_value', 'none')|list|length if account_points else 0 %}

Equity curve

{{ period_label }} {% if chart_head_kpis and chart_head_kpis.end_account_value is not none %} ${{ "{:,.0f}".format(chart_head_kpis.end_account_value|float) }} {% if chart_head_kpis.period_growth is not none %} {% set up = chart_head_kpis.period_growth >= 0 %} {{ '+' if up else '−' }}${{ "{:,.0f}".format(chart_head_kpis.period_growth|abs|float) }} {% if chart_head_kpis.period_growth_pct is not none %} ({{ '+' if up else '−' }}{{ "{:.1f}".format((chart_head_kpis.period_growth_pct|abs|float)*100) }}%) {% endif %} {% endif %} {% endif %} {% if benchmark_points %} {% endif %} {% if missing_dates_count > 0 %} ⚠ {{ missing_dates_count }} date{{ 's' if missing_dates_count != 1 else '' }} missing prices {% endif %}
{% if not has_data %}
No deposits yet in {{ period_label }}.
{% else %}
{% endif %}