{% extends "base.html" %} {% block title %}Analytics · foilstack{% endblock %} {% block status %}{{ totals.distinct }} skus · {{ totals.count }} cards · {{ totals.market|money }} at market{% endblock %} {% block screen %}
| 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 '—' }} |
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.
| 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 %}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 %}