Custom Cost Provider
Bring cost data from third-party vendors into Cloud & AI Cost Management using the FOCUS CSV format.
The Custom Cost Provider lets you bring cost data from any third-party vendor, such as SaaS tools, data centers, or cloud resellers, into Cloud & AI Cost Management (CACM). Once ingested, the data appears alongside your cloud and AI costs in Cost Explorer, Perspectives, Budgets, and Cost Categories.
You upload cost data in the FOCUS CSV format — a standard billing schema that maps any vendor's data into a consistent structure CACM can process.
Before You Begin
A Harness account with Cloud & AI Cost Management enabled.
Cost data from your vendor exported as a CSV file. Go to Report Format to review the required fields.
File size limit: 20 MB per upload. Split larger files before uploading.
Add a Custom Cost Source
In Harness, go to Cloud & AI Cost Management > Account Settings > Integration for cloud & AI cost.
Select the External Cost Data Sources tab.
Click + Create New.
Fill in the required details and upload your FOCUS CSV file.
Click Finish. Ingestion starts immediately and data is usually available within a few minutes.
Supported Features
Perspectives
✅
Budgets
✅
Cost Categories
✅
Dashboards
✅
Anomalies
Coming soon
Granular RBAC
Coming soon
Audit Trail
Coming soon
Report Format
All uploads must follow the FOCUSv1 specification. The following fields are mandatory.
BillingAccountId
Provider-assigned identifier for a billing account.
MUST be present, type String, no nulls, globally unique within a provider.
BillingAccountName
Display name for the billing account.
MUST be present, type String. MUST NOT be null when the provider supports display names.
BillingPeriodStart
Inclusive start date and time of the billing period. Example: 2024-01-01T00:00:00Z.
MUST be present, type Date/Time, inclusive, no nulls. Must match invoice month on upload.
BillingPeriodEnd
Exclusive end date and time of the billing period. Example: 2024-02-01T00:00:00Z.
MUST be present, type Date/Time, exclusive, no nulls.
ChargeCategory
Highest-level classification of the charge.
MUST be present, no nulls. Allowed values: Usage, Purchase, Tax, Credit, Adjustment.
ChargePeriodStart
Inclusive start date and time of the charge period.
MUST be present, type Date/Time, inclusive, no nulls.
ChargePeriodEnd
Exclusive end date and time of the charge period.
MUST be present, type Date/Time, exclusive, no nulls.
EffectiveCost
Amortized cost after discounts and prepaid purchases.
MUST be present, type Decimal, no nulls. MUST be 0 when ChargeCategory is "Purchase" covering future charges.
ProviderName
Entity that makes resources or services available.
MUST be present, type String, no nulls. Should match the ProviderType used when setting up the integration.
RegionName
Display name for the geographic area where the resource is provisioned.
MUST be present when the provider supports regions. Type String. MAY be null when the resource is not region-specific.
ResourceId
Identifier assigned to a resource by the provider.
MUST be present when the provider bills by resource. Type String. MAY be null when a row is not associated with a resource.
ServiceName
Display name for a purchasable offering (for example, a cloud VM or SaaS database).
MUST be present, type String, no nulls.
SkuId
Unique identifier for a SKU.
MUST be present when the provider publishes a SKU list. Type String. MUST NOT be null for Usage or Purchase charges (unless ChargeClass is "Correction").
SubAccountId
Provider-assigned identifier for a sub account.
MUST be present when the provider supports sub accounts. Type String. Null if the charge does not apply to a sub account.
SubAccountName
Display name for a sub account.
MUST be present when the provider supports sub accounts. Type String. Null if the charge does not apply to a sub account.
FAQ
Last updated
Was this helpful?