diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index 0dbb3f2..2ce2026 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -2106,37 +2106,41 @@
 
 
 def run_ledger_health_checks():
-	# run for last 1 month
-	period_end = getdate()
-	period_start = add_days(period_end, -100)
+	health_monitor_settings = frappe.get_doc("Ledger Health Monitor")
+	if health_monitor_settings.enable_health_monitor:
+		period_end = getdate()
+		period_start = add_days(period_end, -abs(health_monitor_settings.monitor_for_last_x_days))
 
-	run_date = get_datetime()
+		run_date = get_datetime()
 
-	# Debit-Credit mismatch report
-	voucher_wise = frappe.get_doc("Report", "Voucher-wise Balance")
+		# Debit-Credit mismatch report
+		if health_monitor_settings.debit_credit_mismatch:
+			voucher_wise = frappe.get_doc("Report", "Voucher-wise Balance")
+			filters = {"company": "நுண்ணறி", "from_date": period_start, "to_date": period_end}
 
-	# todo: company and dates should be configurable
-	filters = {"company": "நுண்ணறி", "from_date": period_start, "to_date": period_end}
+			res = voucher_wise.execute_script_report(filters=filters)
+			for x in res[1]:
+				doc = frappe.new_doc("Ledger Health")
+				doc.voucher_type = x.voucher_type
+				doc.voucher_no = x.voucher_no
+				doc.debit_credit_mismatch = True
+				doc.checked_on = run_date
+				doc.save()
 
-	res = voucher_wise.execute_script_report(filters=filters)
-	for x in res[1]:
-		doc = frappe.new_doc("Ledger Health")
-		doc.voucher_type = x.voucher_type
-		doc.voucher_no = x.voucher_no
-		doc.debit_credit_mismatch = True
-		doc.checked_on = run_date
-		doc.save()
+		# General Ledger and Payment Ledger discrepancy
+		if health_monitor_settings.general_and_payment_ledger_mismatch:
+			gl_pl_comparison = frappe.get_doc("Report", "General and Payment Ledger Comparison")
+			filters = {
+				"company": "நுண்ணறி",
+				"period_start_date": period_start,
+				"period_end_date": period_end,
+			}
+			res = gl_pl_comparison.execute_script_report(filters=filters)
 
-	# General Ledger and Payment Ledger discrepancy
-	gl_pl_comparison = frappe.get_doc("Report", "General and Payment Ledger Comparison")
-	# todo: company and dates should be configurable
-	filters = {"company": "நுண்ணறி", "period_start_date": period_start, "period_end_date": period_end}
-	res = gl_pl_comparison.execute_script_report(filters=filters)
-
-	for x in res[1]:
-		doc = frappe.new_doc("Ledger Health")
-		doc.voucher_type = x.voucher_type
-		doc.voucher_no = x.voucher_no
-		doc.general_and_payment_ledger_mismatch = True
-		doc.checked_on = run_date
-		doc.save()
+			for x in res[1]:
+				doc = frappe.new_doc("Ledger Health")
+				doc.voucher_type = x.voucher_type
+				doc.voucher_no = x.voucher_no
+				doc.general_and_payment_ledger_mismatch = True
+				doc.checked_on = run_date
+				doc.save()
