{# Inputs: account_points: list[AccountValuePoint] -- new dual-line series source benchmark_points: list[BenchmarkPoint] benchmark_symbol: str period_label: str -- e.g. "YTD 2025", "2024", "Lifetime" #} {% 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

Account value · {{ period_label }} {% 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 %}
Option positions are valued at cost basis on this chart; today's mark-to-market shows on the Holdings panel.
{% endif %}