OBLYTECH Logo
OBLYTECH Logo
Troubleshooting ServiceNow Cloud Cost Visibility: A Practical Guide
Home / Guides, Services and Solutions / IT Asset Management: Guides and Services / Cloud Cost Visibility: Guides and Services / Troubleshooting ServiceNow Cloud Cost Visibility: A Practical Guide

Troubleshooting ServiceNow Cloud Cost Visibility: A Practical Guide

Cloud Cost Visibility Troubleshooting Overview

Cloud Cost Visibility in ServiceNow aggregates cloud bills from AWS, Azure, GCP and shows spend across departments, projects, cost centers. When cloud costs seem inaccurate or missing, troubleshooting requires understanding the data pipeline: cloud providers send billing data, ServiceNow ingests it, calculates costs, and displays them in reports.

Symptom: Missing Cost Data for a Cloud Provider

Likely causes: the cloud provider connection is not configured, billing data export is not enabled, or integration is failing.

Where to look: navigate to Cloud Cost Visibility > Cost Sources and verify each provider is connected. For AWS: check if the Cost and Usage Report (CUR) is configured in AWS and being exported to S3. For Azure: verify the export is running and files are being delivered. Check the integration logs: many cost integrations log the last successful data import (date and record count). If the timestamp is old (days ago), the integration is not running or has failed.

Fix: verify credentials for each cloud provider are valid. AWS CUR requires S3 bucket and IAM role permissions; Azure requires storage account access. Re-authenticate or refresh credentials if they have expired. For scheduled integrations, check the schedule: is it set to daily? Has it run today? If not, verify the scheduler is enabled and has no errors. Manual integration trigger: most cost integrations allow a “Sync Now” button to import data immediately. Use it to test if the connection works.

Symptom: Cost Data Is Stale

Likely causes: the integration runs infrequently, or cloud providers are late delivering billing data.

Where to look: check the integration schedule. Cloud providers deliver billing data with a lag that varies by provider (today’s bill may take a while to reach ServiceNow). If your integration runs weekly (only on Mondays), cost data in ServiceNow is always behind reality by up to one full cycle. Check the last successful import timestamp: is it recent (close to the current day) or old? If old, diagnose the integration failure (see above). Check cloud provider status: some providers delay billing exports during maintenance or issues.

Fix: increase integration frequency. If currently weekly, change to daily. If daily, consider twice-daily or real-time (if the provider supports it). Be aware that more frequent integration means more API calls and potentially higher costs. Understand the delay: if your organization needs real-time cost visibility, be aware that’s not possible with cloud billing data; you might need real-time cloud provider dashboards as a supplement.

Symptom: Costs Seem Too High or Too Low

Likely causes: currency conversion issues, discounts not applied, or costs are allocated incorrectly.

Where to look: check the currency. Are costs in USD while your company uses EUR? If there is a currency mismatch, all costs will appear wrong. Check if reserved instances or savings plans are being accounted for. These typically reduce per-unit cost but require separate configuration in cost visibility. Check cost allocation rules: how are shared resources (shared storage, network) allocated to departments or projects? If allocation rules are missing, some departments see their true cost while others see reduced cost.

Fix: verify currency is set to your home currency. If you operate in multiple currencies, ensure costs are converted correctly (use the appropriate exchange rate). Configure discounts: if you have AWS reserved instances, set up the integration to fetch reservation data and apply discounts. For cost allocation, define rules: storage used by all departments is split equally, or split by department usage (if you have usage data to support it). Test with a known cost: take a cloud provider’s bill (e.g., AWS bill shows total an expected amount for the month) and verify ServiceNow shows the same. If it does not, investigate the difference.

Symptom: Costs Are Missing for Specific Services

Likely causes: specific cloud services are not being imported, tagging is incomplete, or filters are hiding data.

Where to look: check the integration configuration. Some integrations allow filtering by service type or region; if a filter excludes a service you care about, it will not appear in costs. For example, if you have a filter “exclude non-production environments” but forgot to tag a service as production, it will be filtered out. Check the cloud provider directly: does it show cost for that service? If the cloud provider does not show cost (e.g., no charges for a service), ServiceNow will not either.

Fix: verify the integration imports all services you care about. Remove filters that exclude relevant services. Ensure your cloud resources are properly tagged and those tags are visible to the cost integration (some tags are internal to AWS and not exported to billing). For missing services, check if they are billable (many cloud services have a free tier and do not appear in billing data until they exceed thresholds).

Symptom: Cost Allocation to Departments Does Not Match Reality

Likely causes: allocation rules are incomplete or incorrectly configured.

Where to look: navigate to Cloud Cost Visibility > Cost Allocation Rules. Review how costs are distributed: are shared resources split correctly? If you allocate by department tag, are all resources tagged? If allocation is missing for some resources (no rule covers them), those costs might be in an “unallocated” bucket or split equally among all departments (depending on configuration).

Fix: ensure all cloud resources have relevant tags (department, cost center, project). Configure allocation rules to match your cost structure. For shared resources (network bandwidth, shared databases), define how they are split (by team, by usage, equally). For resources with clear ownership (an EC2 instance owned by a department), allocate directly. Test allocation: pick a few resources and manually verify they are allocated correctly.

Symptom: Users Cannot Access Cost Reports or Dashboards

Likely causes: permission issues or dashboards are not configured.

Where to look: check user roles. In ServiceNow, cost visibility requires specific roles (often “cost_viewer” or “cost_admin”). Verify users have the role assigned. Check dashboard configuration: dashboards must be created and shared with users. If dashboards are not configured, users see nothing even if they have read access to cost data.

Fix: grant appropriate roles to users. For read-only access to reports, grant “cost_viewer” role. For administration (configuring integrations), grant “cost_admin” role. Create and configure dashboards for your organization (by department, by service, by project). Share dashboards with relevant user groups.

Sorting a problem into data, logic or presentation first

When a cost figure looks wrong, the first decision is where the fault sits. A bad number can come from the provider export, from an import that partly failed, from an allocation rule applied to the wrong records, or from a report that displays a correct figure in the wrong period. Each needs a different check, and fixing the wrong layer wastes days. Work from the bottom of the chain upward, and stop at the first layer that explains the symptom.

The reader here is the platform administrator or FinOps analyst on duty when a figure is challenged. It gives a triage order, a symptom table and the evidence to collect before escalating to the provider or to the vendor.

Working up the stack in a fixed order

  1. Confirm the period, currency and account scope of the figure being challenged, and compare it with the same scope in the provider’s own view.
  2. Check the timestamp of the last successful import for each affected account, not just the global status.
  3. Compare record counts for the period against the previous closed period to see whether a batch is missing.
  4. Check the allocation rules that apply to the affected records, including the rule order and any default bucket.
  5. Check the report or dashboard definition, including its filters, date basis and the user’s permissions.
  6. Only then consider a provider-side cause, such as a late or restated export.

What the symptom usually means

What you see What it usually means First check
One account has no records after a certain date The import for that account stopped or its credential failed Last successful import time and the service identity’s authentication log
Totals are close to the invoice but a few lines are missing A partial batch or a filter excluding a service category Record counts by service category against the provider’s breakdown
A team’s share jumped with no change in its resources A shared resource was reallocated, or a rule’s order changed The rule history and the last edit to any allocation rule
The same figure appears twice in a total A duplicate import or a restated export loaded alongside the original Duplicate check by provider line identifier
A user sees no data where a colleague does A permission or condition difference, not a data fault The user’s roles and the condition on the relevant access rule
A dashboard total differs from a list total Different date basis, currency or inclusion of credits The filter and date settings on both views

Evidence to collect before escalating

An escalation with the right evidence is resolved far faster than one that says the numbers look wrong. Collect the account identifiers, the period, the expected and actual totals, the record counts, the import log entries with their timestamps, and a few sample line identifiers with the provider figure beside each. Save the query or report definition used, since a changed filter is a common hidden cause.

When to stop troubleshooting and escalate

Escalate to the provider when the export itself is late, incomplete or restated after the period closed. Escalate to the platform vendor when the import logic or the calculation engine behaves inconsistently on identical input. Do not escalate when the cause is a rule you can read, a credential that has expired or a permission that was never granted, because those are faster to fix internally.

Why did last month’s total change after it was reported?

Usually because the provider restated a billing period or a credit arrived late. Compare the import timestamps with the report date. If the change is explained by a restatement, record it against the period rather than treating it as an error.

How do we know whether an import is partly failing?

Compare the record count for a closed period with the count from the first successful run. A stable total with a falling count often means lines are being merged or dropped, so check for duplicate keys in the import as well.

What should be logged after an incident?

The symptom, the layer where the cause was found, the fix, and the check that now prevents a repeat. A log written this way makes the next triage shorter.

For the design side of these checks, the integration patterns work is where each feed is set up, and the security and access design work is where the permissions behind the table are set. If the figures cannot be reconciled after these steps, the testing and acceptance checklist is the structured route for isolating the gap. For a broader look at reporting faults, see the article on reporting challenges.

Frequently asked questions

How often should cost data be imported?

Daily import is a common choice, since billing data from cloud providers arrives with a lag of its own. More frequent (hourly) import provides fresher data but consumes more API quota. Less frequent (weekly) is simpler but means cost data is a week old, which may be too stale for your reporting needs.

How do we handle multi-currency cloud costs?

Use the cloud provider's native reporting (which is in provider's currency) and set up currency conversion in ServiceNow. Specify the exchange rate or use automatic conversion (ServiceNow can fetch daily rates). Be aware that currency fluctuations will cause cost variations.

Can we show projected costs for the rest of the month?

Yes. Most cost visibility tools calculate run-rate: if you spent $X so far in the month, project daily average to month-end. This is helpful for budget monitoring but has limitations: cloud usage varies day-to-day (weekends differ from weekdays), and one-time costs skew the projection. Use projections as rough estimates, not precise forecasts.

Talk to Oblytech

Planning, running or fixing a ServiceNow programme? Tell us where you are and we will suggest a sensible next step.

Contact us