Sample report

AI spend and governance assessment

A real report, anonymised · evidence collected 21 September 2026 · 3 findings, 1 set aside · signed 26 September 2026

This is a real report, not a mock-up. The collector produced it from one read-only pass over a small production AWS account. For publication, the account ID, the CloudTrail trail name, the engagement name and the evidence record identifiers are replaced, and the client is called “Example client”. Every finding, figure and sentence is otherwise as the collector wrote it; the sign-off block was completed by hand, as it is for a client.

Read it for the method. This account had little to recover, and the report says so rather than inventing a saving. Every finding carries a triage decision recorded with the reviewer’s name and reason, one was set aside, and a named consultant signed the result. That is the gate a client’s report passes before it is a deliverable.

Prepared 2026-09-26 · evidence pack 20260921T044752Z

Status: triaged and signed.

Automated quality checks passed. All 4 finding(s) carry a recorded triage decision; 1 was set aside. Reviewed and signed by Juhi Singh on 26 September 2026.

Summary

3 finding(s) for Example client: 2 low, 1 info.

Recoverable spendNone identified
Observed AI and accelerated compute spendNone in the window

No recoverable spend was identified, and no AI service or accelerated compute spend was observed in the window. The cost half of this assessment is therefore empty — which is a result, not a gap: there is nothing here to optimise. The findings below are governance and posture observations.

The finding to read first is No trail selects Bedrock data-plane events (agents, knowledge bases, flows, guardrails). It carries no cost at all, which is precisely why a cost-optimisation tool would not have raised it.

Scope and method

Account
111122223333
Window
2026-06-23 to 2026-09-21 (90 days, daily granularity)
Regions examined
ap-south-1, us-east-1
Evidence records
506
Collector
finsecra-collector 0.1.0
Engagement
example-client; evidence retained until 2026-12-20, then deleted
Framework mapping
Not included. Findings are stated as cost and posture observations. No claim is made that any of them maps to a clause of ISO/IEC 42001 or any other standard.
Narrative drafting
None. No model processed any of this data.

Collection was read-only and required nothing to be installed in the environment. Every API call made is listed in audit.jsonl alongside this report, and the permissions requested are documented in docs/collector-access.md.

What could not be read

A check that did not run is not a check that passed. The following sources were unavailable, so any finding they would have produced is absent from this report rather than negative.

SourceReasonDetail
ce:GetSavingsPlansUtilizationnot_enabledThe service is not enabled, or holds no data for this scope. (DataUnavailableException)
cost-optimization-hub:ListRecommendationsnot_enabledThe service is not enabled, or holds no data for this scope. (AccessDeniedException)

Findings

1. No trail selects Bedrock data-plane events (agents, knowledge bases, flows, guardrails)

Lowgovernance, securityno recurring figurelow effortgovernance.bedrock_data_events_absent

2 trail configuration(s) were examined and none selects a Bedrock data-event resource type. Model invocations themselves — InvokeModel and Converse — are management events and are recorded by default; what is missing is the record of agent invocations, knowledge-base retrievals, flow runs and guardrail evaluations, which CloudTrail treats as data events and does not log unless a selector names them. Whether the account uses those features is not established by billing data alone; if it does, that use is unlogged.

Recommendation

If Bedrock agents, knowledge bases, flows or guardrails are in use, add advanced event selectors for AWS::Bedrock::AgentAlias, AWS::Bedrock::KnowledgeBase, AWS::Bedrock::FlowAlias and AWS::Bedrock::Guardrail to a trail covering the regions where Bedrock is permitted. Data events are billed per event, so scope the selectors rather than enabling everything.

Evidence

  • cloudtrail:GetEventSelectors → /advanced_event_selectors — trail org-trail: no Bedrock data events (record 91852a2e65f99827fbb553ee)
  • cloudtrail:GetEventSelectors → /advanced_event_selectors — trail org-trail: no Bedrock data events (record 4baf2f020332165498b2ceaf)

2. Bedrock model invocation logging is not configured (no Bedrock spend in the window)

Lowgovernance, securityno recurring figurelow effortgovernance.model_invocation_logging_absent_no_usage

Model invocation logging is switched off in ap-south-1, us-east-1. No Bedrock spend and no invocations were observed in the window, so this is a posture gap rather than an active blind spot today. Without it, a prompt-injection incident, a data leak through a prompt, or a disputed model output cannot be investigated after the fact.

Recommendation

Enable model invocation logging to CloudWatch Logs or S3 in every region where Bedrock is permitted, with a retention period matching the organisation’s incident investigation window. Confirm the destination is access-controlled, since prompts frequently contain sensitive data.

Evidence

  • bedrock:GetModelInvocationLoggingConfiguration → /configured — model invocation logging: not configured (record eba9096a899d38fb0d684e2a)
  • bedrock:GetModelInvocationLoggingConfiguration → /configured — model invocation logging: not configured (record 2fc0219e352117b4e2a526b7)

Affected

ap-south-1, us-east-1

3. 28 cost anomalies below the materiality threshold, totalling 75.70 USD

Infocostno recurring figurelow effortcost.anomalies_below_materiality

AWS Cost Anomaly Detection flagged 28 anomalies in the window, every one below this engagement’s materiality threshold of 50 USD. They total 75.70 USD and the largest is 28.74 USD, on Amazon Relational Database Service. Across 11 service(s): AWS Amplify, AWS Secrets Manager, AWS WAF, Amazon ElastiCache, Amazon Elastic Block Store, Amazon Elastic Compute Cloud - Compute and 5 more. Listed together rather than one by one: individually none of them is worth a practitioner’s time, and collectively they say something different — that the monitor is tuned below the level anyone acts on.

Recommendation

Raise the anomaly monitor’s threshold so that what it reports is what someone would act on. A monitor that fires on sub-dollar variance trains people to ignore it, which costs more than the variance does.

Evidence

  • ce:GetAnomalies → /Impact/TotalImpact — Amazon Relational Database Service: 28.74 USD excess (record d903605aca79d8d79e8350b7)
  • ce:GetAnomalies → /Impact/TotalImpact — Amazon Relational Database Service: 8.91 USD excess (record c001ae12561a7813b122685c)
  • ce:GetAnomalies → /Impact/TotalImpact — Amazon Virtual Private Cloud: 8.38 USD excess (record 62c1ccd13ceeebc9000fcb92)
  • ce:GetAnomalies → /Impact/TotalImpact — Amazon Elastic Block Store: 4.47 USD excess (record c5d6d20c06e08eda9d3ee02c)
  • ce:GetAnomalies → /Impact/TotalImpact — Amazon Relational Database Service: 4.06 USD excess (record 72aeea964f724246326fb44b)

Affected

AWS Amplify, AWS Secrets Manager, AWS WAF, Amazon ElastiCache, Amazon Elastic Block Store, Amazon Elastic Compute Cloud - Compute, Amazon Elastic Container Service, Amazon Elastic Load Balancing, Amazon Relational Database Service, Amazon Virtual Private Cloud and 1 more

Set aside at triage

Findings the detectors produced that the practitioner decided do not belong in this deliverable, with the reason. They are listed so the decision is visible rather than silent.

FindingDecisionReviewerRationale
Savings Plans cover only 0.0% of eligible compute spenddeferredJuhi SinghAbout 56 USD a month of eligible compute is on demand; size a commitment to the steady floor after one more month of data rather than to this window.

Quality gate

All automated checks passed.

Review and sign-off

This assessment was produced with an agentic delivery system and reviewed by a person. Findings were generated deterministically from collected evidence; every claim above cites the artifact it rests on. Triage, materiality judgments, and any statement about regulatory obligation are the practitioner’s, not the system’s.

Triage decisions recorded by: Juhi Singh (see triage.json beside this report for each decision and its rationale).

Prepared for: Example client

Reviewed and signed byJuhi Singh
RoleFounder & Principal Consultant, FINSECRA
Date26 September 2026

Want one for your account?

Start with a free cloud cost audit: read-only access, a fixed scope, and a report like this one, reviewed and signed by a named consultant.

Get a free cloud cost audit