{% extends "common/base.html" %} {% block title %}{{ title | default('PanelBox Master Report') }}{% endblock %} {% block extra_css %} {% endblock %} {% block content %}

📊 Experiment Overview

Summary of panel data experiment

Formula
{{ experiment_info.formula }}
Observations
{{ experiment_info.n_obs }}
Entities
{{ experiment_info.n_entities }}
Time Periods
{{ experiment_info.n_time }}

🔬 Models Fitted

Overview of all fitted models

{% if models|length > 0 %}
{% for model in models %}

{{ model.name }}

Type: {{ model.type }}
R²: {{ "%.4f"|format(model.rsquared) }}
AIC: {{ "%.2f"|format(model.aic) }}
BIC: {{ "%.2f"|format(model.bic) }}
{% endfor %}
{% else %}

No models have been fitted yet.

Use experiment.fit_model() to fit panel models.

{% endif %}

📄 Generated Reports

Navigate to individual reports

{% if reports|length > 0 %}
{% for report in reports %}
{% if report.type == 'validation' %}📋 {% elif report.type == 'comparison' %}📊 {% elif report.type == 'residuals' %}🔬 {% endif %}

{{ report.title }}

{{ report.description }}

{% endfor %}
{% else %}

No reports have been generated yet.

Use .save_html() on ValidationResult, ComparisonResult, or ResidualResult to generate reports.

{% endif %}

🚀 Quick Start

How to generate reports

Generate Validation Report:

validation_result = experiment.validate_model('model_name')
validation_result.save_html('validation.html', test_type='validation')

Generate Comparison Report:

comparison_result = experiment.compare_models(['model1', 'model2'])
comparison_result.save_html('comparison.html', test_type='comparison')

Generate Residual Diagnostics Report:

residual_result = experiment.analyze_residuals('model_name')
residual_result.save_html('residuals.html', test_type='residuals')

Update Master Report:

experiment.save_master_report('master.html')
{% endblock %}