{% extends "base.html" %} {% block title %}{{ _("Upcoming") }} · Wealth Dashboard{% endblock %} {% block heading %}{{ _("Upcoming") }}{% endblock %} {% block lede %}

{{ _("Today's cash, carried forward through what is known to be coming: the bills as declared, the subscriptions the app has found, the salary as the newest payslip had it. Where the balance gets lowest, and the day it would cross zero — before it does, not after.") }}

{% endblock %} {% block content %} {% set ccy = data.base_currency %} {% set kind_labels = {'bill': _("bill"), 'subscription': _("subscription"), 'income': _("income")} %}
{{ _("Cash today") }}
{{ big(data.starting, ccy) }}
{{ _n(data.accounts | length, "{n} cash account", "{n} cash accounts") }}, {{ _("newest reading each") }}
{{ _f("In {n} days", n=data.days) }}
{{ big(data.ending, ccy) }}
{{ _f("{inflow} in, {outflow} out", inflow=money(data.total_in, ccy), outflow=money(data.total_out, ccy)) }}
{{ _("Lowest point") }}
{% if data.lowest %}{{ big(data.lowest.running, ccy) }}{% else %}{{ big(data.starting, ccy) }}{% endif %}
{% if data.below_zero %}{{ _f("below zero on {date}, after {name}", date=d(data.below_zero.date), name=data.below_zero.name) }} {% elif data.lowest %}{{ _f("on {date}, after {name}", date=d(data.lowest.date), name=data.lowest.name) }} {% elif data.starting < 0 %}{{ _("starts below zero — an overdraft or a card, not a crossing") }} {% else %}{{ _("nothing scheduled") }}{% endif %}
{{ _("Scheduled") }}
{{ data.entries | length }}
{{ _f("{bills} bills, {subs} subscriptions, {income} pay days", bills=data.counts.bill, subs=data.counts.subscription, income=data.counts.income) }}
{% if data.unpriced %}
{{ _f("No exchange rate for {currencies}; what is in them is left out of the figures above.", currencies=data.unpriced | join(", ")) }}
{% endif %}

{{ _("Balance ahead") }}

{% for n in data.horizons %} {{ _f("{n} days", n=n) }} {% endfor %}
{% if data.entries %}
{% else %}

{{ _("Nothing is scheduled in this window. Declare a bill, or import a payslip, and the line starts moving.") }} {{ _("Bills →") }}

{% endif %}
{% if data.entries %}

{{ _("Day by day") }}

{{ _("income lands before bills on the same day · ~ an amount carried from what it last cost") }}
{% for i in data.entries %} {% endfor %}
{{ _("Date") }}{{ _("What") }}{{ _("Account") }}{{ _("Amount") }}{{ _("Balance after") }}
{{ d(i.date) }} {{ i.name }} {{ kind_labels[i.kind] }} {% if i.overdue %}{{ _("missed — expected today") }}{% endif %} {{ i.account or '—' }} {{ '~ ' if i.estimate }}{{ money(i.amount, ccy) }} {{ money(i.running, ccy) }}
{% endif %}

{{ _("Starting from") }}

{% for a in data.accounts %} {% else %} {% endfor %}
{{ _("Account") }}{{ _("Balance") }}{{ _("As of") }}
{{ a.name }} {{ money(a.balance, a.currency) }} {{ d(a.as_of) if a.as_of else _("nothing reported yet") }}
{{ _("No cash account yet.") }}

{{ _("Loan instalments count only when declared as a bill: the app knows what a loan costs, not which account pays it.") }}

{% endblock %} {% block scripts %} {% if data.entries %} {% endif %} {% endblock %}