Only the answer

data agent: before
Data Agent
What was net revenue for Product A last quarter?
Net revenue for Product A last quarter was $4.21M.
Ask anything about your business…
Since the only output is the answer, there is nothing here to check.

Lenny’s tweet

Open Lenny's tweet

Answer with evidence

Data Agent
What was net revenue for Product A last quarter?
Net revenue for Product A last quarter was $4.21M.
Details
Adapted from “Quarterly revenue review”authored by Priya Nair · Jun 28, 2026 Open ↗
Assumptions
Metric definitiongross − returns − discounts matches governed definition
Intermediate calculations
Returns netted out−$0.7M no trusted source
Unique customers12,480 183 unmatched, CRM ↔ Billing
Open as notebook
The agent surfaces the important details behind the answer. Select the Notebook tab above to see the full analysis generated by the agent.

Open the notebook

net_revenue_product_a.ipynb ▶ Run all ↑ Publish
Adapted from Quarterly revenue review , authored by Priya Nair · Jun 28, 2026
MarkdownBiH🔗

Net revenue — Product A, Q4 FY25

“What was net revenue for Product A last quarter?”

Short answer: $4.21M. This notebook shows how that number was built and what was checked against a trusted source.

1. Metric definition

Net revenue is gross − returns − discounts. Read the definition from the governed metrics layer so this matches what finance reports.

[1]
PythonCode collapsed✦ Ask AI ⌘K
import yaml

defn = yaml.safe_load(open("metrics/net_revenue.yml"))
defn["expr"], defn["source"]
('gross - returns - discounts', 'finance.order_lines')

2. Net revenue for Product A

Pull net revenue for Product A for the quarter, straight from the order lines.

[2]
SQLCode collapsed✦ Ask AI ⌘K
SELECT SUM(gross - returns - discounts) AS net_revenue
FROM   finance.order_lines
WHERE  product = 'Product A'
  AND  fiscal_quarter = 'Q4-FY25';
net_revenue
4,210,442

That's the $4.21M the chat answer reported.

3. Sanity-check the distribution

Break Product A down by region, then plot it. Nothing should look out of place against last quarter's mix.

[3]
SQLCode collapsed✦ Ask AI ⌘K
SELECT region,
       SUM(gross - returns - discounts) AS net_revenue
FROM   finance.order_lines
WHERE  product = 'Product A'
  AND  fiscal_quarter = 'Q4-FY25'
GROUP BY region;
region net_revenue
West 1,740,000
Central 1,160,000
East 890,000
Intl 420,000
[4]
PythonCode collapsed✦ Ask AI ⌘K
m = by_region.set_index("region")["net_revenue"] / 1e6
m.plot.barh(title="Net revenue by region · Q4 FY25")
Net revenue by region · Q4 FY25
West1.74
Central1.16
East0.89
Intl0.42
00.51.01.52.0
net revenue ($M)

West and Central drive most of the revenue, with International a small tail.

4. What I could not verify

Two inputs have no trusted source to check against. Instead of treating them as settled, each is left below as a cell you can run and edit to dig in.

[5]
SQLCode collapsed✦ Ask AI ⌘K
-- the agent's -$0.7M returns figure is an estimate;
-- check the returns table for Q4 rows to back it
SELECT COUNT(*) AS n_rows, SUM(amount) AS returns
FROM   finance.returns
WHERE  product = 'Product A'
  AND  fiscal_quarter = 'Q4-FY25';
n_rows returns
0 NULL
# Q4 returns haven't loaded yet, so the −$0.7M is an estimate

So that −$0.7M has no source to check against yet. The other open item is the customer join:

[6]
SQLCode collapsed✦ Ask AI ⌘K
-- 183 of 12,480 unique customers are in Billing, not CRM,
-- so some revenue can't be attributed. Pull them:
SELECT b.customer_id, b.amount
FROM   billing.invoices b
LEFT JOIN crm.customers c USING (customer_id)
WHERE  c.customer_id IS NULL
ORDER BY b.amount DESC
LIMIT 5;
customer_id amount
BIL-44821 18,400
BIL-39105 12,950
BIL-50277 9,310
# 183 rows · $61,540 unattributed

That's $61,540 of revenue whose customer attribution is uncertain, surfaced so a person can resolve it before the total is trusted.

Contents Assistant
New thread
What was net revenue for Product A last quarter?

I pulled Product A's net revenue from the order lines using finance's governed definition, broke it out by region, and flagged what I couldn't verify. The cells are on the left.

Generated the cells in this notebook
Ask a follow-up…
SQL [2]Auto ▾
The notebook reads top to bottom: the assumptions the agent made, the queries it ran, and an explicit list of what it could not verify.

Hex examples

hex: chat + notebook
Hex chat interface Hex notebook interface

Generated from scratch

lesson plan: before
PE Planner
Class details
Grade Grade 4
Class length 45 minutes
Location Outdoors
Equipment 12 cones, 6 balls
Generate lesson plan
Ball skills Lesson 1 of 8 Generated plan
Warm-up · 8 min

Jog the perimeter, then dynamic stretches: arm circles, lunges, and high knees. Finish with a partner toss to warm up the hands.

Main activity · 30 min

Pair students and set cones 10 feet apart. Partners practice underhand throws, then overhand. Cue them to step with the opposite foot and follow through. Widen the gap as accuracy improves and rotate partners every 5 minutes.

Cool-down · 7 min

Static stretches and a quick recap of throwing cues: step, point, follow through.

Assessment · notes

Watch for a stepped throw with the opposite foot forward and eyes on the target. Note students who need a shorter throwing distance next class.

Equipment

12 cones, 6 foam balls, 3 station markers.

The teacher enters constraints and the tool writes a plan from scratch. The only output is the plan, so its difficult to verify.

Anchor plus diff

lesson plan: after
PE Planner
Ball skills Lesson 1 of 8 Generated plan
View original
DR Adapted from Dana Ruiz's plan
Grade 4 PE · Lincoln Elementary, Austin TX
Used at 14 schools Run 30+ times this year Aligned to SHAPE standards
Full plan
Warm-up · 8 min
1Jog 1 lap to the far cones and back, then dynamic stretches: arm circles, lunges, and high knees.
Finish with partner toss to warm up the hands, 10 throws each.
Main activity · 30 min
23 stations with cones as targets. Pairs throw underhand then overhand with 6 balls, rotating every 5 minutes.
Cue students to step with the opposite foot and follow through toward the target.
Widen the distance between partners as accuracy improves.
Cool-down · 7 min
Static stretches and a recap of throwing cues: step, point, follow through.
Assessment · notes
Watch for a stepped throw with the opposite foot forward and eyes on the target.
Note students who need a shorter throwing distance next class.
Equipment
12 cones, 6 foam balls, 3 station markers.
What changed · 2 editsAccept allReject all
1 Warm-up
Jog 2 laps, then dynamic stretches (10 min)
+Jog 1 lap, then dynamic stretches (8 min)
Shortened to fit a 45-minute class
Accept ⌘⏎ Reject ⌘⌫
2 Main activity
4 stations, 8 balls, hoops as targets
+3 stations, 6 balls, cones as targets
Matched to your equipment
Accept ⌘⏎ Reject ⌘⌫
The plan is anchored to a vetted plan another teacher uses. The changes are marked so the teacher can check a diff against a plan they trust.

Fifty pages

medical report: before
ClaimDraft
FileEditCaseReportViewHelp
Source records · 18
Intake questionnaire
MRI, lumbar spine
X-ray report
Physical therapy notes
Treating physician notes
Prior IME
Work restrictions
+ 11 more
Claimant J. DoeClaim #WC-20259417Date of injury Mar 3, 2025Examiner Dr. A. Patel
Independent Medical Evaluation
Permanent & Stationary Report
1. History of injury

The claimant is a 47-year-old warehouse associate who reports a lumbar spine injury on March 3, 2025 while lifting a carton estimated at sixty pounds. He describes immediate low back pain radiating into the right lower extremity, followed by numbness along the lateral calf.

2. Review of records

Records reviewed include the intake questionnaire, an MRI of the lumbar spine dated March 18, 2025, twelve physical therapy notes, and the treating physician's progress reports through August 2025.

3. Physical examination

On examination, lumbar flexion was limited to 40 degrees with pain. Straight leg raise was positive on the right at 50 degrees. Strength was 4 of 5 in the right extensor hallucis longus, with diminished sensation in the L5 distribution.

4. Diagnoses

Lumbar disc herniation at L5-S1 with associated right L5 radiculopathy, supported by the imaging and examination findings above.

5. Causation analysis

Within reasonable medical probability, the disc herniation is causally related to the industrial lifting event of March 3, 2025. The claimant had no documented history of lumbar treatment prior to that date.

Page 1 of 52Generated from 18 records
The only output is a fifty-page narrative. To trust it, the doctor has to re-read the whole chart and check every claim, which can take as long as writing the report from scratch.

Evidence first

medical report: after
ClaimDraft
FileEditCaseReviewReportHelp
Claimant J. DoeClaim #WC-20259417Date of injury Mar 3, 2025Examiner Dr. A. Patel
Records · 18
MRI, lumbar spine
Physical therapy notes
Treating physician notes
Prior IME
Intake questionnaire
X-ray report
9 of 18 reviewed
1Contradiction
Straight-leg-raise is recorded as positive on the right by the treating physician (p. 31) and negative by the prior IME (p. 22).
2Key fact
The intake form notes a prior lumbar strain in 2019, which bears on causation (p. 14).
IncludeDismiss
3Open question
No imaging appears in the file after March 18, 2025, so the current status of the herniation is unconfirmed.
Add a note
4Key fact
The MRI report describes pre-existing degenerative changes at L4-L5 (p. 9).
IncludeDismiss
6 of 24 findings still need reviewGenerate report draft
The product walks the doctor through the evidence first, surfacing each finding with a link back to the chart. Afterwards, the final report is built from the facts they reviewed.

What we learned

what we learned