{% extends "base.html" %} {% block title %}Analytics · foilstack{% endblock %} {% block status %}{{ totals.distinct }} skus · {{ totals.count }} cards · {{ totals.market|money }} at market{% endblock %} {% block screen %}

Analytics

position from your inventory · performance needs sales data
Inventory value
{{ totals.market|money }}
{{ totals.count }} cards · {{ totals.distinct }} skus
Listed value
{{ listed_value|money }}
{{ unlisted_value|money }} not yet listed
Cost basis
{{ totals.cost|money if totals.cost else '—' }}
{% if totals.cost %}across {{ totals.distinct }} skus{% else %}no cost recorded on any row{% endif %}
Unrealised gain
{{ (totals.market - totals.cost)|money if totals.cost else '—' }}
{% if totals.cost %}at market, before fees{% else %}needs a cost basis{% endif %}
Inventory value by game
{% for b in by_game %}
{{ b.label }}
{{ b.value|money }}
{% else %}
nothing in inventory yet
{% endfor %}
Position
Cards on hand{{ totals.count }}
Distinct skus{{ totals.distinct }}
Market value{{ totals.market|money }}
Suggested list value{{ totals.listed|money }}
Cost basis on hand{{ totals.cost|money if totals.cost else '—' }}
Unrealised gain{{ (totals.market - totals.cost)|money if totals.cost else '—' }}
Sell-through by channel demo data
TCGplayer
$3,910
eBay
$1,640
In person
$205

Placeholder. foilstack never sees a sale — the CSV leaves here and what happens next happens on a marketplace. Real numbers need order data read back in, which nothing does yet.

Realised {% if not sales.sold_all %}no sales recorded{% endif %}
{% if sales.sold_all %}
Cards sold{{ sales.sold_all }}{% if sales.sold_30d %} ({{ sales.sold_30d }} in 30d){% endif %}
Gross realised{{ sales.gross_all|money }}
Gross 30d{{ sales.gross_30d|money }}
Realised profit{{ sales.profit_all|money if sales.profit_all is not none else '—' }}
Sell-through{{ sales.sell_through ~ '%' if sales.sell_through is not none else '—' }}
Avg days to sell{{ sales.avg_days if sales.avg_days is not none else '—' }}

{% if sales.costed < sales.sold_all %} {{ sales.sold_all - sales.costed }} of {{ sales.sold_all }} sold cards have no cost recorded, so realised profit covers only part of them. {% endif %} Marketplace fees and shipping are not counted — foilstack never sees them, so this is gross of both rather than a net figure dressed up as one.

{% else %}
Mark a card sold from its page and these become real numbers.

Sell-through, gross and days-to-sell are computed from your own sales. Marketplace fees and shipping never reach foilstack, so they are absent rather than estimated.

{% endif %}
{% endblock %}