Skip to main content

Cost visibility

You cannot optimise what you cannot attribute. Cost visibility is the prerequisite for every FinOps conversation — right-sizing, commitment planning, and the decision about whether an architecture is worth its bill.

Why it is a delivery concern​

Cost is an architectural property. Instance sizing, data transfer paths, storage class, retention and idle capacity are all decided during design. A cost review after launch finds the decisions that were expensive; a cost practice during design avoids them.

Cost visibility supports four questions:

  1. What are we spending? By service, account, environment and tag.
  2. Who owns it? Chargeback or showback to the team that can change it.
  3. What is waste? Idle, oversized, orphaned, or retained past usefulness.
  4. What is the trend? Growth that will breach the budget before it does.

Data foundation​

LayerRequirement
Cost and Usage ReportCUR 2.0 delivered through AWS Data Exports to a dedicated data collection account
TaggingProject, Environment, Owner, CostCenter enforced by policy
Cost allocation tagsActivated in the billing console
Account structureSeparate accounts per environment and workload where attribution matters
BudgetsBudget per account and per project with alerts at 80% and 100%

Dashboards​

Cloud Intelligence Dashboards provide three views from the same CUR data:

DashboardAudienceAnswers
CUDOSEngineering and financeService-by-service spend, usage, savings opportunities, optimisation recommendations
Cost IntelligenceExecutives and financeHigh-level spend, chargeback, trend against forecast
KPI DashboardPlatform and FinOpsCoverage of Savings Plans and Reserved Instances, Graviton and Spot adoption, storage tiering

Deployment shape​

Management / Payer account
└── CUR 2.0 export ──────────────┐
▼
Data collection account
├── S3 (CUR data)
├── Glue (catalogue)
├── Athena (queries)
└── QuickSight (dashboards)

The data collection account is separate from the payer account so that the people who need to query cost data do not need access to billing.

Attributing cost​

Tagging​

TagPurposeEnforcement
ProjectWorkload identitySCP denies creation without it on billable resources
Environmentdev / stage / prodSCP
OwnerAccountable teamConfig rule
CostCenterFinance allocationConfig rule
DataClassificationInforms retention costConfig rule

Untagged spend is reported weekly and assigned to the platform team until the owner is identified. That creates pressure to tag rather than pressure to explain.

Shared cost​

Cost that cannot be attributed directly — network egress, shared services, support — is allocated by a documented rule:

CostAllocation rule
SupportProportionally by account spend
Shared networkProportionally by data transfer
Shared platform servicesEvenly across workloads, or by a stated weighting
UnallocatedHeld centrally and reported, not hidden

Waste review​

Run monthly. The categories are consistent across estates:

Waste typeDetectionTypical fix
Idle instancesCPU < 5% for 14 daysStop, terminate or downsize
Oversized instancesp95 CPU < 30%, memory headroom largeRight-size; test under load
Orphaned volumesEBS not attachedSnapshot then delete
Old snapshotsBeyond retention policyLifecycle policy
Unattached elastic IPsNot associatedRelease
Idle load balancersZero requestsRemove
Oversized logsHigh ingest, low query useRetention and filtering
NAT gateway egressHigh data processingVPC endpoints, same-region paths
Non-production running 24×7No scheduleSchedule shutdown outside working hours
Storage classStandard on cold dataLifecycle to infrequent access or Glacier

Commitment planning​

InstrumentBest forRisk
Savings Plans (compute)Steady-state compute across instance familiesCommits to spend, not to a specific instance type
Reserved InstancesStable RDS and specific instance needsLess flexible than Savings Plans
SpotInterruption-tolerant batch and CICapacity can disappear with two minutes' notice
GravitonAnything that is not architecture-specificRequires an arm64 build

Commitments are made against a measured baseline with headroom, not against a forecast alone. An over-committed estate locks in the cost of an architecture that may change.

Budgets and anomaly detection​

  • A budget per account, with alerts at 80% and 100% of the monthly forecast.
  • AWS Cost Anomaly Detection on each service that has variable spend.
  • A weekly cost review in the delivery cadence for active engagements.
  • A monthly report to the customer with spend, trend, waste actions and forecast.

Evidence​

  • CUR export configuration.
  • Dashboard screenshots by audience.
  • Cost allocation tag activation.
  • Budget and anomaly alert configuration.
  • A waste review with actions and owners.
  • A TCO model for the workload, if one was produced.