Source
FOCUS 1.0 sample
Result rows
7
Status
Adapted to v1.0
Execution
PrecomputedRead-only
Result snapshot (UTC)
2026-10-11

Billed cost by service provider, host provider and invoice issuer, which separates direct cloud spend from marketplace resales (Datadog, Red Hat billed through AWS). InvoiceId does not exist in v1.0 and is dropped, so totals are per source rather than per invoice.

Column adaptations (4)
  • ServiceProviderName → publisher_name / provider_name: Use publisher_name when it differs from invoice_issuer_name (the sample marketplace sellers Datadog and Red Hat); otherwise the direct provider's v1.0 provider_name. Same convention as the other catalog entries.
  • HostProviderName → provider_name: provider_name for direct services and for Red Hat OpenShift Service on AWS (whose name establishes AWS as host); NULL for other marketplace sellers whose host v1.0 does not identify. Same convention as track-marketplace-purchases-across-providers.
  • InvoiceIssuerName → invoice_issuer_name: Same column in v1.0.
  • InvoiceId → : Not in FOCUS v1.0; omitted from the output and grouping.

Billed cost by source

Query results
Service provider nameHost provider nameInvoice issuer nameTotal billed cost
AWSAWSAmazon Web Services, Inc.$768.86
MicrosoftMicrosoftMicrosoft$567.21
Datadog Inc.–Amazon Web Services, Inc.$40.98
OracleOracleOracle$26.08
AWSAWSAmazon Web Services Canada, Inc.$12.97
AWSAWSAmazon Web Services EMEA SARL$7.37
Red Hat Inc.AWSAmazon Web Services, Inc.$3.42

7 rows. Scroll inside the table to see more.

Precomputed result

Inspect Postgres SQL and original FOCUS SQL

Postgres SQL, as run

select case when publisher_name is not null and publisher_name is distinct from invoice_issuer_name then publisher_name else provider_name end as service_provider_name,
       case when provider_name = 'AWS' and service_name = 'Red Hat OpenShift Service on AWS' then provider_name
            when (case when publisher_name is not null and publisher_name is distinct from invoice_issuer_name then publisher_name else provider_name end) <> provider_name then null::text
            else provider_name end as host_provider_name,
       invoice_issuer_name as invoice_issuer_name,
       sum(billed_cost) as total_billed_cost
from focus.cost_and_usage
where charge_period_start >= $1::timestamptz
  and charge_period_end < $2::timestamptz
group by 1, 2, 3
order by total_billed_cost desc nulls last, service_provider_name, host_provider_name nulls last, invoice_issuer_name nulls last
limit 500

Parameters: $1 = period_start, $2 = period_end

Original FOCUS SQL

SELECT 
    ServiceProviderName,
    HostProviderName,
    InvoiceIssuerName,
    InvoiceId,
    SUM(BilledCost) AS TotalBilledCost
FROM focus_data_table
WHERE ChargePeriodStart >= ? and ChargePeriodEnd  < ?
GROUP BY
    ServiceProviderName,
    HostProviderName,
    InvoiceIssuerName,
    InvoiceId

Columns used

Column names from the source use case.

  • Service Provider Name
  • Host Provider Name
  • Invoice Issuer Name
  • Invoice ID
  • Billed Cost
  • Charge Period Start
  • Charge Period End
Read the source on focus.finops.org ↗