How CMDB Health Dashboard Scores Are Calculated — New and Legacy Scoring MethodsSummary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Starting with the Xanadu release, the CMDB Health Dashboard was redesigned and moved to the CMDB Workspace. As part of this redesign, the scoring methodology was changed from a weighted calculation to a simple pass/fail ratio. Both methods use the same backend data stored in the cmdb_health_scorecard table. The difference is entirely in how the failure counts are aggregated into the displayed percentage. The legacy Health Dashboard is deprecated and no longer supported. 1. KPI STRUCTURE AND SUB-METRICS The overall CMDB Health consists of three KPIs, each with its own sub-metrics: COMPLETENESS — Validates whether CIs have necessary data. Sub-metrics: Required — mandatory fields not populated, Recommended — recommended fields not populated CORRECTNESS — Validates accuracy and currency of CI data. Sub-metrics: Duplicate — CIs matching identification rules as duplicates, Orphan — CIs without required relationships,Staleness — CIs not updated within the staleness period COMPLIANCE — Validates whether CIs meet audit standards. Sub-metric: Audit — compares field values against compliance-type audits2. WHERE SCORES ARE STORED The scheduled health jobs evaluate CIs and store results in the table "cmdb_health_scorecard" Each sub-metric and parent KPI gets its own row with: failed — count of CIs that failed the check, total— count of CIs evaluated for that check, score— pre-computed failure rate (NOT the health percentage) The "score" column stores the FAILURE rate. The CMDB Workspace displays the inverse:Health % = 100 - score NOTE: For Compliance, since Audit is the only sub-metric, no separate parent "Compliance" row is stored. The "Audit" row is the Compliance score directly. The weights used by the legacy method are stored in table "cmdb_health_metric_pref" on column "weighted_average_contribution" 3. NEW METHOD (DEFAULT) — HOW IT CALCULATES The new method uses a simple ratio with no weighting: Step 1: The health job evaluates all CIs that pass health inclusion rules against each sub-metric.Step 2: The backend computes a failure rate: failure_rate = round(failed × 100 / total) Step 3: The Workspace displays the inverse: Health % = 100 - failure_rate Key characteristics:- No weighting between sub-metrics. All failures are pooled into a single ratio.- If total = 0 (no CIs evaluated), no score row is written. The Workspace displays N/A.- No overall aggregate score is computed across the three KPIs. Each KPI is displayed independently. Example (Completeness): Assume Failed = 121,000 and Total = 414,873 failure_rate = round(121,000 × 100 / 414,873) = round(29.17) = 29 Health % = 100 - 29 = 71% 4. LEGACY METHOD — HOW IT CALCULATES The legacy method calculates scores in two levels: Level 1: Individual KPI score (per KPI)Level 2: Overall score (across all three KPIs) LEVEL 1 — Individual KPI Score Step 1: Read the "failed" and "total" for each sub-metric from cmdb_health_scorecard (status = Complete).Step 2: Read the weight for each sub-metric from cmdb_health_metric_pref.Step 3: Calculate the pass rate for each sub-metric: pass_rate = (total - failed) / totalNote special case: If total = 0 (no CIs evaluated), the full weight is awarded. The sub-metric is treated as 100% healthy. Step 4: Multiply each pass rate by its weight: contribution = pass_rate × weightStep 5: Sum all contributions: KPI score = sum of all sub-metric contributions Step 6: Apply rounding: If score falls between 99 and 100 → display 99, If score falls between 0 and 1→ display 1 Otherwise → standard rounding Default sub-metric weights:Completeness: Required= 60, Recommended = 40Correctness: Duplicate = 40, Orphan= 30, Staleness = 30Compliance: Audit = 100 EXAMPLE: COMPLETENES Assume data from cmdb_health_scorecard: Required:failed = 120,047 total = 414,873Recommended: failed = 42,436 total = 384,572Weights from cmdb_health_metric_pref:Required: 60 Recommended: 40 Calculation: Required pass rate= (414,873 - 120,047) / 414,873 = 294,826 / 414,873 = 0.7107(71.07% of CIs passed)Recommended pass rate = (384,572 - 42,436) / 384,572 = 342,136 / 384,572 = 0.8897(88.97% of CIs passed)Required contribution= 0.7107 × 60 = 42.64Recommended contribution = 0.8897 × 40 = 35.59 Completeness = round(42.64 + 35.59) = round(78.23) = 78% similar for CORRECTNESS and COMPLIANCE LEVEL 2 — Overall Score The three KPI scores are combined using parent-level weights from cmdb_health_metric_pref: Completeness: parent weight = 34Correctness:parent weight = 33Compliance: parent weight = 33 Formula:Overall = (completeness_weight × completeness_score / 100) + (correctness_weight× correctness_score/ 100) + (compliance_weight × compliance_score/ 100) Example:Completeness contribution = 34 × 78 / 100 = 26.52Correctness contribution= 33 × 79 / 100 = 26.07Compliance contribution = 33 × 3/ 100 =0.99 Overall = round(26.52 + 26.07 + 0.99) = round(53.58) = 54% NOTE: The overall score is only computed in the legacy method. The new (default) method does not produce an overall score — it displays the three KPIs independently. 5. KEY TABLES REFERENCE cmdb_health_scorecard: Stores computed scores per KPI, per class, per job run. Key columns: class, metric, failed, total, score, status. Filter status = Complete for current active scores. cmdb_health_result: Stores individual CI-level failure records (which specific CIs failed which metric). cmdb_health_metric_pref:Stores weight configuration per sub-metric and parent KPI. Key column: weighted_average_contribution. cmdb_health_scorecard_group_threshold:Stores color-coding thresholds (Best / At Risk / Critical).Default: upper = 67, lower = 33.NOTE: These thresholds affect color display only. They do NOT affect score calculation in either method.