Why Spend Shows as Untagged
CloudYali can show resources that carry tags while reporting that none of the associated cost is tagged. Tag Coverage reads 0% tagged, the spend-by-value table is empty, and cost cannot be attributed to any tag key or value.
This is expected behaviour when tags have not been enabled for cost allocation at the provider. The two views are built from different data sources, and only one of them contains tags by default.
Resource scans and billing data
CloudYali reads tags from two independent sources.
Resource scans query the provider APIs directly and read tags from the live resource. Tag keys, tag values and the resources carrying them are available as soon as a scan completes.
Billing data is the cost export published by the provider: the Cost and Usage Report (CUR) in AWS, the usage cost export to BigQuery in GCP, and the usage records in Azure and Databricks. A tag appears in these exports only if the provider has been configured to include it. Most providers exclude tags by default.
Cost attribution is computed from billing data, because that is the only source that contains cost. When a tag is present on a resource but absent from the billing export, CloudYali can display the tag and the cost separately, but cannot attribute one to the other.
The configuration required to close this gap is applied once per provider, and in the case of AWS, once per tag key.
Activate tags for cost allocation
AWS
Activate each tag by name in Billing and Cost Management → Cost allocation tags.
- Tags applied to resources do not appear in the Cost and Usage Report until they are activated.
- Activation is not retroactive. Cost for periods before activation remains untagged; only billing data generated after activation carries the tag.
- Each tag key must be activated individually, including keys introduced after the initial configuration.
GCP
Labels are published through the detailed usage cost export to BigQuery.
- Verify that the detailed export is enabled for the billing account.
- The standard usage cost export does not include per-resource labels. Only the detailed export contains them.
Azure
Tags appear in cost data only for resource types that emit them to usage records.
- Cost Management → Settings → Tag inheritance applies subscription and resource-group tags to usage records that do not carry their own tags. This covers the majority of resource types that would otherwise report untagged.
- Resource types that do not emit tags to usage records continue to report as untagged unless tag inheritance is enabled.
Databricks
Custom tags must be set on the cluster, pool or SQL warehouse for them to appear on billable usage records. Tags applied elsewhere are not attached to billable usage and do not reach the usage table.
Expected behaviour after activation
Activation changes the billing data the provider generates from that point forward. It does not modify data already published.
- The provider begins including the tag on new billing records, typically from the next billing cycle.
- CloudYali ingests those records on its normal schedule.
- Tag Coverage, spend by tag value and cost-per-tag reports populate for periods after activation.
Periods before activation remain untagged permanently. Tag keys should therefore be activated as early as possible in the tagging programme.
Tags excluded from cost attribution
Tag keys beginning with aws: are generated by AWS rather than by the account
owner. CloudYali excludes them from spend-by-value because they describe
infrastructure provenance rather than ownership; a breakdown by aws:createdBy,
for example, attributes cost to the API caller rather than to a team. Values and
resources for these keys are still displayed; only the cost breakdown is withheld.
Some tag keys are also ineligible for cost allocation at the provider, typically
those that describe content rather than ownership, such as Content-Type.
Where this appears in CloudYali
| Screen | Observed behaviour |
|---|---|
| Tag Governance → Overview | Total cost is non-zero, Tagged cost is $0.00, and the coverage donut reads 0% tagged |
| Tag Governance → Tag Explorer | Values and resources are listed for a selected key, but Spend by value is empty |
| Tag Governance → Non-compliant resources | Empty, because compliance is evaluated against tags present in billing data |
In each case the resource-side figures are accurate. Only the cost breakdown is unavailable until tags are present in billing data.
Verification checklist
- Tags are applied to the resources, as confirmed by CloudYali's resource scans.
- Each tag key is activated for cost allocation in the provider console.
- For GCP, the detailed usage cost export to BigQuery is enabled.
- For Azure, tag inheritance is enabled.
- For Databricks, custom tags are set on the cluster, pool or SQL warehouse.
- At least one full billing cycle has elapsed since activation.