diff --git a/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js
index 26c8684..6f4bbd5 100644
--- a/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js
+++ b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.js
@@ -77,5 +77,25 @@
 				year_filter.set_input(year_filter.df.default);
 			}
 		});
+	},
+	formatter: function(value, row, column, data, default_formatter) {
+		value = default_formatter(value, row, column, data);
+		const summarized_view = frappe.query_report.get_filter_value('summarized_view');
+		const group_by = frappe.query_report.get_filter_value('group_by');
+
+		if (!summarized_view) {
+			if ((group_by && column.colIndex > 3) || (!group_by && column.colIndex > 2)) {
+				if (value == 'P' || value == 'WFH')
+					value = "<span style='color:green'>" + value + "</span>";
+				else if (value == 'A')
+					value = "<span style='color:red'>" + value + "</span>";
+				else if (value == 'HD')
+					value = "<span style='color:orange'>" + value + "</span>";
+				else if (value == 'L')
+					value = "<span style='color:#318AD8'>" + value + "</span>";
+			}
+		}
+
+		return value;
 	}
 }
diff --git a/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
index c9d9aae..299b092 100644
--- a/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
+++ b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
@@ -15,13 +15,13 @@
 Filters = frappe._dict
 
 status_map = {
+	'Present': 'P',
 	'Absent': 'A',
 	'Half Day': 'HD',
-	'Holiday': 'H',
-	'Weekly Off': 'WO',
+	'Work From Home': 'WFH',
 	'On Leave': 'L',
-	'Present': 'P',
-	'Work From Home': 'WFH'
+	'Holiday': 'H',
+	'Weekly Off': 'WO'
 }
 
 day_abbr = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
@@ -38,9 +38,26 @@
 	if not data:
 		return columns, [], None, None
 
+	message = get_message() if not filters.summarized_view else ''
 	chart = get_chart_data(attendance_map, filters)
 
-	return columns, data, None, chart
+	return columns, data, message, chart
+
+
+def get_message() -> str:
+	message = ''
+	colors = ['green', 'red', 'orange', 'green', '#318AD8', '', '']
+
+	count = 0
+	for status, abbr in status_map.items():
+		message += f"""
+			<span style='border-left: 2px solid {colors[count]}; padding-right: 12px; padding-left: 5px; margin-right: 3px;'>
+				{status} - {abbr}
+			</span>
+		"""
+		count += 1
+
+	return message
 
 
 def get_columns(filters: Filters) -> List[Dict]:
@@ -492,7 +509,8 @@
 				{'name': 'Leave', 'values': leave},
 			]
 		},
-		'type': 'line'
+		'type': 'line',
+		'colors': ['red', 'green', 'blue'],
 	}
 
 	return chart
\ No newline at end of file
