Virtual Tags
Overview
Virtual Tags in OneLens empower you to assign cost allocation logic beyond native AWS tagging. You can fill gaps where tags are missing, incorrectly applied, or entirely unsupported—so your financial reporting reflects your true business structure.
Whether you’re mapping untagged resources, allocating shared expenses, or grouping untaggable items like discounts and savings plans, Virtual Tags give you the flexibility to define cost your way.
What You Can Tag
You can use Virtual Tags to assign cost in the following scenarios:
Capture resources that should have been tagged but weren’t—due to human error, late tagging, or tag propagation issues.
Assign cost to resources that never had any tags applied.
Apply tags to services or line items that are not taggable through AWS-native methods.
Examples of untaggable services and line items:
Services
Data Transfer, RDS Backups
Line Items
Discounts, Credits, Savings Plans, Refunds, Reservations, Out-of-cycle Adjustments
How to Create a Virtual Tag
Follow the steps below to create your own Virtual Tags:
Go to Settings in the left sidebar.
Under Business Mapping, open Organization Cost Center.

Switch to the Virtual Tags tab.

Click Create Virtual Tag.

Enter a Key (name of the tag) and an optional Description. After that click Define Value at the bottom right.

Click Create Virtual Tag (bottom right).
The tag is now created.
Note
It takes up to 24 hours for cost data to sync with the tag.Once synced, you can start using the tag in Cost Analyzer to slice, filter, and group cost based on your custom logic.
Defining Values
When you create a Virtual Tag, you're essentially building your own rule-based cost mapping system. This lets you assign a value to specific resources—even if they have no native tags.
You do this by creating conditions that determine which resources get mapped to which tag value. Once the conditions are met, OneLens automatically maps the associated cost to that value—so you can track, report, and allocate cost in a way that aligns with how you view your business.
Example Usecase
For example:
If you run all S3 workloads for data analytics in the us-west-2 region, you can create a virtual tag value called Data Analytics - S3 and map it to:
Field:
Service→ Operator:Is→ Value:S3Field:
Region→ Operator:Is→ Value:us-west-2
All matching S3 charges will now be grouped under Data Analytics - S3—even if they weren’t tagged that way in AWS.

You can add multiple conditions to create fine-tuned cost mappings.
How to Set Conditions
Step 1: Choose Field
Select the attribute you want to match your condition against. Each field represents a dimension of the resource or billing data.
Available Fields
Account
The AWS account where the usage or cost originated.
Availability Zone
The specific AZ tied to the resource usage (e.g., us-east-1a).
Billing Entity
The cloud provider or billing group responsible for this cost.
Charge Type
The kind of charge (e.g., Usage, Refund, Credit).
Legal Entity
Your internal legal/financial entity associated with the resource.
Platform
The operating system or compute platform (e.g., EC2-Linux, EC2-Windows).
Purchase Option
The pricing model: On-Demand, Reserved Instance, or Savings Plan.
Region
The AWS region where the service was used.
Service
The AWS service generating the charge (e.g., S3, EC2, Lambda).
Tag
Any native tag key already applied to the resource.
Usage Type
The usage metric or billing category (e.g., BoxUsage, DataTransfer-Out-Bytes).
Step 2: Choose Operator
Operators define how the field value should match the input you provide.
Available Operators
Contains
Matches if the field includes the specified text.
Does Not Contain
Matches if the field excludes the specified text.
Starts With
Matches if the field begins with the specified text.
Does Not Start With
Matches if the field does not begin with the specified text.
In
Matches if the field is one of the listed values.
Is Not In
Matches if the field is not in the list of values.
Is Null
Matches if the field has no value.
Is Not Null
Matches if the field has any value (i.e., not empty).
Step 3: Enter Value
Provide the value(s) you want OneLens to match. You can:
Choose one or more values for operators like
InorIs Not InEnter strings or substrings for operators like
ContainsandStarts With
You can continue adding more fields and conditions to refine how the tag applies.
Verifying Resources
Once you’ve defined a value, OneLens lets you verify the resources that match the logic before finalizing. This helps ensure your mapping works as expected.

Step 3: Allocating Shared Costs
Virtual Tags can also be used to allocate shared costs like support charges, data transfer, or common infrastructure across business units. ➡️ Learn more about Shared Cost Allocation
Note
Allocating cost is optional—you can choose to use virtual tags purely for grouping or visibility purposes without impacting cost allocation.
Value Status Guide
Each value inside a Virtual Tag passes through a lifecycle status to help you track its readiness.
Not Defined
You’ve created the value, but no resources are mapped yet.
Defined
Resources have been mapped to the value, and associated costs are identified.
Allocated
The value is used in your cost hierarchy and cost is allocated accordingly.
A value is usable in Cost Analyzer as soon as it is Defined. Allocation is optional.
Managing Virtual Tags
All your created tags are listed in the Virtual Tags tab.
You can manage any tag using the menu on the right of each row:
Manage — Edit values, logic, or name.
Delete — Remove the tag if it's no longer needed

Once the tag has synced, a View in Cost Analyzer button appears. Clicking it will open a predefined view showing costs associated with the tag.
Last updated


