{% include "_pwa_head.html" %}
{% include "_global_user_menu.html" %}
Management Reports

Onsite Call Reports

Operational activity plus paid-service profit tracking for onsite calls and leads in one report view.

Report Filters

Current month loads by default. Profit tables follow case closure date; the activity widgets below follow call creation date.

Profit Report

Paid completed closures only. Onsite and leads stay separate so branch and lead profitability are easy to compare.

{% for section in report_data.profit_sections %}

{{ section.title }}

{% if section.call_type == 'Lead' %}Cases click cheythal lead details open aavum, export cheyyanum pattum.{% else %}Cases click cheythal onsite details open aavum, export cheyyanum pattum.{% endif %}

{{ section.summary.case_count }} Case{{ '' if section.summary.case_count == 1 else 's' }}

Service Charges

{{ '%.2f'|format(section.summary.service_charge_total|float) }}

Product Value

{{ '%.2f'|format(section.summary.product_value_total|float) }}

Customer Price

{{ '%.2f'|format(section.summary.customer_price_total|float) }}

Profit

{{ '%.2f'|format(section.summary.profit_total|float) }}

{% if section.rows %} {% endif %}
{% endfor %}

Daily Calls

Last 30 grouped days for the selected filter set.

{% for row in report_data.daily_rows %}
{{ row.day }}{{ row.count }}
{% else %}

No data

No call records matched the selected date range.

{% endfor %}

Completed vs Failed

Outcome totals from filtered calls.

{% for row in report_data.outcome_rows %}
{{ row.status }}{{ row.count }}
{% else %}

No outcomes

Completed and failed results will appear here.

{% endfor %}

Engineer Performance

Total handled calls per assigned engineer.

{% for row in report_data.engineer_rows %}
{{ row.engineer_name }}{{ row.count }}
{% else %}

No engineer data

Assign calls to engineers to populate this section.

{% endfor %}

Branch Load

How work is distributed across branches.

{% for row in report_data.branch_rows %}
{{ row.branch_name }}{{ row.count }}
{% else %}

No branch data

Branch assignment totals will appear here.

{% endfor %}

Complaint Mix

Breakdown by complaint type.

{% for row in report_data.complaint_rows %}
{{ row.complaint_type }}{{ row.count }}
{% else %}

No complaint data

Complaint types will appear once calls are entered.

{% endfor %}