{% extends "base.html" %} {% load static i18n %} {% block extra_head %} {% endblock %} {% block title %}Invest Dashboard{% endblock %} {% block content %}

{{ fy_label }} Snapshot

Total Value

{% if overview.this_week_total is not None %}

${{ overview.this_week_total|floatformat:0 }}

{% else %}

{% endif %}

Across {{ overview.portfolio_count }} portfolio{{ overview.portfolio_count|pluralize }}

Net Contributions

${{ net_contributions|floatformat:0 }}

External deposits minus withdrawals

Investment Gain

{% if performance.cash_adjusted_gain >= 0 %}+{% endif %}${{ performance.cash_adjusted_gain|floatformat:0 }}

Cash-flow adjusted

Top 5 Concentration

{% widthratio risk.top_5_weight 1 100 %}%

Risk: {{ risk.concentration_level }}

This Week

{% if overview.week_gain is not None %}

{% if overview.week_gain >= 0 %}+{% endif %}${{ overview.week_gain|floatformat:0 }}

{% if overview.week_gain >= 0 %}+{% endif %}{{ overview.week_change_pct|floatformat:2 }}% vs last snapshot

{% else %}

No prior snapshot

{% endif %}

Money Weighted Return

{% if performance.money_weighted_return is not None %}

{% widthratio performance.money_weighted_return 1 100 %}%

{% else %}

{% endif %}

IRR based on cash flows

Last Snapshot

{% if overview.this_week_date %}

{{ overview.this_week_date|date:"M j" }}

{{ overview.this_week_date|date:"l, Y" }}

{% else %}

No snapshots yet

{% endif %}

Same-cashflow Benchmark

Actual end value

${{ performance.end_value|floatformat:0 }}

{% for ticker, bench in performance.benchmarks.items %}

Same cash flows into {{ ticker }}

${{ bench.end_value|floatformat:0 }}

Return {% if bench.simple_return is not None %}{% widthratio bench.simple_return 1 100 %}%{% else %}—{% endif %}

{% empty %}
Benchmark prices unavailable. The API still returns portfolio metrics.
{% endfor %}
{% if chart_data_json != 'null' %}

{{ fy_label }} Performance vs Benchmarks

Toggle between percentage return and dollar-value growth from the baseline date.

Snapshot value chart; cash-flow-adjusted metrics are shown in the cards above.

{% endif %}

Risk Overview

Top 1

{% widthratio risk.top_1_weight 1 100 %}%

Top 3

{% widthratio risk.top_3_weight 1 100 %}%

Semiconductors

{% widthratio risk.theme_exposure.semiconductors 1 100 %}%

AI / Cloud

{% widthratio risk.theme_exposure.ai_cloud 1 100 %}%

{% for position in risk.top_positions|slice:":5" %} {% endfor %}
Ticker Value Weight Portfolio
{{ position.stock_code }} ${{ position.current_value|floatformat:0 }} {% widthratio position.weight 1 100 %}% {{ position.portfolio_name }}

Snapshots captured every Saturday 08:00 · Prices are best-effort market data · Transaction prices are optional for AI sync

{% if all_holdings %}
{% for group in all_holdings %}

{{ group.portfolio.name }}

{{ group.position_count }} position{{ group.position_count|pluralize }}{% if overview.this_week_date %} · Snapshot {{ overview.this_week_date|date:"j M Y" }}{% endif %}

{% if group.this_week_value is not None %}${{ group.this_week_value|floatformat:0 }}{% else %}{% endif %}

{% if group.change is not None %}

{% if group.change >= 0 %}+{% endif %}${{ group.change|floatformat:0 }} ({% if group.change_pct >= 0 %}+{% endif %}{{ group.change_pct|floatformat:1 }}%)

{% else %}

No prior snapshot

{% endif %}
{% for stock in group.holdings %} {% endfor %}
Ticker Qty Price Week Change Mkt Value
{{ stock.stock_code }} {{ stock.quantity|floatformat:0 }} {% if stock.current_price %}${{ stock.current_price|floatformat:2 }}{% else %}{% endif %} {% if stock.value_change is not None %}{% if stock.value_change >= 0 %}+{% endif %}${{ stock.value_change|floatformat:0 }} ({% if stock.price_change_pct >= 0 %}+{% endif %}{{ stock.price_change_pct|floatformat:1 }}%){% else %}—{% endif %} {% if stock.current_value %}${{ stock.current_value|floatformat:0 }}{% else %}{% endif %}
{% endfor %}
{% endif %} {% if investment_posts %}

Investment Reports

AI-generated weekly reports linked by the invest tag.

{% if invest_tag %} View all posts tagged invest {% endif %}
{% for post in investment_posts %}

{{ post.title }}

{% if post.summary %}

{{ post.summary }}

{% endif %}

{{ post.created_at|date:"M j" }}

{% endfor %}
{% endif %} {% if recent_transactions %}

Transaction History

{% for tx in recent_transactions %} {% endfor %}
Date Portfolio Action Ticker Qty Price Fee
{{ tx.date|date:"j M Y" }} {{ tx.portfolio.name }} {{ tx.action }} {{ tx.stock_code }} {{ tx.quantity|floatformat:0 }} {% if tx.price_per_share %}${{ tx.price_per_share|floatformat:2 }}{% else %}optional{% endif %} {% if tx.fee %}${{ tx.fee|floatformat:2 }}{% else %}{% endif %}
{% endif %} {% endblock %} {% block extra_js %} {% if chart_data_json != 'null' %} {% endif %} {% endblock %}