diff --git a/analysis_options.yaml b/analysis_options.yaml
index 2e349a87..81bdd00d 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -26,6 +26,7 @@ linter:
rules:
# avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
+ prefer_const_constructors: true
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
diff --git a/assets/icons/blank_calendar.svg b/assets/icons/blank_calendar.svg
new file mode 100644
index 00000000..ae5056a0
--- /dev/null
+++ b/assets/icons/blank_calendar.svg
@@ -0,0 +1,3 @@
+
diff --git a/lib/pages/analytics/helpers/format_number_to_kwh.dart b/lib/pages/analytics/helpers/format_number_to_kwh.dart
new file mode 100644
index 00000000..65789ada
--- /dev/null
+++ b/lib/pages/analytics/helpers/format_number_to_kwh.dart
@@ -0,0 +1,6 @@
+extension FormatNumberToKwh on num {
+ String get formatNumberToKwh {
+ final regExp = RegExp(r'(\d)(?=(\d{3})+$)');
+ return '${toStringAsFixed(0).replaceAllMapped(regExp, (match) => '${match[1]},')} kWh';
+ }
+}
diff --git a/lib/pages/analytics/helpers/get_month_name_from_int.dart b/lib/pages/analytics/helpers/get_month_name_from_int.dart
new file mode 100644
index 00000000..54b0fa87
--- /dev/null
+++ b/lib/pages/analytics/helpers/get_month_name_from_int.dart
@@ -0,0 +1,19 @@
+extension GetMonthNameFromNumber on num {
+ String get getMonthName {
+ return switch (this) {
+ 1 => 'JAN',
+ 2 => 'FEB',
+ 3 => 'MAR',
+ 4 => 'APR',
+ 5 => 'MAY',
+ 6 => 'JUN',
+ 7 => 'JUL',
+ 8 => 'AUG',
+ 9 => 'SEP',
+ 10 => 'OCT',
+ 11 => 'NOV',
+ 12 => 'DEC',
+ _ => 'N/A'
+ };
+ }
+}
\ No newline at end of file
diff --git a/lib/pages/analytics/models/device_energy_data_model.dart b/lib/pages/analytics/models/device_energy_data_model.dart
new file mode 100644
index 00000000..2bbb2a85
--- /dev/null
+++ b/lib/pages/analytics/models/device_energy_data_model.dart
@@ -0,0 +1,32 @@
+import 'package:equatable/equatable.dart';
+import 'package:flutter/widgets.dart';
+import 'package:syncrow_web/pages/analytics/models/energy_data_model.dart';
+
+class DeviceEnergyDataModel extends Equatable {
+ const DeviceEnergyDataModel({
+ required this.energy,
+ required this.deviceName,
+ required this.deviceId,
+ required this.color,
+ });
+
+ final List energy;
+ final String deviceName;
+ final String deviceId;
+ final Color color;
+
+ @override
+ List