{% extends "base.html" %} {% block title %}{{ (node.title if not not_found else "Not found") }} · Networth{% endblock %} {# --- Edit helpers: a row's "edit" link and the add-form's edit extras. ------ Editing works by reloading the page with ?edit={id}; the matching add-form pre-fills from that row and its Add button becomes Save. One #editform anchor is fine because only one leaf branch renders per page. #} {% macro edit_link(hid) %}edit{% endmacro %} {% macro id_field(ed) %}{% if ed %}{% endif %}{% endmacro %} {% macro form_actions(ed, add_label, hint) %}
{{ hint }} {% if ed %}Cancel{% endif %}
{% endmacro %} {% block content %} {% if not_found %}
🔍

Category not found

That net-worth category doesn't exist.

Back to Net worth
{% else %}

{{ node.title }}

{% if node_value is not none %}
₹{{ "{:,.0f}".format(node_value) }}
{% endif %} {% if node.note %}

{{ node.note }}

{% endif %}
{% if children %}
{% elif leaf_data is not none %} {% if leaf_data.is_foreign %} {% set ed = (leaf_data.holdings | selectattr('id','equalto',edit_id) | first) if edit_id else none %}
Total{% if leaf_data.fx %} · USD→INR ₹{{ "{:,.2f}".format(leaf_data.fx) }}{% endif %} ₹{{ "{:,.0f}".format(leaf_data.live_total) }}
{% if leaf_data.holdings %} {% for h in leaf_data.holdings %} {% endfor %}
Ticker Shares Price ($) Cost ($) Change Value
{{ h.ticker }} {{ "{:,.3f}".format(h.units).rstrip('0').rstrip('.') }} {{ "${:,.2f}".format(h.price_usd) if h.price_usd is not none else "—" }} {{ "${:,.2f}".format(h.cost_usd) if h.cost_usd is not none else "—" }} {% if h.gain_pct is not none %} {{ '+' if h.gain_pct >= 0 else '' }}{{ "%.1f"|format(h.gain_pct) }}% {% else %}—{% endif %} {{ "₹{:,.0f}".format(h.value) if h.value is not none else "—" }} {{ edit_link(h.id) }}
{% endif %}

{{ "Edit US holding" if ed else "Add US holding" }}

{{ id_field(ed) }}
{{ form_actions(ed, "Add holding", "Live USD prices from Yahoo, converted to INR" ~ (" at ₹%.2f/$" | format(leaf_data.fx) if leaf_data.fx else "") ~ " · only the ticker symbol is sent externally.") }}
{% elif leaf_data.is_bank_cash %} {% set ed = (leaf_data.holdings | selectattr('id','equalto',edit_id) | first) if edit_id else none %}
Total ₹{{ "{:,.0f}".format(leaf_data.live_total) }}
{% if leaf_data.holdings %} {% if leaf_data.is_bank %}{% endif %} {% if leaf_data.is_bank %}{% endif %} {% for h in leaf_data.holdings %} {% if leaf_data.is_bank %}{% endif %} {% if leaf_data.is_bank %}{% endif %} {% endfor %}
Bank{{ "Nickname" if leaf_data.is_bank else "Label" }}TypeBalance
{{ h.bank_name or "—" }}{{ h.label or "—" }}{{ h.account_type or "—" }}₹{{ "{:,.0f}".format(h.balance) }} {{ edit_link(h.id) }}
{% endif %}

{{ ("Edit " if ed else "Add ") ~ ("bank account" if leaf_data.is_bank else "cash") }}

{{ id_field(ed) }} {% if leaf_data.is_bank %}
{% else %}
{% endif %} {{ form_actions(ed, "Add", "Balance counts toward your net worth.") }}
{% elif leaf_data.is_forex %} {% set ed = (leaf_data.holdings | selectattr('id','equalto',edit_id) | first) if edit_id else none %}
Total ₹{{ "{:,.0f}".format(leaf_data.live_total) }}
{% if leaf_data.holdings %} {% for h in leaf_data.holdings %} {% endfor %}
Currency Amount Held as Rate (₹) Value
{{ h.currency }}{% if h.label %} {{ h.label }}{% endif %} {{ "{:,.2f}".format(h.amount) }} {{ h.kind or "—" }} {{ "{:,.4f}".format(h.rate) if h.rate is not none else "—" }} {{ "₹{:,.0f}".format(h.value) if h.value is not none else "—" }} {{ edit_link(h.id) }}
{% endif %}

{{ "Edit foreign currency" if ed else "Add foreign currency" }}

{{ id_field(ed) }}
{{ form_actions(ed, "Add", "Valued live at the currency's INR rate · only the currency pair is sent externally.") }}
{% elif leaf_data.is_crypto %} {% set ed = (leaf_data.holdings | selectattr('id','equalto',edit_id) | first) if edit_id else none %}
Value{% if leaf_data.invested_total %} · invested ₹{{ "{:,.0f}".format(leaf_data.invested_total) }}{% endif %} ₹{{ "{:,.0f}".format(leaf_data.live_total) }}
{% if leaf_data.holdings %} {% for h in leaf_data.holdings %} {% endfor %}
Coin Quantity Price (₹) Invested Gain Value
{{ h.symbol }}{% if h.label %} {{ h.label }}{% endif %} {{ "{:,.6f}".format(h.quantity).rstrip('0').rstrip('.') }} {{ "₹{:,.0f}".format(h.price_inr) if h.price_inr is not none else "—" }} {{ "₹{:,.0f}".format(h.invested_inr) if h.invested_inr is not none else "—" }} {% if h.gain_pct is not none %} {{ '+' if h.gain_pct >= 0 else '' }}{{ "%.0f"|format(h.gain_pct) }}% {% else %}—{% endif %} {{ "₹{:,.0f}".format(h.value) if h.value is not none else "—" }} {{ edit_link(h.id) }}
{% endif %}

{{ "Edit crypto" if ed else "Add crypto" }}

{{ id_field(ed) }}
{{ form_actions(ed, "Add", "Priced live in USD → INR · only the coin symbol is sent externally.") }}
{% elif leaf_data.is_alt %} {% set ed = (leaf_data.holdings | selectattr('id','equalto',edit_id) | first) if edit_id else none %}
Current value{% if leaf_data.cost_total %} · invested ₹{{ "{:,.0f}".format(leaf_data.cost_total) }}{% endif %} ₹{{ "{:,.0f}".format(leaf_data.live_total) }}
{% if leaf_data.holdings %} {% for h in leaf_data.holdings %} {% endfor %}
Investment Type Invested Current Gain Since
{{ h.name }} {{ h.category or "—" }} {{ "₹{:,.0f}".format(h.cost) if h.cost is not none else "—" }} ₹{{ "{:,.0f}".format(h.current_value) }} {% if h.gain_pct is not none %} {{ '+' if h.gain_pct >= 0 else '' }}{{ "%.0f"|format(h.gain_pct) }}% {% else %}—{% endif %} {{ h.invested_fmt or "—" }} {{ edit_link(h.id) }}
{% endif %}

{{ "Edit alternate investment" if ed else "Add alternate investment" }}

{{ id_field(ed) }}
{{ form_actions(ed, "Add", "Current value counts toward net worth; invested amount & date are optional (gain is shown vs cost).") }}
{% elif leaf_data.is_property %} {% set ed = (leaf_data.holdings | selectattr('id','equalto',edit_id) | first) if edit_id else none %}
{{ "Your share" if leaf_data.has_joint else "Current value" }}{% if leaf_data.cost_total %} · bought for ₹{{ "{:,.0f}".format(leaf_data.cost_total) }}{% endif %} ₹{{ "{:,.0f}".format(leaf_data.live_total) }}
{% if leaf_data.holdings %} {% if leaf_data.has_joint %} {% endif %} {% for h in leaf_data.holdings %} {% if leaf_data.has_joint %} {% endif %} {% endfor %}
Property Bought for {{ "Full value" if leaf_data.has_joint else "Current value" }}Share Your valueGain Purchased
{{ h.label }}{% if h.notes %} {{ h.notes }}{% endif %} {{ "₹{:,.0f}".format(h.cost) if h.cost is not none else "—" }} ₹{{ "{:,.0f}".format(h.current_value) }}{{ "{:g}%".format(h.share_pct) }} ₹{{ "{:,.0f}".format(h.your_value) }} {% if h.gain_pct is not none %} {{ '+' if h.gain_pct >= 0 else '' }}{{ "%.0f"|format(h.gain_pct) }}% {% else %}—{% endif %} {{ h.invested_fmt or "—" }} {{ edit_link(h.id) }}
{% endif %}

{{ "Edit property" if ed else "Add property" }}

{{ id_field(ed) }}
{{ form_actions(ed, "Add", "Only your share of the full value counts toward net worth (gross — any home loan is tracked under Liabilities).") }}
{% elif leaf_data.is_gold %} {% set ed = (leaf_data.holdings | selectattr('id','equalto',edit_id) | first) if edit_id else none %}
Value{% if leaf_data.rate24 %} · 24k ₹{{ "{:,.0f}".format(leaf_data.rate24) }}/g{% endif %} ₹{{ "{:,.0f}".format(leaf_data.live_total) }}
{% if leaf_data.holdings %} {% for h in leaf_data.holdings %} {% endfor %}
Item Weight Karat Rate (₹/g) Value
{{ h.description }}{% if h.basis == "flat" %} flat{% endif %} {{ "{:g} g".format(h.weight_g) if h.weight_g is not none else "—" }} {{ (h.karat ~ "k") if h.karat is not none else "—" }} {{ "{:,.0f}".format(h.rate) if h.rate is not none else "—" }} {{ "₹{:,.0f}".format(h.value) if h.value is not none else "—" }} {{ edit_link(h.id) }}
{% endif %}

{{ "Edit gold item" if ed else "Add gold item" }}

{{ id_field(ed) }}
{{ form_actions(ed, "Add", "Enter weight + karat to value it live at the gold rate, or a flat value for stone-set jewellery.") }}
{% elif leaf_data.is_business %} {% set ed = (leaf_data.holdings | selectattr('id','equalto',edit_id) | first) if edit_id else none %}
Current value{% if leaf_data.cost_total %} · invested ₹{{ "{:,.0f}".format(leaf_data.cost_total) }}{% endif %} ₹{{ "{:,.0f}".format(leaf_data.live_total) }}
{% if leaf_data.holdings %} {% for h in leaf_data.holdings %} {% endfor %}
Business Stake Invested Current Gain Since
{{ h.name }}{% if h.notes %} {{ h.notes }}{% endif %} {{ "{:g}%".format(h.ownership_pct) if h.ownership_pct is not none else "—" }} {{ "₹{:,.0f}".format(h.cost) if h.cost is not none else "—" }} ₹{{ "{:,.0f}".format(h.current_value) }} {% if h.gain_pct is not none %} {{ '+' if h.gain_pct >= 0 else '' }}{{ "%.0f"|format(h.gain_pct) }}% {% else %}—{% endif %} {{ h.invested_fmt or "—" }} {{ edit_link(h.id) }}
{% endif %}

{{ "Edit business stake" if ed else "Add business stake" }}

{{ id_field(ed) }}
{{ form_actions(ed, "Add", "Current value of your stake counts toward net worth; gain is shown vs invested.") }}
{% elif leaf_data.is_liability %} {% set ed = (leaf_data.holdings | selectattr('id','equalto',edit_id) | first) if edit_id else none %}
Outstanding{% if leaf_data.emi_total %} · ₹{{ "{:,.0f}".format(leaf_data.emi_total) }}/mo EMI{% endif %} ₹{{ "{:,.0f}".format(leaf_data.live_total) }}
{% if leaf_data.holdings %} {% for h in leaf_data.holdings %} {% endfor %}
Lender Outstanding Rate EMI Paid off Ends
{{ h.lender }}{% if h.notes %} {{ h.notes }}{% endif %} ₹{{ "{:,.0f}".format(h.outstanding) }} {{ "{:g}%".format(h.rate) if h.rate is not none else "—" }} {{ "₹{:,.0f}".format(h.emi) if h.emi is not none else "—" }} {{ "{:.0f}%".format(h.paid_pct) if h.paid_pct is not none else "—" }} {{ h.end_fmt or "—" }} {% if h.remaining %}{{ h.remaining }}{% endif %} {{ edit_link(h.id) }}
{% endif %}

{{ "Edit liability" if ed else "Add liability" }}

{{ id_field(ed) }}
{{ form_actions(ed, "Add", "Outstanding balance is what net worth subtracts; principal shows how much you've paid off.") }}
{% elif not leaf_data.has_cas and not leaf_data.manual_enabled %}
📥

No holdings yet

Add your holdings to fill in {{ node.title }} — name, units, price and current value.

{{ leaf_data.import_label }}
{% else %} {% set ed = (leaf_data.manual | selectattr('id','equalto',edit_id) | first) if edit_id else none %}
Total{% if leaf_data.source %} · {{ leaf_data.source }}{% endif %}{% if leaf_data.as_of %} · as of {{ leaf_data.as_of }}{% endif %} ₹{{ "{:,.0f}".format(leaf_data.live_total) }} {% if leaf_data.has_live %} {% set delta = leaf_data.live_total - leaf_data.total %} {{ '▲' if delta >= 0 else '▼' }} ₹{{ "{:,.0f}".format(delta|abs) }} vs statement (₹{{ "{:,.0f}".format(leaf_data.total) }}) {% endif %}
{% if leaf_data.data_backed %} {{ leaf_data.import_label }} {% endif %}
{% if leaf_data.has_cas %} {% if leaf_data.has_live %} {% endif %} {% for h in leaf_data.holdings %} {% if leaf_data.has_live %} {% endif %} {% endfor %}
Scheme Units {% if leaf_data.has_live %}Cost NAV{% else %}NAV{% endif %}Live ChangeValue
{{ h.name }} {% if h.isin %}{{ h.isin }}{% endif %} {{ "{:,.3f}".format(h.units) if h.units is not none else "—" }} {{ "{:,.4f}".format(h.price) if h.price is not none else "—" }}{{ "{:,.2f}".format(h.live_price) if h.live_price is not none else "—" }} {% if h.gain_pct is not none %} {{ '+' if h.gain_pct >= 0 else '' }}{{ "%.1f"|format(h.gain_pct) }}% {% else %}—{% endif %} {% if leaf_data.has_live and h.live_value is not none %} ₹{{ "{:,.0f}".format(h.live_value) }} {% elif h.value is not none %} ₹{{ "{:,.0f}".format(h.value) }} {% else %}—{% endif %}
{% if leaf_data.has_live and leaf_data.live_note %}

{{ leaf_data.live_note }}

{% endif %} {% endif %} {% if leaf_data.manual_enabled %}

{{ "Edit entry" if ed else "Manual entries" }}{% if not ed and leaf_data.manual %} · ₹{{ "{:,.0f}".format(leaf_data.manual_total) }}{% endif %}

{% if leaf_data.manual %} {% for m in leaf_data.manual %} {% endfor %}
Scheme Investment Invested Matures Tenure Maturity Rate
{{ m.scheme }} ₹{{ "{:,.0f}".format(m.investment_amount) }} {{ m.invested_fmt or "—" }} {{ m.matures_fmt or "—" }} {% if m.matures_in %}{{ m.matures_in }}{% endif %} {{ m.tenure or "—" }} {{ "₹{:,.0f}".format(m.maturity_amount) if m.maturity_amount is not none else "—" }} {{ "{:g}%".format(m.rate) if m.rate is not none else "—" }} {{ edit_link(m.id) }}
{% endif %}
{{ id_field(ed) }}
{{ form_actions(ed, "Add entry", "Investment Amount counts toward net worth · tenure is worked out from the dates.") }}
{% endif %}
{% endif %} {% else %}
🚧

Nothing here yet

We'll build out {{ node.title }} soon.

Back to Net worth
{% endif %} {% endif %} {% endblock %}