Skip to main content

Custom Cost Provider

Last updated on

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

  1. In Harness, go to Cloud & AI Cost Management > Account Settings > Integration for cloud & AI cost.
  2. Select the External Cost Data Sources tab.
  3. Click + Create New.
  4. Fill in the required details and upload your FOCUS CSV file.
  5. Click Finish. Ingestion starts immediately and data is usually available within a few minutes.

Supported Features

FeatureSupported
Perspectives
Budgets
Cost Categories
Dashboards
AnomaliesComing soon
Granular RBACComing soon
Audit TrailComing soon

Report Format

All uploads must follow the FOCUSv1 specification. The following fields are mandatory.

FieldDescriptionRequirements
BillingAccountIdProvider-assigned identifier for a billing account.MUST be present, type String, no nulls, globally unique within a provider.
BillingAccountNameDisplay name for the billing account.MUST be present, type String. MUST NOT be null when the provider supports display names.
BillingPeriodStartInclusive 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.
BillingPeriodEndExclusive end date and time of the billing period. Example: 2024-02-01T00:00:00Z.MUST be present, type Date/Time, exclusive, no nulls.
ChargeCategoryHighest-level classification of the charge.MUST be present, no nulls. Allowed values: Usage, Purchase, Tax, Credit, Adjustment.
ChargePeriodStartInclusive start date and time of the charge period.MUST be present, type Date/Time, inclusive, no nulls.
ChargePeriodEndExclusive end date and time of the charge period.MUST be present, type Date/Time, exclusive, no nulls.
ConsumedQuantityVolume of a metered SKU consumed.See FOCUSv1 spec for details.
EffectiveCostAmortized cost after discounts and prepaid purchases.MUST be present, type Decimal, no nulls. MUST be 0 when ChargeCategory is "Purchase" covering future charges.
ProviderNameEntity that makes resources or services available.MUST be present, type String, no nulls. Should match the ProviderType used when setting up the integration.
RegionNameDisplay 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.
ResourceIdIdentifier 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.
ServiceNameDisplay name for a purchasable offering (for example, a cloud VM or SaaS database).MUST be present, type String, no nulls.
SkuIdUnique 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").
SubAccountIdProvider-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.
SubAccountNameDisplay 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.
TagsTags assigned to tag sources for cost allocation.See FOCUSv1 spec for details.
note

For the complete specification, go to FOCUSv1 Specification.


FAQ

Are default Perspectives created automatically after upload?

Yes. Default Perspectives are created as soon as ingestion completes, usually within a few minutes of clicking Finish.

Which group-by options and filters are supported for custom cost data?

Custom cost data supports the same group-by and filter options as cloud cost data in Perspectives and Cost Explorer, including service, region, billing account, and any tags present in the uploaded file.

How long does it take for uploaded data to appear?

Ingestion starts immediately when you click Finish. Depending on file size, data is usually available within a few minutes.

My file is larger than 20 MB. What should I do?

Split the file into multiple CSV files under 20 MB each using a CSV splitting tool, then upload them separately.

I uploaded a file but data has not appeared after 10 minutes.

Contact Harness Support at https://support.harness.io with your account ID and the file details.