NAN% complaint under license usage ServiceNow
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-28-2025 04:29 AM
Hello Community,
I need help, I've run reconciliation. After completing reconciliation I'm seeing the compliance results showing as NAN% complaint under license usage servicenow. PFB SS FYR and What is the meaning of this NAN%? When I open publisher card it's completely empty (Second image). However, in the third image details are showing null but removal candidates are showing as 4.
Thank You,
Bharathi Patthi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-24-2025 09:36 AM
Please refer to the below KB ARTICLEs
KB0961819
KB 1665370
KB0961268
PRB1882921
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-24-2025 11:47 PM
Hi @PatthiBharathi ,
“NaN” stands for Not a Number, which usually appears when the system is expecting a numerical value but receives null or an undefined value instead. SAM Pro is unable to calculate compliance due to missing software entitlements, product mapping, or normalization gaps.
Here’s what might be going wrong:
1: Validate Discovery and Data Source Integration
Check whether software installation data is being received.
- Navigate to Discovery > Discovery Status (or your data source like SCCM/JAMF).
- Confirm that software installation records are coming into the system:
- Table: cmdb_sam_sw_install
- Check if installations exist for the relevant publisher.
If no installations are found, SAM cannot calculate compliance.
2: Check Software Model Normalization
ServiceNow uses software models to reconcile installations and entitlements.
- Go to Software Asset > Normalization > Software Installations.
- Filter by Normalization Status = Not Normalized.
- Click on a few records. Check:
- Is the Discovery model linked?
- Is there a software model associated?
- Does the software model have a publisher?
Fix:
- If missing, normalize the discovery model manually or review Content Library (plugin) is up to date.
- Use "Manage Software Models" to link software models if automatic normalization fails.
3: Confirm Software Models Have Valid Metrics
- Go to Software Models (cmdb_software_product_model).
- Open any model for the affected publisher.
- Confirm:
- Publisher field is set.
- License metric is defined (e.g., Per Device, Per User, Named User).
- Product classification is correct.
Without these, reconciliation logic won’t know how to measure usage vs. rights.
4: Check Software Entitlements
- Go to Software Asset > License Workbench > Software Entitlements.
- Filter by the affected publisher.
- Ensure:
- Software model is linked.
- Metric matches the software model.
- Quantity is populated.
Add entitlement if none exist, and ensure they map to normalized models.
5: Reconcile Software
Once the data is validated and corrected:
- Navigate to License Workbench > License Reconciliation.
- Click Run Reconciliation.
- Wait for the job to complete.
- Navigate back to License Usage > Publishers.
You should now see:
- % compliance updated (instead of NaN%)
- Compliant product counts
- True-up and over-licensed costs calculated
6: Review Logs if Still Empty
If the problem persists:
- Go to License Reconciliation > Reconciliation Runs.
- Open the latest run and view the Job Logs.
- Look for errors like:
- No entitlements found
- Software model mismatch
- No metric assigned
7: Review Removal Candidates
You have 4 removal candidates, which means: The system has detected software installations but can't associate them with valid entitlements.
Click Removal Candidates and:
- Check which software is listed
- See which software model or publisher is missing
8: Sample Test Entitlement Script:
(function() {
// ====== CONFIGURATION ======
var softwareModelName = "Microsoft Visio Professional 2024"; // Update this
var publisherName = "Microsoft"; // Update this
var entitlementQuantity = 50;
var licenseMetric = "Per Device"; // Must match existing metric options
// ====== LOOKUP SOFTWARE MODEL ======
var sm = new GlideRecord('cmdb_software_product_model');
sm.addQuery('name', softwareModelName);
sm.addQuery('publisher.name', publisherName);
sm.query();
if (!sm.next()) {
gs.error("Software model not found. Please check the name and publisher.");
return;
}
// ====== CREATE ENTITLEMENT ======
var entitlement = new GlideRecord('sam_entitlement');
entitlement.initialize();
entitlement.name = softwareModelName + " - Test Entitlement";
entitlement.software_model = sm.sys_id;
entitlement.metric = licenseMetric;
entitlement.license_type = "perpetual"; // or 'subscription'
entitlement.quantity = entitlementQuantity;
entitlement.license_rights_type = "full"; // 'full' for full license, 'upgrade' for upgrades
entitlement.status = "active";
entitlement.entitlement_type = "license"; // other option: 'right'
entitlement.vendor = publisherName;
entitlement.purchase_date = gs.nowDateTime(); // set today as purchase date
entitlement.insert();
gs.info("Test entitlement created successfully for: " + softwareModelName);
})();
How to Run This:
- Go to System Definition > Scripts - Background.
- Paste the script and click Run Script.
- Go to Software Entitlements and search for the new entitlement.
- Run License Reconciliation under License Workbench.
Regards,
Abhishek
Should my response prove helpful, please consider marking it as the Accepted Solution/Helpful to assist closing this thread.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-25-2025 06:21 AM
I just tested this on my instance and realized the information I shared earlier wasn’t accurate — some of the details I mentioned don't seem to apply as expected.
Apologies for the confusion. Please feel free to ignore my previous post for now — I’ll recheck everything and come back with a proper, verified response.
Thanks for your understanding.
Regards,
Abhishek
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-27-2025 09:45 AM
Found this, bad news for Yokohama users that upgrade every other releases. Awaiting some Yokohama updates after Zurich release (sometimes see fixed in earlier versions.)
SN Support KB2108200 - Publisher cards show NaN% Compliance in workspace
https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB2108200
RESOLUTION: This issue is fixed in Zurich release. Related Problem: PRB1882821
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a month ago
UPDATE: No longer seeing NAN% complaint under License Usage
We are now on Yokahama Patch 4 and my Software Asset Workspace > License Usage > widgets and seems to be fixed ahead of actually upgrading to Zurick.
Build tag: glide-yokohama-12-18-2024__patch4-05-14-2025