{% extends "base.html" %} {% block title %}{{ BRAND_NAME }} · Settings{% endblock %} {% block main %}
Settings your account · client-only data unchanged
{% if not user %}
no per-user settings (admin bearer-token session)
{% else %}
Email
{{ user.email }}
Tier
{% if paid and paid.active %} {% if paid.source == "credit" %} Paid features active via credit · {{ paid.days_remaining }} day(s) remaining (expires {{ paid.expires_at.strftime("%Y-%m-%d") }}). {% else %} {% if trial_days_remaining %} Free trial — {{ trial_days_remaining }} day{{ '' if trial_days_remaining == 1 else 's' }} remaining. Cancel before the trial ends and you won’t be charged. {% else %} Paid subscription active. {% endif %} {% endif %} {% else %} Free tier — upgrade for £7/month or £70/year. {% endif %}
{% if paid and paid.active and paid.source != "credit" and user.stripe_customer_id %} {% endif %}
{% if paid and paid.active and paid.source != "credit" and user.stripe_customer_id %} {% endif %} {# --- Import portfolio --------------------------------------------- #} {# Open by default because /settings#import is the deep-link target from the dashboard's "import a portfolio" CTA — if you arrive via that link the section should already be expanded. #}
Import portfolio (CSV)

Drop a portfolio CSV from any broker — Trading 212 is recognised natively and other formats (IBKR, Fidelity, Schwab…) are auto-detected. We’ll parse it and show a preview before importing anywhere.
T212 export path: Investing → Your Pie → ··· → Export.

Drop your broker's portfolio CSV here
or browse · max 1 MB · T212, IBKR and others auto-detected
{# --- Referral block ---------------------------------------------- #}
Invite a friend

Share your invite link. When your friend subscribes, you and they each get 45 days of paid access credited to your account.

{{ user.referral_code }}
Pending signups
{{ pending_count }}
Converted (paid)
{{ converted_count }}
Active credits
{{ active_credit_count }}
{% if own_credit_days %}
+{{ own_credit_days }} day{{ '' if own_credit_days == 1 else 's' }} on your account
{% endif %}
{# --- Email digests block ------------------------------------------ #}
Email digests

Editorial commentary delivered to your inbox. Daily for paid (Mon–Sat) plus the Sunday recap; free tier gets the Sunday recap.

Subscription
One-click unsubscribe in every email.
Reading level
Last delivery
{% if last_email_send %}{{ last_email_send.sent_at.strftime("%Y-%m-%d %H:%M") }} UTC — {{ last_email_send.status }}{% else %}—{% endif %}
{# --- Cloud sync block --------------------------------------------- #}
Cloud sync (encrypted)

Manage the encrypted server-side copy of your portfolio. Sync is opted-in per import (see the Import section above).

{% if paid and paid.active %}
Status
checking…
{% else %}

Available on the paid tier. Upgrade or apply an invite credit above to enable cloud sync.

{% endif %}
{# Future: Paddle subscription block, AI-spend ledger summary, etc. #} {% endif %}
{% if user and paid and paid.active %} {% endif %} {% if user %} {# Import widget wiring — auto-parse on drop, preview, then commit. #} {% endif %} {% endblock %}