Is it possible to check the indicators where no scores have been collected
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wednesday
I'm working with Performance Analytics and need to identify indicators that have not collected any scores in the past 12 months.
From my understanding:
Scores are stored in the pa_scores ,pa_scores_l1, pa_scores_l2 tables only when data collection jobs run successfully and also there is no fields like scores in these tables which is very confusing and as of my knowledge Performance Analytics (PA) in ServiceNow relies on real-time score generation. Unlike transactional records stored in tables, PA scores are calculated dynamically based on indicator definitions, conditions, and breakdowns.
If no scores are collected, no records are created meaning there’s no direct way to query “missing” scores.
This makes it difficult to track indicators that appear inactive or misconfigured.
Any guidance or alternative approaches to check indicators with no scores
- Labels:
-
Indicators
-
Jobs
-
Performance Analytics
-
scores
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wednesday
Have you also considered the scenario that even though an automated indicator collect scores, that the scores are not utilized for anything and just adding to the database footprint?
I would go through the automated indicators, look at the job, look at the data collection to actually get an understanding for data population or not.
If my answer has helped with your question, please mark my answer as the accepted solution and give a thumbs up.
Best regards
Anders
Rising star 2024
MVP 2025
linkedIn: https://www.linkedin.com/in/andersskovbjerg/
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wednesday
Hey @SaiRahulGupS
Performance Analytics does store collected scores in tables such as pa_scores, pa_scores_l1, and pa_scores_l2. Therefore, one approach is to identify indicators that do not have any score records generated within the last 12 months.
For example:
var cutoff = new GlideDateTime();
cutoff.addMonthsUTC(-12);
var indGR = new GlideRecord('pa_indicators');
indGR.addActiveQuery();
indGR.query();
while (indGR.next()) {
var scoreGR = new GlideRecord('pa_scores');
scoreGR.addQuery('indicator', indGR.getUniqueValue());
scoreGR.addQuery('timestamp', '>=', cutoff);
scoreGR.setLimit(1);
scoreGR.query();
if (!scoreGR.hasNext()) {
gs.print(indGR.getDisplayValue('name') + ' - No scores collected in the last 12 months');
}
}
That said, before relying on this script, I would recommend verifying the actual date and indicator reference fields in your pa_scores table, as these can differ across releases.
Another option is to review the indicator metadata itself. Fields such as Last Collection, Collection Enabled, and Collection Status can often provide a quicker indication of whether an indicator is actively collecting data.
If the script returns no results, it typically means either:
- All active indicators have collected scores within the last 12 months.
- The score table uses different field names than those referenced in the script.
- Collection activity is better tracked through indicator metadata or PA collection job history in your instance.
I would start by inspecting a sample record in pa_scores and confirming the indicator reference field and score date field before building a large-scale report.
************************************************************************************************************************************
If this response helps, please mark it as Accept as Solution and Helpful.
Doing so helps others in the community and encourages me to keep contributing.
Regards
Vaishali Singh
Servicenow Developer
Linkedin - https://www.linkedin.com/in/vaishali-singh-2273361bb