portfolio-press · applied-AI lab
Regulated finance · AI you can act on

Numbers an AI wrote — that you can ship without checking them by hand.

A language model drafts the commentary on a risk report. Then a deterministic gate recomputes every figure it quoted, against the source, and refuses to pass a number it can't verify. A human approves what ships. Autonomy is earned, not granted.

Running on AWS · Bedrock + Step Functions Synthetic data only 7 reports published · ~$0.003/run
The gate · live verification
01
Draft
LLM
02
Gate
recompute
03
Approve
human
04
Publish
S3
Draft — what the model wrote

Through the regime shift, volatility roughly doubled (×1.97). The portfolio returned +3.1%, lagging the benchmark's +5.8%, and the drawdown recovered in 76 days — leaving volatility 37% higher than the benchmark’s.

Gate — recompute vs. source
Waiting for the draft.
The mechanism

Four rungs. Trust is built, not assumed.

Every published number climbs the same ladder. Each rung can send it back down — a figure the gate can't reproduce never reaches a human, and nothing reaches the reader without a click.

01

Draft

A Bedrock model writes the commentary under a strict contract: every number it states must be declared in a quoted_figures list. Prose and claims, separated at the source.

Claude Haiku · JSON contract
02

Gate

A deterministic function — no model in it — recomputes every quoted figure from the source data. A percentage it can't reproduce is rejected; a shape that doesn't match is rejected. Three strikes, then the draft is sent back.

recompute · reject unverifiable · 3-strike retry
03

Approve

Only a verified draft reaches a person. The approval request goes to the designated approver — review, approve, or reject — and the pipeline holds on a task token until they answer. Nothing publishes on its own; demo runs are approved right on this page by the person who started them.

waitForTaskToken · human in the loop
04

Publish

On approval, the report is written to S3 and the link returns to the operator. Every run is journaled — tokens, cost, latency — so the whole ladder is auditable after the fact.

S3 · journaled cost & latency

The scenario the model narrated

Portfolio Benchmark

Synthetic returns, seed 9 · a mid-series volatility regime shift (×1.97). Portfolio +3.1% lags the benchmark's +5.8%; drawdown recovers in 76 days. Every figure the model quoted was recomputed from this series before it shipped.

Four use cases · live from this page

One discipline, four doors — press the buttons.

Everything below calls the real AWS backend behind this site. Reading and deterministic queries are free; the steps that call a model ask for a one-time email code first — a short session, a small monthly cap.

Use case 1 · trust-ladder publishing

Draft a report, gate it, approve it yourself

A model drafts a portfolio report, the gate recomputes every figure, and the approval click is yours — your run, in this page. Approved reports land on a demo shelf that empties itself in seven days.

Use case 2 · verified chart commentary

Prose changes; the figures cannot

The engine computes volatility metrics, the model narrates them, the gate re-verifies every number before you see a word. Generate twice — the wording moves, the figures stay pinned.

Use case 3 · ask the data, in writing

The sentence is not the contract

Your question compiles into a formal query from a whitelist — shown to you before anything runs. Approve the contract, the engine executes it, and the model never touches a number.

Use case 4 · ask the reports (agent)

The model picks the path; the gate still checks the numbers

Here the route is not fixed: an agent chooses which tools to call over the published reports, the run journal and the real AWS bill. You see the answer, the route it took, and the gate’s verdict on every figure it quoted.

The record

What the ledger shows

10
reports published, each via a human click
$0.003
average cost per run
100%
of shipped figures recomputed from source
0
unverifiable numbers reached a reader
See it for yourself

The lab is open.

Read the cockpit and the published reports freely. Running a fresh report calls a model, so that step asks for an email — a one-time link, a short session, a small cap. No account, no noise.

← prev: agents as a service you are here · the trust ladder next: five shapes of the same promise →