{# Common HTMX query string for swapping pages/toggle. #} {% set sym_qs %}{{ selected_symbols|join(',') }}{% endset %} {% set _sort = sort|default('market_value') %} {% set _dir = dir|default('desc') %} {% set qs %}period={{ selected_period }}&account={{ selected_account }}&group_options={{ group_options }}&symbols={{ sym_qs|urlencode }}&sort={{ _sort }}&dir={{ _dir }}{% endset %} {% set qs_full %}{{ qs }}&show={{ show }}&page_size={{ page_size }}{% endset %} {# Macro: a sortable column header. Toggles direction when re-clicked, otherwise defaults to descending. Preserves all current state via qs_full. #} {% macro sort_th(key, label, align='', tooltip='') %} {% set cur = (_sort == key) %} {% set new_dir = 'asc' if (cur and _dir == 'desc') else 'desc' %}
| Accounts | {{ sort_th('qty', 'Qty', align='r', tooltip='Sum of remaining quantity across all open lots (equity only; options excluded). Click to sort.') }} {{ sort_th('market_value', 'Mkt $', align='r', tooltip='Qty × latest fetched price. — when no price is available. Click to sort.') }} {{ sort_th('open_cost', 'Open Cost', align='r', tooltip='Sum of adjusted basis across open lots. Click to sort.') }} {{ sort_th('avg_basis', 'Avg Basis', align='r', tooltip='Open Cost ÷ Qty. Per-share book basis after wash-sale adjustments. Click to sort.') }} {{ sort_th('cash_sunk', 'Cash invested / sh', align='r', tooltip="Net cash you've put in for this position, divided by current shares. Includes wash adjustments.") }} {{ sort_th('unrealized', 'Unrealized', align='r', tooltip='Mkt $ − Open Cost on currently open lots. — when no price is available. Click to sort.') }} {% if extra_columns is defined %} {% if 'days_held' in extra_columns %}Days held | {% endif %} {% if 'lt_st_split' in extra_columns %}LT / ST | {% endif %} {% if 'premium_received' in extra_columns %}Prem. | {% endif %} {% if 'origin_event' in extra_columns %}Origin | {% endif %} {% if 'days_to_ltcg' in extra_columns %}→LTCG | {% endif %} {% if 'harvestable' in extra_columns %}Harv. | {% endif %} {% if 'premium_offset' in extra_columns %}Prem. off | {% endif %} {% endif %}||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
{{ r.symbol[0] }}
{{ r.symbol }}
{% if r.open_option_contracts and r.open_option_contracts != 0 %}
{{ "%g"|format(r.open_option_contracts|float) }} opt
{% elif r.qty == 0 %}
closed
{% endif %}
|
{% set _displays = r.account_displays if r.account_displays else r.accounts %} {% if _displays|length <= 1 %} {{ r.account_chip or (_displays[0] if _displays else '—') }} {% else %} {{ r.account_chip or (_displays|join('+')) }} {% endif %} | {{ fmt_quantity(r.qty) }} | {% if r.market_value is none %}— {% else %}${{ "%.2f"|format(r.market_value|float) }}{% endif %} | {% if (r.open_cost is none or r.open_cost == 0) and not r.basis_known and r.qty and r.qty != 0 %} {% include "_basis_missing_chip.html" %} {% else %} {{ fmt_currency(r.open_cost) }} {% endif %} | {% if (r.avg_basis is none or r.avg_basis == 0) and not r.basis_known and r.qty and r.qty != 0 %} {% include "_basis_missing_chip.html" %} {% else %} {{ fmt_currency(r.avg_basis) }} {% endif %} | {{ fmt_currency(r.cash_sunk_per_share) }} |
{% if r.unrealized_pl is none %}
—
{% else %}
{% if r.unrealized_pl < 0 %}-{% else %}+{% endif %}${{ "%.2f"|format(r.unrealized_pl|float|abs) }}
{% if r.open_cost and r.open_cost|float != 0 %}
{% set pct = (r.unrealized_pl|float / r.open_cost|float) * 100 %}
{% if pct < 0 %}-{% else %}+{% endif %}{{ "%.1f"|format(pct|abs) }}%
{% else %}
—
{% endif %}
{% endif %}
|
{% if extra_columns is defined %}
{% if 'days_held' in extra_columns %}{{ r.days_held if r.days_held is not none else '—' }}{% if r.days_held is not none %}d{% endif %} | {% endif %} {% if 'lt_st_split' in extra_columns %}{{ fmt_quantity(r.lt_qty) }}LT / {{ fmt_quantity(r.st_qty) }}ST | {% endif %} {% if 'premium_received' in extra_columns %}${{ "%.0f"|format(r.premium_received|float) }} | {% endif %} {% if 'origin_event' in extra_columns %}— | {% endif %} {% if 'days_to_ltcg' in extra_columns %}— | {% endif %} {% if 'harvestable' in extra_columns %}— | {% endif %} {% if 'premium_offset' in extra_columns %}— | {% endif %} {% endif %}{% with sym=r.symbol, qty=r.qty, account=r.accounts[0] if r.accounts else '', account_id=none %} {% include "_row_actions.html" %} {% endwith %} |
→LTCG, Harv., Prem. off, and Origin are tax-view placeholders — not yet wired to live data, so they show — for every row. Hover any column header for what it will show.
{% endif %} {% endif %}