Product

Set it once.The records do the rest.

Budgets, owners, and policies — configured once. From then on, CapHound writes the records, delivers them where your teams work, and hands you the receipt.

A week with CapHound

Not another tab your team has to live in. One configuration, then the work happens where it already happens.

1

Configure once

Budgets with owners and approval paths. Policies across five types. Ten minutes, honestly.

2

Records flow out

Spend records to your warehouse, signals to Slack and Datadog, tickets to Jira — automatically.

3

Owners decide in place

Budget increases and exceptions approved with one tap in Slack or one click in email. On the record.

4

The receipt lands

Once a month: what was prevented, what was decided, who decided it. Forward it upward.

The dashboard? You'll barely use it. Configure, investigate when something needs a closer look, leave. That's the point.

The data contract

Five kinds of records. Every question answered.

This is what CapHound actually produces — request-grained, owner-attributed, audit-ready. Your warehouse, your BI, your auditor, and your AI agents all read from the same records.

Spend records

Who caused every dollar?

featureteamcustomerownerBilledCostFOCUS 1.0

Decision records

What did each policy do to each request?

actionpolicymodelscopereasoncost_effect

Approval records

Who approved what, and how fast?

decided_bychannelamountreasontime_to_decision

Control records

What changed, and did it revert on schedule?

control_typetargetspend_governedactorreverted_at

The receipt

What do I forward upward each month?

preventeddecisionsmedian_ttdrevertsaudit_ref

Delivered to

SlackJiraPagerDutyDDDatadogGrafanaWarehouseAIAI agents

Warehouse push is FOCUS 1.0, nightly — lands in Snowflake, BigQuery, S3, or any destination that accepts a push. AI agents: Claude, Cursor, anything that can ask.

The controls

Five policy types. Every request. Every provider.

Policies are evaluated per request — not per invoice line, weeks later. Each decision is written to the record with the policy that made it.

  • budget-limitSpending stops at the limit — hard stop or paced burn, your call per budget.

  • downgrade-ruleNon-critical traffic moves to a lower-cost model automatically.

  • routing-preferenceRequests stay where they belong — region, provider, data residency.

  • model-restrictionOnly approved models run. Anything else is swapped or stopped.

  • rate-limitBursts get absorbed before they become a bill — per scope, per environment.

decision-streampolicy:any · env:production
live
BLOCKED

gpt-4o · contract-analysis

budget-limit · legal-tech monthly

$4.20 not spent
DOWNGRADED

gpt-4o → gpt-4o-mini · customer-support

downgrade-rule · non-critical traffic

−94% this request
ROUTED

claude-sonnet · doc-extract

routing-preference · EU data residency

compliant by default
RESTRICTED

o1-preview · engineering-sandbox

model-restriction · approved models only

swapped to approved
THROTTLED

batch-embed · growth-experiments

rate-limit · 20 req/min non-prod

burst absorbed

Every request, evaluated against your policies

$2,144 never spent this month

OpenAIAnthropicGoogle GeminiGoogle Vertex AIAzure AIAmazon Bedrock

One control surface, every provider.

Prompt-safe — no prompts or responses stored Production and non-production scoped separately SOC 2 Type I

First records in 15 minutes.

Setup is a drop-in change — your spend records start flowing the same hour. From there, onboarding is guided: we map budgets, owners, policies, and the tools your teams already use. Implementation guides and documentation are provided to customers during onboarding.

No public docs to dig through — because you won't be implementing this alone.