The Problem:

The CMDB Health Dashboard shows a Completeness percentage for a class, like 30%. When you go looking for that number in the CMDB Health tables, you can’t find it. Instead, cmdb_health_scorecard shows 70.

Neither number is wrong. They’re two sides of the same result.

Short answer:

cmdb_health_scorecard.score stores the failure percentage (70 means 7 out of 10 CIs failed). The CMDB Health Dashboard shows the pass percentage (30). They never match, but they always add up to 100.

The two tables involved:

cmdb_health_result: one row per failing CI, per sub-check. It only lists the CIs that failed. There’s no percentage in it.
cmdb_health_scorecard: one row per class per metric, with Total, Failed and Score. This is the table the dashboard reads.


Here's How I Proved it on my PDI

Step 1: Set up the check.

In CI Class Manager → Printing Hardware → Health → Completeness, I selected Asset tag and Serial number as recommended fields. For this class, a CI now counts as complete only when both fields are filled.

RaghavendraGund_0-1794685274427.png

Step 2: Create test data.

I created 10 test CIs in Printing Hardware:

  • 3 CIs have both fields filled (pass)
  • 7 CIs are missing one or both fields (fail)

     

RaghavendraGund_2-1794685623296.png

 

Step 3: Check cmdb_health_result

After the daily health job ran, this table had 7 rows, one for each failing CI.

Across those 7 CIs, 10 fields are missing in total, because three of them are missing both Asset tag and Serial number. If the table stored one row per missing field, there would be 10 rows. There are only 7, so this table counts failing CIs, not missing fields.

RaghavendraGund_3-1794685759312.png


Step 4: Check cmdb_health_scorecard
The Completeness row for Printing Hardware shows Total 10, Failed 7, Score 70.

RaghavendraGund_4-1794685911726.png

 

Step 5: Check the dashboard.
CMDB Workspace → Health Dashboard → Class → Printing Hardware shows Completeness 30% for 10 CIs, with the same evaluation timestamp as the scorecard row.
100 - 70 = 30

RaghavendraGund_5-1794686036607.png

 

Additional point: The Scorecard Keeps History

The health job runs daily. Each run writes new rows with Status = Complete, and the previous rows change to Historic. You can report on trends straight from cmdb_health_scorecard without Performance Analytics. Just convert the score first (100 − score) so the chart shows health, not failure.

RaghavendraGund_6-1794688830650.png

 

Things to watch for

  • In cmdb_health_result, the Metric column shows Recommended (or Required), not Completeness. Completeness is the overall score made up of those sub-checks.
  • Everything above applies with “Use legacy calculation methods” turned off on the dashboard (the default). With it on, the dashboard uses a weighted formula and the numbers won’t line up the same way.
  • Tested on Australia Release

Takeaway

If you build a report or alert on cmdb_health_scorecard.score, remember that a higher score is worse. Convert it with 100 − score before you show it to anyone.

If this helped, please mark it helpful, and feel free to ask questions in the comments. I hope this helps  developers who are new to CMDB.

Regards
Raghavendra G



Version history
Last update:
15m ago
Updated by:
Contributors