Index: src/main/java/apps/spring/reportium/entity/DTOs/ReportFilterDTO.java
===================================================================
--- src/main/java/apps/spring/reportium/entity/DTOs/ReportFilterDTO.java	(revision 2e508222ba47efc03e81166443c7dc292f3c90d3)
+++ src/main/java/apps/spring/reportium/entity/DTOs/ReportFilterDTO.java	(revision 7ef8fdbf77f56c14cd7d38d8f0f0bae06aedfad4)
@@ -78,64 +78,4 @@
         StringBuilder sb = new StringBuilder();
         sb.append("Report Filter: ").append(filter_selected.toString()).append("\n");
-        //TODO the advanced filter description
-//        switch (filter_selected) {
-//            case PERSON:
-//                sb.append("Person: ").append(person_name_string).append(" ").append(person_surname_string).append("\n");
-//                if (correct_age != null && correct_age > 0) {
-//                    sb.append("Correct Age: ").append(correct_age);
-//
-//                } else if (age_start != null && age_start > 0 && age_end != null && age_end < 120) {
-//                    sb.append("Age Range [").append(age_start).append(",").append(age_end).append("] ").append("\n");
-//                }
-//                sb.append("Gender: ").append(gender.toString()).append("\n");
-//                sb.append("Address: ").append(address_string).append("\n");
-//                if (getIs_alive().equals(Boolean.TRUE)) {
-//                    sb.append("alive").append("\n");
-//                } else {
-//                    sb.append("dead").append("\n");
-//                }
-//                break;
-//            case ACADEMIC:
-//                sb.append("Academic Field: ").append(academic_field).append("\n");
-//                sb.append("Institution Type: ").append(institution_type.toString()).append("\n");
-//                break;
-//            case EMPLOYMENT:
-//                if (income_comparison != null && income_amount != null && income_amount > 0)
-//                    sb.append("Income ").append(income_comparison).append(" ").append(income_amount).append(" EUR\n");
-//                if (years_experience_comparison != null && years_experience != null && years_experience > 0)
-//                    sb.append("Experience ").append(years_experience_comparison).append(" ")
-//                            .append(years_experience).append(" years\n");
-//                break;
-//
-//            case CRIMINAL:
-//                if (crime_type_label != null && !crime_type_label.isBlank())
-//                    sb.append("Crime Type: ").append(crime_type_label).append("\n");
-//                if (crime_severity_level != null)
-//                    sb.append("Severity Level: ").append(crime_severity_level).append("\n");
-//                if (is_resolved != null)
-//                    sb.append("Resolved: ").append(is_resolved ? "Yes" : "No").append("\n");
-//
-//                if (punishment_type != null) {
-//                    sb.append("Punishment: ").append(punishment_type).append(" ");
-//                    if (punishment_type == PunishmentType.FINE && punishment_fine != null)
-//                        sb.append(punishment_fine).append(" EUR\n");
-//                    else if (punishment_type == PunishmentType.PRISON && punishment_years != null)
-//                        sb.append(punishment_years).append(" years\n");
-//                }
-//                break;
-//
-//            case MEDICAL:
-//                if (doctor_name_string != null && !doctor_name_string.isBlank())
-//                    sb.append("Doctor Name: ").append(doctor_name_string).append("\n");
-//                if (doctor_surname_string != null && !doctor_surname_string.isBlank())
-//                    sb.append("Doctor Surname: ").append(doctor_surname_string).append("\n");
-//                if (specialization != null)
-//                    sb.append("Specialization: ").append(specialization).append("\n");
-//                if (is_chronic != null)
-//                    sb.append("Chronic Illness: ").append(is_chronic ? "Yes" : "No").append("\n");
-//                if (has_next_control != null)
-//                    sb.append("Next Control Scheduled: ").append(has_next_control ? "Yes" : "No").append("\n");
-//                break;
-//        }
         return sb.toString();
     }
Index: src/main/java/apps/spring/reportium/entity/DTOs/ReportStatisticsPerPersonDTO.java
===================================================================
--- src/main/java/apps/spring/reportium/entity/DTOs/ReportStatisticsPerPersonDTO.java	(revision 7ef8fdbf77f56c14cd7d38d8f0f0bae06aedfad4)
+++ src/main/java/apps/spring/reportium/entity/DTOs/ReportStatisticsPerPersonDTO.java	(revision 7ef8fdbf77f56c14cd7d38d8f0f0bae06aedfad4)
@@ -0,0 +1,65 @@
+package apps.spring.reportium.entity.DTOs;
+import lombok.Data;
+import java.math.BigDecimal;
+import java.sql.Date;
+//fixme
+@Data
+public class ReportStatisticsPerPersonDTO {
+    // General
+    private Long totalReportsFound;
+    private Date firstReportOfPerson;
+    private Date latestReportOfPerson;
+    // Academic
+    private Long academicTotal;
+    private String mostCommonField;
+    private String educationPath;
+    // Employment
+    private Long jobCount;
+    private Long totalWorkingInDays;
+    private Long totalWorkingInMonths;
+    private Long totalWorkingInYears;
+    private Long longestJobDays;
+    private Double maxIncomeFromJob;
+    // Medical
+    private Long diagnosisTotal;
+    private Double chronicRatio;
+    private String mostFrequentDiagnosis;
+    // Criminal
+    private Long criminalCaseTotal;
+    private Double resolutionRatio;
+    public ReportStatisticsPerPersonDTO(Long totalReportsFound,
+                                        Date firstReportOfPerson,
+                                        Date latestReportOfPerson,
+                                        Long academicTotal,
+                                        String mostCommonField,
+                                        String educationPath,
+                                        Long jobCount,
+                                        Long totalWorkingInDays,
+                                        Long totalWorkingInMonths,
+                                        Long totalWorkingInYears,
+                                        Long longestJobDays,
+                                        Double maxIncomeFromJob,
+                                        Long diagnosisTotal,
+                                        Double chronicRatio,
+                                        String mostFrequentDiagnosis,
+                                        Long criminalCaseTotal,
+                                        Double resolutionRatio) {
+        this.totalReportsFound = totalReportsFound;
+        this.firstReportOfPerson = firstReportOfPerson;
+        this.latestReportOfPerson = latestReportOfPerson;
+        this.academicTotal = academicTotal;
+        this.mostCommonField = mostCommonField;
+        this.educationPath = educationPath;
+        this.jobCount = jobCount;
+        this.totalWorkingInDays = totalWorkingInDays;
+        this.totalWorkingInMonths = totalWorkingInMonths;
+        this.totalWorkingInYears = totalWorkingInYears;
+        this.longestJobDays = longestJobDays;
+        this.maxIncomeFromJob = maxIncomeFromJob;
+        this.diagnosisTotal = diagnosisTotal;
+        this.chronicRatio = chronicRatio;
+        this.mostFrequentDiagnosis = mostFrequentDiagnosis;
+        this.criminalCaseTotal = criminalCaseTotal;
+        this.resolutionRatio = resolutionRatio;
+    }
+}
Index: src/main/java/apps/spring/reportium/repository/ReportRepository.java
===================================================================
--- src/main/java/apps/spring/reportium/repository/ReportRepository.java	(revision 2e508222ba47efc03e81166443c7dc292f3c90d3)
+++ src/main/java/apps/spring/reportium/repository/ReportRepository.java	(revision 7ef8fdbf77f56c14cd7d38d8f0f0bae06aedfad4)
@@ -17,40 +17,141 @@
 
     @Query(value = """
-        SELECT r.report_id, academic_field, description_of_report, i.name, i.type, i.address, i.year_established
-        FROM report r
-        JOIN academicreport ar ON ar.report_id = r.report_id
-        JOIN institution i ON i.institution_id = ar.institution_id
-        WHERE r.person_id = :personId
-        """, nativeQuery = true)
+            SELECT r.report_id, academic_field, description_of_report, i.name, i.type, i.address, i.year_established
+            FROM report r
+            JOIN academicreport ar ON ar.report_id = r.report_id
+            JOIN institution i ON i.institution_id = ar.institution_id
+            WHERE r.person_id = :personId
+            """, nativeQuery = true)
     List<AcademicReportPerPersonDTO> getAcademicReportsByPersonId(@Param("personId") Long personId);
 
     @Query(value = """
-        SELECT r.report_id, summary, er.start_date, er.end_date, job_role, income_per_month
-        FROM report r
-        JOIN employmentreport er ON er.report_id = r.report_id
-        WHERE r.person_id = :personId
-        """, nativeQuery = true)
+            SELECT r.report_id, summary, er.start_date, er.end_date, job_role, income_per_month
+            FROM report r
+            JOIN employmentreport er ON er.report_id = r.report_id
+            WHERE r.person_id = :personId
+            """, nativeQuery = true)
     List<EmploymentReportPerPersonDTO> getEmploymentReportsByPersonId(@Param("personId") Long personId);
 
     @Query(value = """
-        SELECT r.report_id, summary, next_control_date, d.short_description, d.therapy, d.severity, d.is_chronic,
-               doc.name, doc.surname, doc.specialization
-        FROM report r
-        JOIN medicalreport mr ON mr.report_id = r.report_id
-        JOIN medicalreport_diagnosis mrd ON mr.report_id = mrd.report_id
-        JOIN diagnosis d ON mrd.diagnosis_id = d.diagnosis_id
-        JOIN doctor doc ON doc.doctor_id = mr.doctor_id
-        WHERE r.person_id = :personId
-        """, nativeQuery = true)
+            SELECT r.report_id, summary, next_control_date, d.short_description, d.therapy, d.severity, d.is_chronic,
+                   doc.name, doc.surname, doc.specialization
+            FROM report r
+            JOIN medicalreport mr ON mr.report_id = r.report_id
+            JOIN medicalreport_diagnosis mrd ON mr.report_id = mrd.report_id
+            JOIN diagnosis d ON mrd.diagnosis_id = d.diagnosis_id
+            JOIN doctor doc ON doc.doctor_id = mr.doctor_id
+            WHERE r.person_id = :personId
+            """, nativeQuery = true)
     List<MedicalReportPerPersonDTO> getMedicalReportsByPersonId(@Param("personId") Long personId);
 
     @Query(value = """
-        SELECT r.report_id, label, severity_level, location, resolved, descriptive_punishment
-        FROM report r
-        JOIN criminalreport cr ON cr.report_id = r.report_id
-        JOIN crimetype ct ON cr.crime_type_id = ct.crime_type_id
-        WHERE r.person_id = :personId
-        """, nativeQuery = true)
+            SELECT r.report_id, label, severity_level, location, resolved, descriptive_punishment
+            FROM report r
+            JOIN criminalreport cr ON cr.report_id = r.report_id
+            JOIN crimetype ct ON cr.crime_type_id = ct.crime_type_id
+            WHERE r.person_id = :personId
+            """, nativeQuery = true)
     List<CrimeReportPerPersonDTO> getCriminalReportsByPersonId(@Param("personId") Long personId);
+
+    @Query(value = """
+            WITH
+            selected_person_reports AS (
+                SELECT * FROM report WHERE person_id = :person_id
+            ),
+            
+            academic AS (
+                SELECT r.created_at, ar.academic_field, ar.report_id
+                FROM report r
+                         JOIN academicreport ar ON r.report_id = ar.report_id
+                         JOIN institution i ON i.institution_id = ar.institution_id
+                WHERE r.person_id = :person_id
+            ),
+            
+            employment AS (
+                SELECT e.start_date, COALESCE(e.end_date, CURRENT_DATE) AS end_date, e.income_per_month
+                FROM employmentreport e
+                         JOIN report r ON r.report_id = e.report_id
+                WHERE r.person_id = :person_id
+            ),
+            
+            medical AS (
+                SELECT d.short_description, d.is_chronic
+                FROM report r
+                         JOIN medicalreport mr ON r.report_id = mr.report_id
+                         JOIN medicalreport_diagnosis mrd ON mrd.report_id = mr.report_id
+                         JOIN diagnosis d ON d.diagnosis_id = mrd.diagnosis_id
+                WHERE r.person_id = :person_id
+            ),
+            
+            criminal AS (
+                SELECT cr.descriptive_punishment, cr.resolved as is_resolved
+                FROM report r
+                         JOIN criminalreport cr ON r.report_id = cr.report_id
+                         JOIN crimetype ct ON ct.crime_type_id = cr.crime_type_id
+                WHERE r.person_id = :person_id
+            ),
+            
+            ordered_academic_reports_by_date AS (
+                SELECT
+                    ar.academic_field,
+                    r.created_at,
+                    ROW_NUMBER() OVER (PARTITION BY ar.academic_field ORDER BY r.created_at) AS row_num
+                FROM report r
+                         JOIN academicreport ar ON ar.report_id = r.report_id
+                WHERE r.person_id = :person_id
+            ),
+            
+            filtered_academic_pathway AS (
+                SELECT academic_field, MIN(created_at) AS started_on
+                FROM ordered_academic_reports_by_date
+                GROUP BY academic_field
+            ),
+            
+            employment_report_stats AS (
+                SELECT
+                    CAST(SUM(ABS(COALESCE(e.end_date, CURRENT_DATE) - e.start_date)) AS BIGINT) AS total_working_in_days,
+                    CAST(CEIL(SUM(ABS(COALESCE(e.end_date, CURRENT_DATE) - e.start_date)) / 30.0) AS BIGINT) AS total_working_in_months,
+                    CAST(CEIL(SUM(ABS(COALESCE(e.end_date, CURRENT_DATE) - e.start_date)) / 365.0) AS BIGINT) AS total_working_in_years,
+                    CAST(MAX(COALESCE(e.end_date, CURRENT_DATE) - e.start_date) AS BIGINT) AS longest_job_days
+                FROM employmentreport e
+                         JOIN report r ON r.report_id = e.report_id
+                WHERE r.person_id = :person_id
+            )
+            SELECT
+            -- General
+            CAST((SELECT COUNT(*) FROM selected_person_reports) AS BIGINT) AS total_reports_found,
+            CAST((SELECT created_at::date FROM selected_person_reports ORDER BY created_at ASC LIMIT 1) AS DATE) AS first_report_of_person,
+            CAST((SELECT created_at::date FROM selected_person_reports ORDER BY created_at DESC LIMIT 1) AS DATE) AS latest_report_of_person,
+            -- Academic
+            CAST((SELECT COUNT(*) FROM academic) AS BIGINT) AS academic_total,
+            CAST((SELECT academic_field
+                  FROM academic
+                  GROUP BY academic_field
+                  ORDER BY COUNT(*) DESC
+                LIMIT 1) AS TEXT) AS most_common_field,
+            CAST((SELECT STRING_AGG(academic_field, ' → ' ORDER BY started_on)
+                  FROM filtered_academic_pathway) AS TEXT) AS education_path,
+            -- Employment
+            CAST((SELECT COUNT(*) FROM employment) AS BIGINT) AS job_count,
+            (SELECT total_working_in_days FROM employment_report_stats),
+            (SELECT total_working_in_months FROM employment_report_stats),
+            (SELECT total_working_in_years FROM employment_report_stats),
+            (SELECT longest_job_days FROM employment_report_stats),
+            CAST((SELECT MAX(income_per_month) FROM employment) AS DOUBLE PRECISION) AS max_income_from_job,
+            -- Medical
+            CAST((SELECT COUNT(*) FROM medical) AS BIGINT) AS diagnosis_total,
+            CAST((SELECT ROUND(SUM(CASE WHEN is_chronic THEN 1 ELSE 0 END)::decimal / COUNT(*), 2)
+                  FROM medical) AS DOUBLE PRECISION) AS chronic_ratio,
+            CAST((SELECT short_description
+                  FROM medical
+                  GROUP BY short_description
+                  ORDER BY COUNT(*) DESC
+                LIMIT 1) AS TEXT) AS most_frequent_diagnosis,
+            -- Criminal
+            CAST((SELECT COUNT(*) FROM criminal) AS BIGINT) AS criminal_case_total,
+            CAST((SELECT ROUND(SUM(CASE WHEN is_resolved THEN 1 ELSE 0 END)::decimal / COUNT(*), 2)
+                  FROM criminal) AS DOUBLE PRECISION) AS resolution_ratio
+            """, nativeQuery = true)
+    ReportStatisticsPerPersonDTO getStatisticsForPerson(@Param("person_id") Long person_id);
 
     Page<Report> findAll(Pageable pageable);
Index: src/main/java/apps/spring/reportium/repository/ReportViewRepository.java
===================================================================
--- src/main/java/apps/spring/reportium/repository/ReportViewRepository.java	(revision 2e508222ba47efc03e81166443c7dc292f3c90d3)
+++ src/main/java/apps/spring/reportium/repository/ReportViewRepository.java	(revision 7ef8fdbf77f56c14cd7d38d8f0f0bae06aedfad4)
@@ -1,18 +1,23 @@
 package apps.spring.reportium.repository;
 
+import apps.spring.reportium.entity.DTOs.ReportStatisticsPerPersonDTO;
 import apps.spring.reportium.entity.DTOs.view_fetching_dtos.*;
 import apps.spring.reportium.entity.Report;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 
 import java.util.List;
 
-public interface ReportViewRepository extends JpaRepository<Report,Long> {
+public interface ReportViewRepository extends JpaRepository<Report, Long> {
     @Query(value = "SELECT * FROM academic_report_view", nativeQuery = true)
     List<AcademicReportViewFetchingDTO> getAcademicReportViews();
+
     @Query(value = "SELECT * FROM employment_report_view", nativeQuery = true)
     List<EmploymentReportViewFetchingDTO> getEmploymentReportViews();
+
     @Query(value = "SELECT * FROM medical_report_view", nativeQuery = true)
     List<MedicalReportViewFetchingDTO> getMedicalReportViews();
+
     @Query(value = "SELECT * FROM criminal_report_view", nativeQuery = true)
     List<CrimeReportViewFetchingDTO> getCrimeReportViews();
Index: src/main/java/apps/spring/reportium/web/HomeController.java
===================================================================
--- src/main/java/apps/spring/reportium/web/HomeController.java	(revision 2e508222ba47efc03e81166443c7dc292f3c90d3)
+++ src/main/java/apps/spring/reportium/web/HomeController.java	(revision 7ef8fdbf77f56c14cd7d38d8f0f0bae06aedfad4)
@@ -41,9 +41,11 @@
         List<AcademicReportPerPersonDTO> person_ar = reportRepository.getAcademicReportsByPersonId(personId);
         List<EmploymentReportPerPersonDTO> person_er = reportRepository.getEmploymentReportsByPersonId(personId);
-
+        ReportStatisticsPerPersonDTO statistics_per_person = reportRepository.getStatisticsForPerson(personId);
+        System.out.println(statistics_per_person);
         model.addAttribute("medical_reports", person_mr);
         model.addAttribute("criminal_reports", person_cr);
         model.addAttribute("academic_reports", person_ar);
         model.addAttribute("employment_reports", person_er);
+        model.addAttribute("statistics", statistics_per_person);
         model.addAttribute("person", person);
         return "person_reports";
Index: src/main/resources/application.properties
===================================================================
--- src/main/resources/application.properties	(revision 2e508222ba47efc03e81166443c7dc292f3c90d3)
+++ src/main/resources/application.properties	(revision 7ef8fdbf77f56c14cd7d38d8f0f0bae06aedfad4)
@@ -5,5 +5,4 @@
 
 
-
 #server.error.include-message=always
 #server.error.include-stacktrace=always
Index: src/main/resources/sql_queries/get_statistics_for_person.sql
===================================================================
--- src/main/resources/sql_queries/get_statistics_for_person.sql	(revision 7ef8fdbf77f56c14cd7d38d8f0f0bae06aedfad4)
+++ src/main/resources/sql_queries/get_statistics_for_person.sql	(revision 7ef8fdbf77f56c14cd7d38d8f0f0bae06aedfad4)
@@ -0,0 +1,99 @@
+WITH
+    selected_person_reports AS (
+        SELECT * FROM report WHERE person_id = :person_id
+    ),
+
+    academic AS (
+        SELECT r.created_at, ar.academic_field, ar.report_id
+        FROM report r
+                 JOIN academicreport ar ON r.report_id = ar.report_id
+                 JOIN institution i ON i.institution_id = ar.institution_id
+        WHERE r.person_id = :person_id
+    ),
+
+    employment AS (
+        SELECT e.start_date, COALESCE(e.end_date, CURRENT_DATE) AS end_date, e.income_per_month
+        FROM employmentreport e
+                 JOIN report r ON r.report_id = e.report_id
+        WHERE r.person_id = :person_id
+    ),
+
+    medical AS (
+        SELECT d.short_description, d.is_chronic
+        FROM report r
+                 JOIN medicalreport mr ON r.report_id = mr.report_id
+                 JOIN medicalreport_diagnosis mrd ON mrd.report_id = mr.report_id
+                 JOIN diagnosis d ON d.diagnosis_id = mrd.diagnosis_id
+        WHERE r.person_id = :person_id
+    ),
+
+    criminal AS (
+        SELECT cr.descriptive_punishment, cr.resolved as is_resolved
+        FROM report r
+                 JOIN criminalreport cr ON r.report_id = cr.report_id
+                 JOIN crimetype ct ON ct.crime_type_id = cr.crime_type_id
+        WHERE r.person_id = :person_id
+    ),
+
+    ordered_academic_reports_by_date AS (
+        SELECT
+            ar.academic_field,
+            r.created_at,
+            ROW_NUMBER() OVER (PARTITION BY ar.academic_field ORDER BY r.created_at) AS row_num
+        FROM report r
+                 JOIN academicreport ar ON ar.report_id = r.report_id
+        WHERE r.person_id = :person_id
+    ),
+
+    filtered_academic_pathway AS (
+        SELECT academic_field, MIN(created_at) AS started_on
+        FROM ordered_academic_reports_by_date
+        GROUP BY academic_field
+    ),
+
+    employment_report_stats AS (
+        SELECT
+            CAST(SUM(ABS(COALESCE(e.end_date, CURRENT_DATE) - e.start_date)) AS BIGINT) AS total_working_in_days,
+            CAST(CEIL(SUM(ABS(COALESCE(e.end_date, CURRENT_DATE) - e.start_date)) / 30.0) AS BIGINT) AS total_working_in_months,
+            CAST(CEIL(SUM(ABS(COALESCE(e.end_date, CURRENT_DATE) - e.start_date)) / 365.0) AS BIGINT) AS total_working_in_years,
+            CAST(MAX(COALESCE(e.end_date, CURRENT_DATE) - e.start_date) AS BIGINT) AS longest_job_days
+        FROM employmentreport e
+                 JOIN report r ON r.report_id = e.report_id
+        WHERE r.person_id = :person_id
+    )
+SELECT
+    -- General
+    CAST((SELECT COUNT(*) FROM selected_person_reports) AS BIGINT) AS total_reports_found,
+    CAST((SELECT created_at::date FROM selected_person_reports ORDER BY created_at ASC LIMIT 1) AS DATE) AS first_report_of_person,
+    CAST((SELECT created_at::date FROM selected_person_reports ORDER BY created_at DESC LIMIT 1) AS DATE) AS latest_report_of_person,
+    -- Academic
+    CAST((SELECT COUNT(*) FROM academic) AS BIGINT) AS academic_total,
+    CAST((SELECT academic_field
+          FROM academic
+          GROUP BY academic_field
+          ORDER BY COUNT(*) DESC
+        LIMIT 1) AS TEXT) AS most_common_field,
+    CAST((SELECT STRING_AGG(academic_field, ' → ' ORDER BY started_on)
+          FROM filtered_academic_pathway) AS TEXT) AS education_path,
+    -- Employment
+    CAST((SELECT COUNT(*) FROM employment) AS BIGINT) AS job_count,
+    (SELECT total_working_in_days FROM employment_report_stats),
+    (SELECT total_working_in_months FROM employment_report_stats),
+    (SELECT total_working_in_years FROM employment_report_stats),
+    (SELECT longest_job_days FROM employment_report_stats),
+    CAST((SELECT MAX(income_per_month) FROM employment) AS DOUBLE PRECISION) AS max_income_from_job,
+    -- Medical
+    CAST((SELECT COUNT(*) FROM medical) AS BIGINT) AS diagnosis_total,
+    CAST((SELECT ROUND(SUM(CASE WHEN is_chronic THEN 1 ELSE 0 END)::decimal / COUNT(*), 2)
+          FROM medical) AS DOUBLE PRECISION) AS chronic_ratio,
+    CAST((SELECT short_description
+          FROM medical
+          GROUP BY short_description
+          ORDER BY COUNT(*) DESC
+        LIMIT 1) AS TEXT) AS most_frequent_diagnosis,
+    -- Criminal
+    CAST((SELECT COUNT(*) FROM criminal) AS BIGINT) AS criminal_case_total,
+    CAST((SELECT ROUND(SUM(CASE WHEN is_resolved THEN 1 ELSE 0 END)::decimal / COUNT(*), 2)
+          FROM criminal) AS DOUBLE PRECISION) AS resolution_ratio;
+
+--this is a complicated query with a chain of CTE used, so I can fetch some statistics from the reports for a person provided
Index: src/main/resources/templates/filter_panel.html
===================================================================
--- src/main/resources/templates/filter_panel.html	(revision 2e508222ba47efc03e81166443c7dc292f3c90d3)
+++ src/main/resources/templates/filter_panel.html	(revision 7ef8fdbf77f56c14cd7d38d8f0f0bae06aedfad4)
@@ -55,5 +55,6 @@
     </form>
     <form th:action="@{/advanced_filter_pt2}" th:method="post" th:object="${filter}">
-        <div id="person_filter" class="mb-4" th:if="${choice == T(apps.spring.reportium.entity.enumerations.SelectedFilterSection).PERSON}">
+        <div id="person_filter" class="mb-4"
+             th:if="${choice == T(apps.spring.reportium.entity.enumerations.SelectedFilterSection).PERSON}">
             <h3 class="text-center px-4 py-3 bg-dark text-white fw-bolder rounded">Advanced Filtering Page</h3>
             <hr class="my-4 border-dark">
@@ -141,5 +142,6 @@
         </div>
 
-        <div class="mb-4" id="academic_filter" th:if="${choice == T(apps.spring.reportium.entity.enumerations.SelectedFilterSection).ACADEMIC}">
+        <div class="mb-4" id="academic_filter"
+             th:if="${choice == T(apps.spring.reportium.entity.enumerations.SelectedFilterSection).ACADEMIC}">
             <hr class="my-4">
             <div class="row d-flex">
@@ -165,5 +167,6 @@
             </div>
         </div>
-        <div class="mb-4" id="employment_filter" th:if="${choice == T(apps.spring.reportium.entity.enumerations.SelectedFilterSection).EMPLOYMENT}">
+        <div class="mb-4" id="employment_filter"
+             th:if="${choice == T(apps.spring.reportium.entity.enumerations.SelectedFilterSection).EMPLOYMENT}">
             <!-- Employment Report -->
             <div class="col-6">
@@ -214,5 +217,6 @@
             </div>
         </div>
-        <div class="mb-4" id="criminal_filter" th:if="${choice == T(apps.spring.reportium.entity.enumerations.SelectedFilterSection).CRIMINAL}">
+        <div class="mb-4" id="criminal_filter"
+             th:if="${choice == T(apps.spring.reportium.entity.enumerations.SelectedFilterSection).CRIMINAL}">
             <!-- Criminal Report -->
             <hr class="my-4">
Index: src/main/resources/templates/person_reports.html
===================================================================
--- src/main/resources/templates/person_reports.html	(revision 2e508222ba47efc03e81166443c7dc292f3c90d3)
+++ src/main/resources/templates/person_reports.html	(revision 7ef8fdbf77f56c14cd7d38d8f0f0bae06aedfad4)
@@ -5,86 +5,408 @@
     <title th:text="'Reports for ' + ${person.name} + ' ' + ${person.surname}">Person Reports</title>
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
+    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css">
     <style>
+        * {
+            margin: 0;
+            padding: 0;
+            box-sizing: border-box;
+        }
+
         body {
-            background: linear-gradient(to right, #020b49, #001e61, #00297e); /* Night blue sky gradient */
+            background: #667eea;
             min-height: 100vh;
-            padding-top: 60px;
-            font-family: 'Segoe UI', sans-serif;
-            color: #fff;
+            font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
+            color: #2d3748;
         }
 
         .container {
-            background-color: #fff;
-            color: #000;
+            background: rgba(255, 255, 255, 0.95);
+            backdrop-filter: blur(20px);
+            border-radius: 24px;
+            padding: 40px;
+            margin-top: 100px;
+            margin-bottom: 40px;
+            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
+            border: 1px solid rgba(255, 255, 255, 0.18);
+        }
+
+        .navbar {
+            background: rgba(17, 24, 39, 0.95) !important;
+            backdrop-filter: blur(20px);
+            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
+        }
+
+        .navbar-brand {
+            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
+            padding: 12px 24px !important;
+            border-radius: 12px !important;
+            border: none !important;
+            font-weight: 700 !important;
+            font-size: 1.8rem !important;
+            text-transform: uppercase;
+            letter-spacing: 2px;
+        }
+
+        .nav-link {
+            font-weight: 500;
+            padding: 8px 16px !important;
+            border-radius: 8px;
+        }
+
+        .page-title {
+            font-size: 2.5rem;
+            font-weight: 700;
+            color: #667eea;
+            margin-bottom: 3rem;
+            text-align: center;
+            position: relative;
+        }
+
+        .page-title::after {
+            content: '';
+            position: absolute;
+            bottom: -10px;
+            left: 50%;
+            transform: translateX(-50%);
+            width: 100px;
+            height: 4px;
+            background: #667eea;
+            border-radius: 2px;
+        }
+
+        .report-section {
+            margin-bottom: 4rem;
+        }
+
+        .section-header {
+            display: flex;
+            align-items: center;
+            margin-bottom: 2rem;
+            padding: 20px;
+            border-radius: 16px;
+            border-left: 5px solid;
+        }
+
+        .criminal-header {
+            border-left-color: #ef4444;
+            background: rgba(239, 68, 68, 0.1);
+        }
+
+        .academic-header {
+            border-left-color: #10b981;
+            background: rgba(16, 185, 129, 0.1);
+        }
+
+        .employment-header {
+            border-left-color: #3b82f6;
+            background: rgba(59, 130, 246, 0.1);
+        }
+
+        .medical-header {
+            border-left-color: #f59e0b;
+            background: rgba(245, 158, 11, 0.1);
+        }
+
+        .section-icon {
+            font-size: 2rem;
+            margin-right: 1rem;
+            padding: 12px;
             border-radius: 12px;
-            padding: 30px;
-            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
-        }
-
-        h2, h4 {
-            color: #2c3e50;
-        }
-
-        .report-section {
-            margin-bottom: 50px;
-        }
-
-        h5 {
-            color: #e74c3c;
+            background: rgba(255, 255, 255, 0.9);
+            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
+        }
+
+        .criminal-icon {
+            color: #ef4444;
+        }
+
+        .academic-icon {
+            color: #10b981;
+        }
+
+        .employment-icon {
+            color: #3b82f6;
+        }
+
+        .medical-icon {
+            color: #f59e0b;
+        }
+
+        .section-title {
+            font-size: 1.8rem;
+            font-weight: 700;
+            color: #1f2937;
+        }
+
+        .fancy-table {
+            border-radius: 16px;
+            overflow: hidden;
+            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
+            border: 1px solid rgba(0, 0, 0, 0.05);
+            background: white;
+            margin-bottom: 2rem;
+            border-collapse: separate;
+            border-spacing: 0;
+            width: 100%;
+        }
+
+        .fancy-table thead {
+            background: #1f2937;
+        }
+
+        .fancy-table thead th {
+            color: white !important;
+            font-weight: 600 !important;
+            padding: 16px !important;
+            border: none !important;
+            font-size: 0.9rem !important;
+            text-transform: uppercase !important;
+            letter-spacing: 0.5px !important;
+            text-align: left !important;
+            vertical-align: middle !important;
+            background: inherit !important;
+        }
+
+        .fancy-table tbody tr {
+            border-bottom: 1px solid #f3f4f6;
+            background: white;
+        }
+
+        .fancy-table tbody tr:nth-child(even) {
+            background: rgba(248, 249, 250, 0.5);
+        }
+
+        .fancy-table tbody td {
+            padding: 16px !important;
+            border: none !important;
+            vertical-align: middle !important;
+            background: inherit;
+        }
+
+        .criminal-table thead,
+        .criminal-table thead th {
+            background: #dc2626 !important;
+            color: white !important;
+        }
+
+        .academic-table thead,
+        .academic-table thead th {
+            background: #059669 !important;
+            color: white !important;
+        }
+
+        .employment-table thead,
+        .employment-table thead th {
+            background: #2563eb !important;
+            color: white !important;
+        }
+
+        .medical-table thead,
+        .medical-table thead th {
+            background: #d97706 !important;
+            color: white !important;
+        }
+
+        .no-data {
+            text-align: center;
+            padding: 3rem;
+            background: linear-gradient(135deg, rgba(156, 163, 175, 0.1) 0%, rgba(156, 163, 175, 0.05) 100%);
+            border-radius: 16px;
+            border: 2px dashed #d1d5db;
+        }
+
+        .no-data-icon {
+            font-size: 3rem;
+            color: #9ca3af;
+            margin-bottom: 1rem;
+        }
+
+        .no-data-text {
+            color: #6b7280;
+            font-size: 1.1rem;
             font-style: italic;
         }
 
-        table {
-            border-radius: 8px;
+        .statistics-section {
+            background: rgba(102, 126, 234, 0.05);
+            border-radius: 20px;
+            padding: 3rem;
+            margin: 3rem 0;
+            border: 1px solid rgba(102, 126, 234, 0.1);
+        }
+
+        .statistics-title {
+            font-size: 2rem;
+            font-weight: 700;
+            text-align: center;
+            margin-bottom: 3rem;
+            color: #1f2937;
+        }
+
+        .stats-grid {
+            display: grid;
+            grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
+            gap: 2rem;
+        }
+
+        .stat-card {
+            background: white;
+            border-radius: 16px;
+            padding: 2rem;
+            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
+            border: 1px solid rgba(0, 0, 0, 0.05);
+            position: relative;
             overflow: hidden;
         }
 
+        .stat-card::before {
+            content: '';
+            position: absolute;
+            top: 0;
+            left: 0;
+            right: 0;
+            height: 4px;
+            background: #667eea;
+        }
+
+        .stat-card-title {
+            font-size: 1.2rem;
+            font-weight: 600;
+            color: #1f2937;
+            margin-bottom: 1.5rem;
+            text-align: center;
+        }
+
+        .stat-row {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            padding: 12px 0;
+            border-bottom: 1px solid #f3f4f6;
+        }
+
+        .stat-row:last-child {
+            border-bottom: none;
+        }
+
+        .stat-label {
+            font-weight: 500;
+            color: #6b7280;
+        }
+
+        .stat-value {
+            font-weight: 700;
+            color: #667eea;
+        }
+
+        .back-button {
+            background: #667eea;
+            border: none;
+            color: white;
+            padding: 12px 32px;
+            border-radius: 12px;
+            font-weight: 600;
+            text-decoration: none;
+            display: inline-flex;
+            align-items: center;
+            gap: 8px;
+            box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
+        }
+
+        .back-button:hover {
+            color: white;
+        }
+
+        @media (max-width: 768px) {
+            .container {
+                padding: 20px;
+                margin-top: 80px;
+            }
+
+            .page-title {
+                font-size: 2rem;
+            }
+
+            .section-title {
+                font-size: 1.5rem;
+            }
+
+            .stats-grid {
+                grid-template-columns: 1fr;
+            }
+
+            .section-header {
+                flex-direction: column;
+                text-align: center;
+            }
+
+            .section-icon {
+                margin-right: 0;
+                margin-bottom: 1rem;
+            }
+        }
     </style>
 </head>
 <body>
+<nav class="navbar navbar-expand-lg fixed-top">
+    <div class="container-fluid">
+        <a class="navbar-brand" th:href="@{/}">
+            <i class="fas fa-chart-line me-2"></i>
+            Reportium
+        </a>
+        <button class="navbar-toggler" type="button" data-bs-toggle="collapse"
+                data-bs-target="#navbarContent" aria-controls="navbarContent"
+                aria-expanded="false" aria-label="Toggle navigation">
+            <span class="navbar-toggler-icon"></span>
+        </button>
+        <div class="collapse navbar-collapse justify-content-end" id="navbarContent">
+            <ul class="navbar-nav">
+                <li class="nav-item">
+                    <a class="nav-link text-success" th:href="@{/reports}"><i class="bi bi-person-lines-fill"></i>All
+                        Reports</a>
+                </li>
+                <li class="nav-item" sec:authorize="hasRole('ROLE_ADMIN')">
+                    <a class="nav-link text-info" th:href="@{/profiles}"><i class="bi bi-people-fill"></i>Users</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link text-danger" th:href="@{/logout}"><i
+                            class="bi bi-door-closed-fill"></i>Logout</a>
+                </li>
+            </ul>
+        </div>
+    </div>
+</nav>
+
 <div class="container">
-    <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
-        <div class="container-fluid">
-            <a class="navbar-brand fw-bold px-3 py-2 rounded-2 text-white"
-               th:href="@{/}"
-               style="background: linear-gradient(to right, #003366, #004080);
-          border-left: 5px solid #FFD700;
-          font-size: 1.5rem;
-          box-shadow: 0 0 5px rgba(0,0,0,0.2);
-          letter-spacing: 1px;">
-                <span style="color: #FFD700;">R</span>eportium
-            </a>
-            <button class="navbar-toggler" type="button" data-bs-toggle="collapse"
-                    data-bs-target="#navbarContent" aria-controls="navbarContent"
-                    aria-expanded="false" aria-label="Toggle navigation">
-                <span class="navbar-toggler-icon"></span>
-            </button>
-            <div class="collapse navbar-collapse justify-content-end" id="navbarContent">
-                <ul class="navbar-nav mb-2 mb-lg-0">
-                    <li class="nav-item">
-                        <a class="nav-link" th:href="@{/reports}">All Reports</a>
-                    </li>
-                    <li class="nav-item" sec:authorize="hasRole('ROLE_ADMIN')">
-                        <a class="nav-link text-info" th:href="@{/profiles}">Users</a>
-                    </li>
-                    <li class="nav-item">
-                        <a class="nav-link text-danger" th:href="@{/logout}">Logout</a>
-                    </li>
-                </ul>
-            </div>
-        </div>
-    </nav>
-
-    <h2 th:text="'Reports for ' + ${person.name} + ' ' + ${person.surname}"></h2>
+    <!-- Page Title -->
+    <h1 class="page-title" th:text="'Reports for ' + ${person.name} + ' ' + ${person.surname}">
+        Reports for Person
+    </h1>
 
     <!-- Criminal Reports -->
     <div class="report-section">
-        <h4>Criminal Reports—(total --> <span class="badge bg-secondary-subtle text-dark"
-                                              th:text="${criminal_reports.size()}"></span>)</h4>
+        <div class="section-header criminal-header">
+            <div class="section-icon criminal-icon">
+                <i class="fas fa-gavel"></i>
+            </div>
+            <div>
+                <h2 class="section-title">Criminal Reports</h2>
+                <p class="mb-0 text-muted">Legal proceedings and criminal activity records</p>
+            </div>
+        </div>
+
         <div th:if="${#lists.isEmpty(criminal_reports)}">
-            <h5 th:text="'No criminal report exists for ' + ${person.name} + ' ' + ${person.surname}"></h5>
-        </div>
+            <div class="no-data">
+                <i class="fas fa-shield-alt no-data-icon"></i>
+                <div class="no-data-text"
+                     th:text="'No criminal reports found for ' + ${person.name} + ' ' + ${person.surname}">
+                    No criminal reports found
+                </div>
+            </div>
+        </div>
+
         <div th:unless="${#lists.isEmpty(criminal_reports)}">
-            <table class="table table-bordered table-warning text-center">
+            <table class="table fancy-table criminal-table">
                 <thead>
                 <tr>
@@ -93,12 +415,19 @@
                     <th>Resolved</th>
                     <th>Severity</th>
-                    <th>Description of Punishment</th>
+                    <th>Punishment</th>
                 </tr>
                 </thead>
                 <tbody>
                 <tr th:each="report : ${criminal_reports}">
-                    <td th:text="${report.reportId}"></td>
+                    <td><strong th:text="${report.reportId}"></strong></td>
                     <td th:text="${report.label}"></td>
-                    <td th:text="${report.resolved} ? 'Yes' : 'No'"></td>
+                    <td>
+                                <span th:if="${report.resolved}" class="badge bg-success">
+                                    <i class="fas fa-check me-1"></i>Yes
+                                </span>
+                        <span th:unless="${report.resolved}" class="badge bg-warning">
+                                    <i class="fas fa-clock me-1"></i>No
+                                </span>
+                    </td>
                     <td th:text="${report.severityLevel}"></td>
                     <td th:text="${report.descriptivePunishment}"></td>
@@ -111,11 +440,26 @@
     <!-- Academic Reports -->
     <div class="report-section">
-        <h4>Academic Reports—(total --> <span class="badge bg-secondary-subtle text-dark"
-                                              th:text="${academic_reports.size()}"></span>)</h4>
+        <div class="section-header academic-header">
+            <div class="section-icon academic-icon">
+                <i class="fas fa-graduation-cap"></i>
+            </div>
+            <div>
+                <h2 class="section-title">Academic Reports</h2>
+                <p class="mb-0 text-muted">Educational achievements and academic history</p>
+            </div>
+        </div>
+
         <div th:if="${#lists.isEmpty(academic_reports)}">
-            <h5 th:text="'No academic report exists for ' + ${person.name} + ' ' + ${person.surname}"></h5>
-        </div>
+            <div class="no-data">
+                <i class="fas fa-book no-data-icon"></i>
+                <div class="no-data-text"
+                     th:text="'No academic reports found for ' + ${person.name} + ' ' + ${person.surname}">
+                    No academic reports found
+                </div>
+            </div>
+        </div>
+
         <div th:unless="${#lists.isEmpty(academic_reports)}">
-            <table class="table table-bordered table-success">
+            <table class="table fancy-table academic-table">
                 <thead>
                 <tr>
@@ -124,14 +468,15 @@
                     <th>Field</th>
                     <th>Institution</th>
-                    <th>Institution Address</th>
-                    <th>Established At</th>
+                    <th>Address</th>
+                    <th>Established</th>
                 </tr>
                 </thead>
                 <tbody>
-
                 <tr th:each="report : ${academic_reports}">
-                    <td th:text="${report.reportId}"></td>
+                    <td><strong th:text="${report.reportId}"></strong></td>
                     <td th:text="${report.descriptionOfReport}"></td>
-                    <td th:text="${report.academicField}"></td>
+                    <td>
+                        <span class="badge bg-primary" th:text="${report.academicField}"></span>
+                    </td>
                     <td th:text="${report.institutionName} + ' - ' + ${report.institutionType}"></td>
                     <td th:text="${report.institutionAddress}"></td>
@@ -145,16 +490,31 @@
     <!-- Employment Reports -->
     <div class="report-section">
-        <h4>Employment Reports—(total --> <span class="badge bg-secondary-subtle text-dark"
-                                                th:text="${employment_reports.size()}"></span>)</h4>
+        <div class="section-header employment-header">
+            <div class="section-icon employment-icon">
+                <i class="fas fa-briefcase"></i>
+            </div>
+            <div>
+                <h2 class="section-title">Employment Reports</h2>
+                <p class="mb-0 text-muted">Professional work history and employment records</p>
+            </div>
+        </div>
+
         <div th:if="${#lists.isEmpty(employment_reports)}">
-            <h5 th:text="'No employment report exists for ' + ${person.name} + ' ' + ${person.surname}"></h5>
-        </div>
+            <div class="no-data">
+                <i class="fas fa-building no-data-icon"></i>
+                <div class="no-data-text"
+                     th:text="'No employment reports found for ' + ${person.name} + ' ' + ${person.surname}">
+                    No employment reports found
+                </div>
+            </div>
+        </div>
+
         <div th:unless="${#lists.isEmpty(employment_reports)}">
-            <table class="table table-bordered table-info">
+            <table class="table fancy-table employment-table">
                 <thead>
                 <tr>
                     <th>Report ID</th>
                     <th>Job Role</th>
-                    <th>Start Date</th>
+                    <th>Duration</th>
                     <th>Income</th>
                     <th>Summary</th>
@@ -163,9 +523,11 @@
                 <tbody>
                 <tr th:each="report : ${employment_reports}">
-                    <td th:text="${report.reportId}"></td>
+                    <td><strong th:text="${report.reportId}"></strong></td>
                     <td th:text="${report.jobRole}"></td>
-                    <td th:text="${#temporals.format(report.startDate, 'dd.MM.yyyy') + ' - ' + (report.endDate != null ? #temporals.format(report.endDate, 'dd.MM.yyyy') : 'Still working there')}"></td>
-                    <td><span class="fst-italic"
-                              th:text="|${report.incomePerMonth} euros (${#numbers.formatDecimal(report.incomePerMonth * 61.5, 0, 2)} denars)|"></span>
+                    <td th:text="${#temporals.format(report.startDate, 'dd.MM.yyyy') + ' - ' + (report.endDate != null ? #temporals.format(report.endDate, 'dd.MM.yyyy') : 'Present')}"></td>
+                    <td>
+                        <div class="fw-bold text-success" th:text="${report.incomePerMonth} + ' €'"></div>
+                        <small class="text-muted"
+                               th:text="${#numbers.formatDecimal(report.incomePerMonth * 61.5, 0, 2)} + ' MKD'"></small>
                     </td>
                     <td th:text="${report.summary}"></td>
@@ -178,11 +540,26 @@
     <!-- Medical Reports -->
     <div class="report-section">
-        <h4>Medical Reports—(total --> <span class="badge bg-secondary-subtle text-dark"
-                                             th:text="${medical_reports.size()}"></span>)</h4>
+        <div class="section-header medical-header">
+            <div class="section-icon medical-icon">
+                <i class="fas fa-heartbeat"></i>
+            </div>
+            <div>
+                <h2 class="section-title">Medical Reports</h2>
+                <p class="mb-0 text-muted">Health records and medical history</p>
+            </div>
+        </div>
+
         <div th:if="${#lists.isEmpty(medical_reports)}">
-            <h5 th:text="'No medical report exists for ' + ${person.name} + ' ' + ${person.surname}"></h5>
-        </div>
+            <div class="no-data">
+                <i class="fas fa-stethoscope no-data-icon"></i>
+                <div class="no-data-text"
+                     th:text="'No medical reports found for ' + ${person.name} + ' ' + ${person.surname}">
+                    No medical reports found
+                </div>
+            </div>
+        </div>
+
         <div th:unless="${#lists.isEmpty(medical_reports)}">
-            <table class="table table-bordered table-danger">
+            <table class="table fancy-table medical-table">
                 <thead>
                 <tr>
@@ -191,20 +568,31 @@
                     <th>Next Control</th>
                     <th>Summary</th>
-                    <th>Diagnosis Description</th>
+                    <th>Diagnosis</th>
                     <th>Therapy</th>
                     <th>Severity</th>
-                    <th>Is it Chronic</th>
+                    <th>Chronic</th>
                 </tr>
                 </thead>
                 <tbody>
                 <tr th:each="report : ${medical_reports}">
-                    <td th:text="${report.reportId}"></td>
-                    <td th:text="${'Dr. ' + report.doctorName + ' ' + report.doctorSurname}">Doctor Name</td>
+                    <td><strong th:text="${report.reportId}"></strong></td>
+                    <td th:text="'Dr. ' + ${report.doctorName} + ' ' + ${report.doctorSurname}"></td>
                     <td th:text="${report.nextControlDate != null ? #temporals.format(report.nextControlDate, 'dd.MM.yyyy') : 'Not scheduled'}"></td>
                     <td th:text="${report.summary}"></td>
-                    <td th:text="${report.shortDescription} ? ${report.shortDescription} : 'no diagnosis given'"></td>
-                    <td th:text="${report.therapy} ? ${report.therapy} : 'no diagnosis given'"></td>
-                    <td th:text="${report.severity} ? ${report.severity.name()} : 'no diagnosis given'"></td>
-                    <td th:text="${report.isChronic} ? 'Yes' : 'No'"></td>
+                    <td th:text="${report.shortDescription ?: 'No diagnosis given'}"></td>
+                    <td th:text="${report.therapy ?: 'No therapy prescribed'}"></td>
+                    <td>
+                        <span th:if="${report.severity}" class="badge bg-warning"
+                              th:text="${report.severity.name()}"></span>
+                        <span th:unless="${report.severity}" class="badge bg-secondary">Not specified</span>
+                    </td>
+                    <td>
+                                <span th:if="${report.isChronic}" class="badge bg-danger">
+                                    <i class="fas fa-exclamation-triangle me-1"></i>Yes
+                                </span>
+                        <span th:unless="${report.isChronic}" class="badge bg-success">
+                                    <i class="fas fa-check me-1"></i>No
+                                </span>
+                    </td>
                 </tr>
                 </tbody>
@@ -212,7 +600,129 @@
         </div>
     </div>
-    <a th:href="@{/}" class="btn btn-secondary">Back to Dashboard</a>
-
+
+    <!-- Statistics Section -->
+    <div class="statistics-section">
+        <h2 class="statistics-title">
+            <i class="fas fa-chart-bar me-3"></i>
+            Report Summary Statistics
+        </h2>
+
+        <div class="stats-grid">
+            <!-- General Statistics -->
+            <div class="stat-card">
+                <h3 class="stat-card-title">
+                    <i class="fas fa-chart-pie me-2"></i>General Overview
+                </h3>
+                <div class="stat-row">
+                    <span class="stat-label">Total Reports</span>
+                    <span class="stat-value" th:text="${statistics.totalReportsFound ?: 'N/A'}">0</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">First Report Date</span>
+                    <span class="stat-value" th:text="${statistics.firstReportOfPerson ?: 'N/A'}">N/A</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">Latest Report Date</span>
+                    <span class="stat-value" th:text="${statistics.latestReportOfPerson ?: 'N/A'}">N/A</span>
+                </div>
+            </div>
+
+            <!-- Academic Statistics -->
+            <div class="stat-card">
+                <h3 class="stat-card-title">
+                    <i class="fas fa-graduation-cap me-2"></i>Academic Summary
+                </h3>
+                <div class="stat-row">
+                    <span class="stat-label">Total Academic Reports</span>
+                    <span class="stat-value" th:text="${statistics.academicTotal ?: 'N/A'}">0</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">Most Common Field</span>
+                    <span class="stat-value" th:text="${statistics.mostCommonField ?: 'N/A'}">N/A</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">Education Path</span>
+                    <span class="stat-value" th:text="${statistics.educationPath ?: 'N/A'}">N/A</span>
+                </div>
+            </div>
+
+            <!-- Employment Statistics -->
+            <div class="stat-card">
+                <h3 class="stat-card-title">
+                    <i class="fas fa-briefcase me-2"></i>Employment Summary
+                </h3>
+                <div class="stat-row">
+                    <span class="stat-label">Total Jobs</span>
+                    <span class="stat-value" th:text="${statistics.jobCount ?: 'N/A'}">0</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">Total Working Days</span>
+                    <span class="stat-value" th:text="${statistics.totalWorkingInDays ?: 'N/A'}">N/A</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">Total Working Months</span>
+                    <span class="stat-value" th:text="${statistics.totalWorkingInMonths ?: 'N/A'}">N/A</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">Total Working Years</span>
+                    <span class="stat-value" th:text="${statistics.totalWorkingInYears ?: 'N/A'}">N/A</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">Longest Job (days)</span>
+                    <span class="stat-value" th:text="${statistics.longestJobDays ?: 'N/A'}">N/A</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">Max Monthly Income</span>
+                    <span class="stat-value"
+                          th:text="${statistics.maxIncomeFromJob != null ? statistics.maxIncomeFromJob + ' €' : 'N/A'}">N/A</span>
+                </div>
+            </div>
+
+            <!-- Medical Statistics -->
+            <div class="stat-card">
+                <h3 class="stat-card-title">
+                    <i class="fas fa-heartbeat me-2"></i>Medical Summary
+                </h3>
+                <div class="stat-row">
+                    <span class="stat-label">Total Diagnoses</span>
+                    <span class="stat-value" th:text="${statistics.diagnosisTotal ?: 'N/A'}">0</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">Chronic Condition Ratio</span>
+                    <span class="stat-value" th:text="${statistics.chronicRatio ?: 'N/A'}">N/A</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">Most Frequent Diagnosis</span>
+                    <span class="stat-value" th:text="${statistics.mostFrequentDiagnosis ?: 'N/A'}">N/A</span>
+                </div>
+            </div>
+
+            <!-- Criminal Statistics -->
+            <div class="stat-card">
+                <h3 class="stat-card-title">
+                    <i class="fas fa-gavel me-2"></i>Criminal Summary
+                </h3>
+                <div class="stat-row">
+                    <span class="stat-label">Total Criminal Reports</span>
+                    <span class="stat-value" th:text="${statistics.criminalCaseTotal ?: 'N/A'}">0</span>
+                </div>
+                <div class="stat-row">
+                    <span class="stat-label">Resolution Ratio</span>
+                    <span class="stat-value" th:text="${statistics.resolutionRatio ?: 'N/A'}">N/A</span>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <!-- Back Button -->
+    <div class="text-center mt-4">
+        <a th:href="@{/}" class="back-button">
+            <i class="fas fa-arrow-left"></i>
+            Back to Dashboard
+        </a>
+    </div>
 </div>
+
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"></script>
 </body>
 </html>
