I study economics and computer science at Duke. At UBS Global Markets this summer I built a pre-open market dashboard that 30+ traders and salespeople used before each open. Now I build research tools that check their own numbers before they show them.
How often can you trust an AI-written earnings note?
Finding: across 50 company-quarters and 1,001 claims, 99.6% of 734 numeric claims checked out: 494 of 497 recomputed from the SEC’s XBRL data, and 237 figures with no XBRL equivalent (non-GAAP, guidance) found as stated in the cited press-release paragraph. Quotes were weaker: 85.7% of 70 matched the press release word for word. As a test of the verifier’s own logic, it caught all 1,957 errors injected into verified claims.
A language model reads a company’s earnings release and writes a structured note in which every sentence is a claim tied to a source: an XBRL concept and period, or a numbered paragraph of the release. Then plain code, with no AI involved, checks each claim. Numbers are recomputed from XBRL, quotes must appear word for word, and every citation must point to a paragraph that exists and contains the claim’s figures.
Limitation: it reads filings and press releases, not earnings-call transcripts, so anything said only on the call is out of reach.
Palantir reported third-quarter revenue of $2.313 billion.✓ (verified)GAAP operating margin was 46.9%.✓ (verified)The CEO highlighted that U.S. commercial revenue passed U.S. government revenue for the first time.⚠︎ (mismatch)Total contract value closed grew only 6% year over year, well below revenue growth.◦ (sourced)Remaining performance obligations were flat sequentially at $4.9 billion.✗ (unsupported)
✗ Unsupported: the number isn’t in the cited source
The note cites paragraph P19, which reports U.S. commercial remaining deal value of $6.517 billion. The figure $4.9 billion appears nowhere in it.
The fact itself is right: the 10-Q reports $4.9 billion at both June 30 and September 30. The citation is what fails, and a claim is only marked verified when its source supports it.
Do developer-adoption signals lead revenue for data-infrastructure companies?
Finding: no lead survives the pre-registered tests, but the data can’t rule one out. npm downloads move with revenue (r ≈ +0.5 with company fixed effects, flat across lags), mostly through a shared growth trend. Removing quarter-wide effects leaves a modest lead-shaped pattern (r ≈ +0.3 two to three quarters ahead) that doesn’t survive the correction for testing five lags. Company by company, 0 of 55 tests reach p < 0.05, and hiring-post share shows nothing at any lag.
The tracker lines up weekly npm and PyPI downloads, the share of Hacker News “Who is hiring?” posts that mention each tool, and GitHub activity against quarterly revenue from SEC XBRL for Snowflake, Datadog, MongoDB, Confluent, Elastic and Cloudflare. The tests and verdict rules were fixed in code before the data was pulled. P-values use an effective sample size because year-over-year series are strongly autocorrelated.
Limitation: samples are small. Each company-level correlation rests on an effective sample of roughly 3 to 11 observations, so a real but modest lead could be missed.
Along the way: which official AI SDK developers downloadShare of npm downloads among the OpenAI, Anthropic, Google Gen AI and Mistral SDKs, 4-week average
What would a pre-open brief look like if it checked its own data before showing it?
Finding: over 545 shared trading days (Sep 2024 to Oct 2026), Yahoo’s and FRED’s VIX closes matched on every day but one. On Feb 6, 2026 Yahoo said 20.37 and FRED said 17.76. The reconciliation check now fails on a gap like that, and the page replays the day so you can watch it happen.
A public rebuild of the dashboard from my internship, using only free public data. A scheduled job, meant to run each weekday before the open, pulls 21 instruments across equities, rates, FX and commodities and checks them for freshness, completeness, gaps, implausible moves, frozen feeds and disagreement with FRED or the ECB before anything is shown. A language model writes up to five news bullets, each linked to the official headlines it cites.
Limitation: 13 of the 21 instruments have only one source, so a wrong but plausible price there can’t be caught by reconciliation. And the pre-open trigger isn’t reliable yet: so far most refreshes have run after the open, as the page’s track record shows.
The brief of Wed Nov 4, 2026: check summary and cross-asset tiles.
python · pandas · sqlite · yfinance, fred & ecb data · claude api · jinja2 · chart.js · github actions & pages · cloudflare workers
I’ll graduate from Duke in May 2027 with a B.S. in Economics and a B.S. in Computer Science, concentrating in AI and machine learning. I’m most interested in technology itself: how AI products get built, how people actually adopt them, and what that changes for the companies involved. On campus I’m President of Duke Scholars of Finance and Co-President of Duke’s chapter of Alpha Kappa Psi.
I speak Mandarin natively and French proficiently. I studied in Aix-en-Provence and Paris, with all of my coursework in French, and in New York with Duke in New York. Away from a keyboard I train with Duke Club Triathlon, hike, and watch French cinema.