Surflow logoSURFLOW ONE · IMPLEMENTATION NOTES

From prototype to App Store

Everything 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 PREVIEW

1. What the app sells

PEAD60, 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 side2006 to 2021 (design)2022 to 2026 (held out)
Trades / winning629 / 62%195 / 63%
Average gain per trade+4.7%+5.0%
Trade t-statistic8.34.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 invested48%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.

ALIGN THE WEBSITE

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.

2. The ten screens

ScreenPurposeLogic and data
WelcomeHeadline from the site, PEAD60 card, two routesStatic
Risk profileFour 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 portfolioMixes: 65/25/0/10, 60/10/10/20, 45/0/15/40 (ETFs, bonds, emerging, PEAD60)
Paper portfolioSimulated $100,000 book, value and change vs S&P 500, mix, open positions, next earningsPositions and equity from the paper account API; next reporters from the earnings calendar
PEAD60Rule in plain words, three tested figures, year-by-year bars, "more strategies coming"Numbers above; locked cards for CORE and Momentum 15
Signal detailWhy it triggered (reported vs expected EPS), the plan, how similar signals did, three actionsEvent from the earnings feed; actions: execute on Alpaca, Trade Republic steps, skip
Push notificationBuy signal, no-signal and sell-reminder pushes on the lock screenFree: next morning; Pro: at trigger
Stock chartCandles for 1M and 6M, weekly candles for 1Y, line for 5Y and ALL, volume, PEAD markers, range and all-time statsDaily bars since 2005 for all 85 names (repo); 63 PEAD events for Nike since 2005
WorldWorld map of GDELT's latest 15-minute batch, theme counts, macro strip, live headlinesGDELT raw 15-minute files (events with lat/lon, tone, mentions; knowledge-graph themes); macro from FRED via the repo's daily refresh
Connect a brokerNotifications only (free), Alpaca via OAuth (auto-trade), Trade Republic guided ordersTrade Republic has no public trading API: the app prepares the order, the user confirms it in two taps
SubscribeFree vs Pro table, monthly or yearly, 7-day trial€19.99 a month, €199 a year

3. Brand

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.

4. Pricing

Service (2026)MonthlyYearly
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.

5. Payments and company setup

6. Brokers

7. Data and backend

PieceSourceNotes
Signals enginesurflow_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 APIsurflow_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 chartsDaily bars since 2005 for 85 names (repo); Alpaca bars for the current sessionUse TradingView Lightweight Charts in the app; PEAD events as series markers
World mapGDELT 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 stripFRED via the repo's daily macro refreshVIX, 2- and 10-year yields, Fed funds, credit spreads, dollar index, CPI
Push notificationsAPNs from the signals engineFree: batched next morning; Pro: at trigger

8. Hosting and the App Store path

  1. This preview lives on the Render service under /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.
  2. Web app: rebuild the screens in the existing Lovable project (same tokens), stage on its lovable.app preview, publish to app.surflow.ai. The FastAPI backend and a GDELT feed job go on Render or a server.
  3. iOS app: either wrap the web app with Capacitor (push, In-App Purchase and Keychain through plugins; Apple rejects wrappers that are only a website, so those native pieces must be real) or build natively in SwiftUI, which reviews more smoothly. Decide before the Lovable rebuild.
  4. Review checklist: only tested figures in the store listing and the app; a visible "not investment advice, capital at risk" line; In-App Purchase for the subscription; a working free tier; privacy labels for the broker connection; an organisation developer account.

9. Repository pointers

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.