← All Case Studies

Caskey Engineering2024 – Present · Founder & Full-Stack Builder

Factor-First AI Investment Platform Narrated by a Six-Persona Committee

Grew a single-ticker grader into a shared investment platform: four-factor scoring and committee narration, personal portfolio workflows, and public research publishing with dated forecasts and subsequent outcomes.

About this artifact

case-studyproductionmaintained

markets · automation · part of Finance Engine · since 2026

Hobbyist research, not investment advice.

The Problem

Standard brokerage tools expose raw financial metrics but do not synthesize them into a conviction-level judgment. Investors still do their own mental weighting, often inconsistently and without a documented framework.

Financial APIs are a commodity. The missing piece is a repeatable scoring architecture that combines quantitative fundamentals with qualitative judgment and stays trustworthy enough to run with personal capital.

A one-off grade is not enough: the same engine has to keep portfolio grades fresh, publish research, and retain what it said before the outcome was known. A published forecast record makes evaluation possible; it does not establish predictive edge.

The Approach

Converged on a four-factor composite (ADR-013): Quality, Valuation, Momentum, and Health each score independently and aggregate into a single weighted 0-100 number, with quality carrying the heaviest emphasis. Growth was eliminated as a standalone factor, with its signals folded into Quality.

Built a six-persona investment committee (Graham, Buffett, Munger, Lynch, Dalio, Bogle) that narrates the factor scores in each investor's voice rather than recomputing them in parallel, and surfaces which factor and which persona drove conviction.

Added Piotroski F-Score and Altman Z-Score as distress signals with teeth: a deteriorating F-Score takes a graduated penalty inside the Health factor, and an Altman Z below 2.10, inside the grey zone, attenuates the composite linearly toward a floor of 40, reaching it at 1.50, so a weak balance sheet cannot be masked by a strong factor.

Made the engine market-aware: live SPY drawdown plus a VIX cooling-off counter gate SELL/TRIM recommendations, so the model doesn't tell you to sell into a panic.

Pointed the same scorer at a several-hundred-name large-cap universe every night and surfaced it three ways: a public Market's Best leaderboard at caskeycoding.com/market-best (split domestic vs. foreign), a private watchlist Discovery scanner for A/A+ opportunities, and a chat-driven universe screener.

Kept research generation in the shared engine and built a separate public publication layer that reads its saved outputs. It publishes grades and cited research without recalculating scores or calling a model per page view, and shows when each research item was generated so readers can judge its freshness.

Preserved the forecast record separately from today's view: past dated forecasts stay fixed while realized outcomes are attached once as their horizons resolve. Missing prices remain explicitly missing, and immature outcomes remain pending. Current factor snapshots refresh on each export and are never presented as the historical inputs to an older forecast.

Built backtesting harnesses to measure historical ranking behavior: a daily engine self-test computes the information coefficient of the composite against forward market-relative returns at 1m/3m/6m/12m horizons, and an offline panel re-scores its historical universe with decile spreads and per-factor IC. Historical ranking behavior is measured only; there is no demonstrated edge net of costs, and historical magnitudes are survivorship-affected upper bounds. Any change to a weight, factor, or formula has to clear a measurable decision gate on that panel before it merges.

Wrapped everything in production guardrails: a Response Validator (ticker closure, confidence floor, mandatory disclaimer, no forecasting) on every LLM output, immutable hashed audit records for every review, and async execution to clear the API timeout.

The Impact

  • Returns a repeatable 0-100 composite and A+ to F grade for any US-listed equity, with six-persona narration underneath, one consistent framework across every ticker instead of ad-hoc mental weighting
  • Grew from a single-ticker grader into a platform: portfolio review by Fidelity CSV or phone-snapshot upload, a net-worth tracker with trend, a daily auto-review that keeps grades fresh, and a conversational advisor scoped to your own review data
  • A nightly scan scores several hundred large caps and powers the live, public, no-login Market's Best leaderboard at caskeycoding.com/market-best plus a private Discovery watchlist scanner: the engine shown working, at zero per-view cost
  • One engine now supports personal portfolio decisions and public research publishing. The publication layer retains original dated forecasts and attaches later outcomes, so readers can inspect what was said before the result without confusing today's grade with an older prediction
  • Distress signals and market-state cooling-off keep the model consistent: a weak balance sheet pulls the grade down toward a floor, and SELL/TRIM signals are suppressed during drawdowns and VIX spikes
  • Historical ranking behavior is measured only; there is no demonstrated edge net of costs, and historical magnitudes are survivorship-affected upper bounds. The daily information-coefficient self-test and offline panel are measurement gates, and every review is written as an immutable, hashed audit record
  • Engineered for safe public exposure: per-IP and per-session rate caps, a hard daily cost ceiling, and a default-off kill switch

Evidence

AI/MLFinancial SystemsPlatformFull-StackAWS

Related