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:

Category
Examples

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:

1

Go to Settings in the left sidebar.

2

Under Business Mapping, open Organization Cost Center.

3

Switch to the Virtual Tags tab.

4

Click Create Virtual Tag.

5

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

6

Set the cost mapping values and conditions.

Learn how to Defining Values.

7

Click Create Virtual Tag (bottom right).

The tag is now created.

circle-exclamation

Note

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.

circle-info

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: ServiceOperator: IsValue: S3

  • Field: RegionOperator: IsValue: 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.

chevron-rightAvailable Fieldshashtag
Field
Description

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.

chevron-rightAvailable Operatorshashtag

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 In or Is Not In

  • Enter strings or substrings for operators like Contains and Starts With

You can continue adding more fields and conditions to refine how the tag applies.

circle-check

Verifying Resources

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

circle-info

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.

Status
What It Means

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.

circle-check

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

circle-check

Last updated