{% extends "admin_base.html" %} {% import "macros/admin_bulk_mapping_grid.html" as bmg %} {% import "macros/admin_pagination_footer.html" as pag %} {% block page_title %}Product Profit Breakdown Dashboard{% endblock %} {% block extra_head %} {% endblock %} {% block admin_content %} {% set revenue = revenue | default(value=0) %} {% set product_profit = product_profit | default(value=0) %} {% set total_overhead = total_overhead | default(value=0) %} {% set net = product_profit - total_overhead %}

Profit Dashboard

Monitor your margins and overhead expenses.

Total Revenue
{{ currency_symbol }}{{ revenue | price }}
Product Profit
{{ currency_symbol }}{{ product_profit | price }}
Overhead Expenses
{{ currency_symbol }}{{ total_overhead | price }}
Net Earnings
{{ currency_symbol }}{{ net | price }}

Top Profitable Products

{% for p in top_products | default(value=[]) %} {% else %} {% endfor %}
Product Total Profit
{{ p.title }} {{ currency_symbol }}{{ p.total_profit | price }}
No data yet

Loss-Making Products

{% for p in loss_products | default(value=[]) %} {% else %} {% endfor %}
Product Total Loss
{{ p.title }} {{ currency_symbol }}{{ p.total_profit | price }}
No loss-making products found. Great job!

Product cost bulk update

Set per-unit product, shipping, ads, and misc costs for each catalog product (not overhead expenses).

{{ bmg::mount( config_url="/plugins/product-profit-breakdown/assets/admin/costs_grid.json", pagination_prefix="profit-cost", currency_symbol=currency_symbol, mount_id="profit-cost-bulk-mapping-mount" ) }} {{ pag::simple_footer(prefix="profit-cost", page=1, total_pages=1, total=0, item_label="products") }}

Overhead expenses

Manage rent, salaries, and other business costs.

Expense ledger

{% set expense_rows = expenses | default(value=[]) %} {% if expense_rows | length > 0 %} {% for e in expense_rows %} {% endfor %} {% else %} {% endif %}
Date Name For Type Amount Paid by Paid to / note Receipt Actions
{{ e.expense_date | date_in_tz(timezone=settings.timezone, format="%d %b %Y") }} {{ e.name }} {{ e.category | replace(from="_", to=" ") | title }} {{ e.expense_type | replace(from="_", to=" ") | upper }} {{ currency_symbol }}{{ e.amount | price }} {{ e.payment_method | upper }} {{ e.vendor_name }}{% if e.reference %} · {{ e.reference }}{% endif %}{% if e.notes %}
{{ e.notes }}
{% endif %}
{% if e.attachment_id %}{% else %}None{% endif %} {% if e.voided_at %}CANCELLED{% else %} {% endif %}
No expenses recorded. Click Add Expense to add one.

Bank and UPI statement check

Upload a statement saved as a CSV file, or enter a line below. Download the template first if needed. Blocks matches only the same amount and deposit/withdrawal direction. This is a review aid; it does not connect to your bank.

Download CSV template

The file stays in this browser and is sent to this tenant’s Blocks server. Use the template’s column names. Re-importing the same rows is safe.

DateAccountReference / detailsMoney movedMatch in BlocksAction
Loading statement lines…
{% endblock %} {% block scripts %} {% endblock %}