SURFLOW ONE · IMPLEMENTATION NOTESEverything agreed on 5 to 8 October 2026 for the Surflow One app, in one place: the strategy it runs, what the screens do, the data behind them, pricing, payments, broker connections, hosting and the App Store path. The clickable preview is at index.html.
OPEN THE PREVIEWPEAD60, the one strategy with a tested edge: when a large US company reports earnings per share at least 5% above consensus, buy at the next open (up to five sessions late), 5% of the sleeve per name, at most 20 names, hold 60 trading sessions, sell at the open, no stop-loss. Live on a dedicated Alpaca paper account since 5 October 2026 (first position: Nike, bought at $33.32 after an 11.6% beat).
| Net of 5 bps per side | 2006 to 2021 (design) | 2022 to 2026 (held out) |
|---|---|---|
| Trades / winning | 629 / 62% | 195 / 63% |
| Average gain per trade | +4.7% | +5.0% |
| Trade t-statistic | 8.3 | 4.6 |
| Annual return (S&P 500) | 9.3% (8.6%) | 10.3% (10.6%) |
| Sharpe (S&P 500) | 0.94 (0.52) | 1.15 (0.67) |
| Worst drawdown (S&P 500) | -25.5% (-56%) | -11.0% (-25%) |
| Share of time invested | 48% | 50% |
Honest framing for the store and the site: index-like return with about half the volatility and drawdown, not "beats the market". Two more books exist for later releases: CORE (60% broad ETFs, 10% bonds, 10% emerging markets, 20% confidence-weighted stocks; on paper since 7 October) and Momentum 15 (in review). The firm's own launch gate scored PEAD60 3 of 6 as a standalone book; its paper deployment is a recorded owner decision.
surflow.ai currently advertises "+32.4% annual alpha, 2.8 Sharpe, -8.2% max drawdown". Those figures are not supported by the tests above. Unsubstantiated performance claims are the most common reason finance apps are rejected by Apple and the first thing a regulator asks about. The app uses only the tested numbers; the site should match it.
| Screen | Purpose | Logic and data |
|---|---|---|
| Welcome | Headline from the site, PEAD60 card, two routes | Static |
| Risk profile | Four questions, scored 0 to 8 into Conservative (0 to 2), Balanced (3 to 5), Growth (6 to 8); each sets the starting mix of the paper portfolio | Mixes: 65/25/0/10, 60/10/10/20, 45/0/15/40 (ETFs, bonds, emerging, PEAD60) |
| Paper portfolio | Simulated $100,000 book, value and change vs S&P 500, mix, open positions, next earnings | Positions and equity from the paper account API; next reporters from the earnings calendar |
| PEAD60 | Rule in plain words, three tested figures, year-by-year bars, "more strategies coming" | Numbers above; locked cards for CORE and Momentum 15 |
| Signal detail | Why it triggered (reported vs expected EPS), the plan, how similar signals did, three actions | Event from the earnings feed; actions: execute on Alpaca, Trade Republic steps, skip |
| Push notification | Buy signal, no-signal and sell-reminder pushes on the lock screen | Free: next morning; Pro: at trigger |
| Stock chart | Candles for 1M and 6M, weekly candles for 1Y, line for 5Y and ALL, volume, PEAD markers, range and all-time stats | Daily bars since 2005 for all 85 names (repo); 63 PEAD events for Nike since 2005 |
| World | World map of GDELT's latest 15-minute batch, theme counts, macro strip, live headlines | GDELT raw 15-minute files (events with lat/lon, tone, mentions; knowledge-graph themes); macro from FRED via the repo's daily refresh |
| Connect a broker | Notifications only (free), Alpaca via OAuth (auto-trade), Trade Republic guided orders | Trade Republic has no public trading API: the app prepares the order, the user confirms it in two taps |
| Subscribe | Free vs Pro table, monthly or yearly, 7-day trial | €19.99 a month, €199 a year |
Taken from surflow.ai's own stylesheet: ground #010E1E, surface #000614, card #06182B, muted #0A1F35, text #EDF7FB, dim text #91A9B3, primary #00D1DA, emerald #00DA9A, rose #FF4A5D, amber #FAB72A; Inter Tight 700/800 for headings, Inter for body, JetBrains Mono for labels and data; 12 px radius, pill buttons. The screens map one to one onto the site's shadcn tokens (background, card, primary, muted, accent), so they rebuild in the existing Lovable project with its theme file.
| Service (2026) | Monthly | Yearly |
|---|---|---|
| Motley Fool Stock Advisor | – | $199 ($99 first year) |
| Seeking Alpha Premium | – | $239 to $299 |
| Stock Alarm Premium (iOS) | $19.99 | – |
| Danelfin | $19 to $49 | – |
| TipRanks | $29.95 | ~$359 |
| Finviz Elite | $39.50 | $299.50 |
| Benzinga Pro Basic | $37 | $348 |
| Alpha Picks | – | $449 to $499 |
| Surflow Pro | €19.99 | €199 (two months free) |
Mid-market and defensible for one live strategy plus auto-trading and a paper portfolio. Net after Apple's cut: about €17 per monthly subscriber and €169 per yearly one (15% under the Small Business Program up to $1M a year, 30% above). The free tier (next-day signals, paper portfolio) is the conversion story: people see PEAD60 work before paying.
PEAD60-TICKER-DATE. This is the auto-trade path and what runs today.| Piece | Source | Notes |
|---|---|---|
| Signals engine | surflow_one/live/pead_runner.py (runs daily after the US close) | Earnings calendar and surprises from Alpha Vantage (one call per reporter, free tier 25 a day); fill up to five sessions late costs nothing in the tests |
| Portfolio and accounts API | surflow_one/api/app.py (FastAPI, SQLite, encrypted broker credentials) | Investor tokens, broker connection, model and custom sleeves, daily snapshots; host on Render or a server |
| Prices and charts | Daily bars since 2005 for 85 names (repo); Alpaca bars for the current session | Use TradingView Lightweight Charts in the app; PEAD events as series markers |
| World map | GDELT 15-minute export and GKG files (free, no rate limit) | Events with latitude, longitude, tone, mentions; themes such as ECON_STOCKMARKET, ECON_INTEREST_RATES, ECON_TRADE_TARIFFS. The article API is limited to one call per five seconds and blocks bursts: use it for search, not the feed |
| Macro strip | FRED via the repo's daily macro refresh | VIX, 2- and 10-year yields, Fed funds, credit spreads, dollar index, CPI |
| Push notifications | APNs from the signals engine | Free: batched next morning; Pro: at trigger |
/app/, served by the same Flask app as the thesis reports. Since 8 October it is live: the server fetches GDELT every 15 minutes (/app/api/world), FRED hourly (/app/api/macro), SEC filings every 6 hours (/app/api/fundamentals/NKE), and Alpaca bars, the last price and the PEAD60 paper account every few minutes (/app/api/chart/NKE, /app/api/portfolio; these two need the Alpaca keys set as environment variables on the service). Each endpoint falls back to the 8 October snapshot if its source is down.Branch feat/thesis-analysis-pack: surflow_one/CRITERIA_RESULTS.md (all tested rules and the two owner decisions), surflow_one/research/run_criteria.py (the test battery), surflow_one/live/pead_runner.py and core_book.py (the live books), surflow_one/api/app.py (accounts and brokers). Design canvas and decks are Claude artifacts shared separately.
Not investment advice. Simulated and live results do not predict future returns. Capital at risk.