Changelog
All updates and improvements to Grafion.
v1.5.1May 22, 2026FreeAuditedFix
Everything free · full audit · bugs fixed
Grafion enters its growth phase: every feature — including the ones that were Pro — is unlocked on every account, no card required and no limits. Paid tiers will return later for specific high-cost tools (backtesting, AI). This release also closes a full security audit and resolves several bugs affecting the scanner, Google sign-in, and the landing hero.
Pro is now free
New- Every Pro feature — Edge Lab (6 tabs), advanced metrics, the full scanner, unlimited calendar history, full Journal V2, trade chart with annotations, unlimited brokers — is now available on every account at no cost.
- No card, no trial, no expiry. Sign-up only requires an email.
- Paid tiers will return later — likely a hybrid model: Pro + per-use credits for specific high-cost features (backtesting, AI). Until then, nobody pays.
- If you had an active Stripe subscription: nothing is cancelled. It keeps working exactly as before and you can manage it from the Stripe portal whenever you want.
Full security audit
Audited- Systematic review of the entire public surface: API endpoints, auth flows, CSP, rate limits, broker-key encryption, file uploads, Stripe webhook.
- Zero critical findings. Closed several medium-severity items — IP parsing hardening on public endpoints, defence-in-depth on checkout, strict gating of sensitive logs in production.
- Landing snapshot cleaned of PII: no email, name, handle or database ID ships in the public bundle.
Bugs fixed
Fix- Scanner — Vol = 0 in premarket: symbols in premarket / halt / freshly listed showed "Vol 0" in the movers table even though the inner chart had real volume. The last valid session's volume now shows as a proxy.
- Scanner — scrollbar covering content: some widgets' vertical scrollbar painted over the rightmost column. It now reserves its gutter (`scrollbar-gutter: stable`) so content is fully visible whether the bar is showing or not.
- Google sign-in across devices: fixed a silent linkAccount failure where Google's extra OAuth response fields caused Prisma to reject the row. Sign-in-with-Google attempts surfaced as "this email is already in use" even though account-linking was enabled. The fields are now sanitised before persisting.
- Landing — flash on load: the hero no longer flickers between the pre-hydration state and the animation. The whole page comes in as a single ~2.5s choreography.
Landing — full redesign
Improved- Editorial hero with a choreographed three-phrase animation ("Past performance. Verified." → "Future performance. Built." → "Start building yours.") plus a "Start building" CTA that lands as the payoff.
- Interactive tour through every app page (Metrics · Lab · Scanner · Journal · Trades) — live replicas with real data, no screenshots. In Trades, real 1m candles from the trading day are shown with my account's real executions as an example.
- Brokers section redesigned with real logos for every supported integration (IBKR, Alpaca, Schwab, TastyTrade, TradeStation, Zimtra, MetaTrader, Ocean Securities, Alaric, DAS Trader) styled à la Stripe / Vercel.
- Scanner live on the landing: the movers feed polls production every 5s via a public IP-rate-limited endpoint. A dilution feed shows the real dilution grade (F → A) sorted by risk.
- Aurora background across the whole page + full mobile support (hamburger menu, responsive layout across every replica).
Grafion v1.5.1 — Track your real edge.
grafion.appv1.3.0May 20, 2026NewPro
Edge Lab — advanced metrics + stress tests
New /metrics/lab page dedicated to putting your edge under the microscope. Six specialised tabs: execution quality, behavior & discipline, historical ticker context, stress lab with VaR/CVaR/Kelly/Risk-of-Ruin, Edge DNA with statistical significance testing, and an interactive what-if sandbox that re-simulates your equity curve as you tweak rules in real time.
Execution quality
New- MAE / MFE estimated from your fills, capture efficiency, and per-trade MAE-MFE scatter.
- Avg slippage per share, avg fills per trade, and detection of "averaging down" vs "pyramiding up".
- Per-route commission + fees burden table with maker/taker ratio.
Behavior & Discipline
New- P&L and win rate grouped by emotion (confident / fearful / greedy / frustrated / neutral).
- Setup and tag ranking by expectancy with a 3-trade floor per bucket.
- Day cohorts: days with a pre-market plan vs without, ≥80% discipline vs not.
- Tilt curve, overtrading curve, and revenge-trade detection (re-entry < 15 min after a loss).
Historical market context
New- Your performance segmented by float, dilution, sector, market cap, risk grade, gap %, and relative volume.
- Per-trade historical snapshot — captures price, volume, gap, and RV from the entry day (not the current day).
- "Your sweet spot": the float × dilution combo with the highest expectancy.
Stress Lab
New- VaR and CVaR (Expected Shortfall) with three estimators: historical, parametric, and Monte Carlo bootstrap. 90/95/99% confidence × 1/5/20-day horizon.
- Monte Carlo Risk-of-Ruin (500 paths × 500 trades) given your balance and risk-per-trade.
- Kelly and Half-Kelly with an alert when your current risk-per-trade exceeds full Kelly.
- Custom black swan builder with sliders for slippage, fees, size, % worst days removed, and instant shock.
- Bootstrap 1000-runs with 90% CI on win rate, profit factor, expectancy, and Sharpe.
Edge DNA
New- One-sample t-test vs zero: is your edge statistically real or luck? Explicit verdict with p-value and t-stat.
- Edge attribution — what % of your expectancy comes from win rate vs payoff vs frequency.
- Edge half-life: regression on rolling win rate to detect degradation.
- Cohorts by month since your first trade and "first trade of day vs rest".
What-If Sandbox
New- Exclude specific symbols, setups, or tags and re-simulate your equity curve instantly.
- Size multiplier, cap daily loss, stop after N losses, remove N worst trades, delay from open.
- Original vs sandbox equity-curve overlay with delta on P&L, win rate, Sharpe, and max DD.
v1.2.5May 14, 2026ImprovedFix
Grafion v1.2.5 — Trade chart deep fixes
Complete rewrite of the per-trade chart: every individual fill with its action and exact price, no lag, fully customisable, and sticky notes you can pin to the chart like a journal.
Per-fill markers, done right
Fix- Every execution now shows as an individual cone at its exact price and quantity — previously only 2 markers were drawn (entry+exit summary) because the API was reading the wrong rawData field.
- Markers now anchor to the real price with the cone tip exactly on the price line, not approximately near it.
- Time fix: the timezone bug that shifted every fill by 4-5h is corrected at the display layer (DB stays untouched so trade IDs remain stable).
- Multiple round-trips on the same symbol+day automatically merge onto a single chart, the same way every pro broker platform shows them.
- 4-color mode (experimental): visually distinguishes Buy / Sell / Short / Cover so you can tell long vs short at a glance.
- Fixed: short-sell-to-open executions (side=T in PropReports) were being filtered as "transfers" and never appeared on the chart. They're now recognised as shortOpen and rendered correctly.
Drawing and editing annotations
New- Live preview while drawing: as you place the second point of a line, rectangle or arrow, a dashed blue ghost shows exactly how it will look.
- Drag to move: lines, rectangles, arrows, vlines and notes are now movable by dragging. Coordinates reproject to (time, price) in real time.
Full customisation + persistence
New- Settings panel (gear icon in the toolbar) with a full palette: candle body / border / wick, volume, VWAP (color and width), cones, session shades.
- Independent outline colours for candles and cones — including cone outline width (0-3px).
- Everything persists to localStorage per device (key tradeedge.chart.settings.v1). Your palette survives a browser restart.
- Toggles: show/hide price on each cone, show/hide qty, crosshair magnet to candles.
Sticky notes
New- Notes can be pinned ("sticky") so the text stays permanently visible on the chart — like a post-it.
- Regular notes still appear only on hover so the chart stays uncluttered.
Performance & interaction
Fix- Cones no longer "drift": positions update via direct DOM mutation (not React state), so they stay glued to the canvas in the same frame when you pan.
- Crosshair magnet now off by default. It was CrosshairMode.Magnet under the hood; Normal mode lets the mouse move freely.
- Annotation hit areas widened (vline 10→16px, trendline/arrow 12→18px) so they're easy to click without pixel-perfect aim.
- Explicit z-index stack (shade<chart<svg<notes) — cones can no longer end up behind the canvas in Safari/Chrome with heavy compositing.
Card & modal
Improved- Card is centred with a finite max size (1700×1050) — it no longer overshoots the viewport edge or looks "atravesada" on wide screens.
- dvh/dvw support (dynamic viewport) — Safari mobile's URL bar no longer clips the card.
Scanner — bug fixes & optimisation
Fix- Candle worker: fixed the bug where setEligibleTickers([]) silently blocked all candle writes when the top-N was momentarily empty. An empty set is now treated as accept-all so a flicker in the top doesn't shut the pipeline down.
- scanner_candles_1min: timestamp index restored and the table got a VACUUM FULL — Supabase reclaimed 281 MB of dead pages that were inflating RAM/CPU.
- /api/scanner hardened: try/catch returns 503 + detail instead of an empty 500. Each enrichment query (references, dilution, tickerEnrichments) has its own .catch so an isolated failure can't collapse the whole response.
- fetchScannerMovers: heavy queries that used to run serially now run in parallel (Promise.all) — the movers endpoint responds substantially faster.
- Rate limit with circuit-breaker: when Upstash Redis goes down, authenticated endpoints automatically fall back to local memory instead of cascading 500s. 30s cooldown before retrying.
Trades with $0 P&L — adjustment visibility
New- Trades with $0 P&L are now created from broker adjustments (locates, software fees, regional L1, monthly commissions) instead of being dropped. Lets you see your true cost of business even on flat days.
- In calendar + metrics, these $0 trades surface their full fee breakdown. Your dashboard no longer "lies by omission" showing zero activity on days that actually had real costs.
Security audit
Audited- Full API route audit: auth, rate-limits and Zod validation reviewed endpoint by endpoint.
- Upstash Redis circuit breaker: if rate-limit drops, authenticated endpoints fall back to memory instead of returning 500.
- Extra hardening on /api/trades/[id]/candles: symbol regex-validated, per-user ratelimit, strict userId scoping.
Grafion v1.2.5 — Track your real edge.
grafion.appv1.2May 13, 2026New
Grafion v1.2 — Live Streaming Scanner
We moved the scanner onto a dedicated real-time streaming pipeline — top movers and bid/ask refresh every 2 seconds, 1-minute candles grow tick by tick, and the movers list became a proper Excel-style table you can drag, resize and reorder column by column.
Real-time streaming pipeline
New- Dedicated streaming pipeline replaces the previous 60-second batch refresh. Top 150 movers refresh every 2 seconds with live bid/ask alongside price.
- Sub-second 1-minute candle updates with a polling fallback so the chart keeps animating even if the live stream momentarily drops.
- Live quote data (bid, ask, sizes, last quote time) persisted per ticker and rendered on the chart as dashed price lines for live spread context.
- Leaderboard filters to genuine gainers (sorted by % change descending, not absolute) so the list stays full at 150 even in mixed markets.
Movers widget rebuilt as a real table
Improved- Every column is its own grid slot — TICKER, PRICE, CHG%, VOL — with shared widths so cells line up perfectly row after row.
- Company logo and country flag render as standalone columns next to the ticker, with a coloured letter-avatar fallback when no logo is available.
- Drag any column header to reorder. Drag the divider between headers to resize Excel-style. Double-click a divider to reset that column.
- Column order, widths, visibility and per-widget filters all persist server-side per user — your preset is identical on every device.
- Bid/Ask cell uses semantic L2-book colours (bid red, ask green) like every professional order book, with sizes in the tooltip.
Smarter filtering
Improved- Separate "% Change" and "% Gap" sections in settings — inline help explains the difference (full daily move vs overnight gap only).
- New Min/Max % Change range filter on top of the existing Gap, Volume, Price and Float ranges.
- Numeric inputs commit on blur or Enter (not on every keystroke) so the row count no longer jumps around mid-type.
Chart polish
Improved- Live ticks now mutate the running candle in place — the bar visibly grows tick by tick instead of being silently swapped out.
- Removed the "Next 00:23" countdown banner — the running candle updates every 2 seconds, so the minute countdown was misleading.
- Bid / Ask price lines on the chart update from the same source the movers list reads, so all four numbers (price, change, bid, ask) stay in sync.
Bug fixes & infra
Fix- The scanner endpoint and the live poll disagreed on the response shape — the store quietly fell back to the initial snapshot. Fixed: shared shape now hydrates on every poll.
- Preference saves used to swallow every error silently — failures made it look like customisations were lost. Errors are now surfaced so problems are visible immediately.
- Settings drawer no longer renders blurry small text on high-DPI displays.
- Browser bundle no longer crashes when server-only environment values are absent.
- Auto-merge of missing column keys into the persisted column order so users upgrading from earlier builds don't see columns disappear.
Grafion v1.2.0 — Track your real edge.
grafion.appv1.1May 8, 2026New
Grafion v1.1 — Scanner Pro
The biggest scanner update since launch. We rebuilt the live page as a draggable widget grid, added real-time charts, and shipped a full dilution-risk engine that reads SEC filings for you. Pick any small-cap and you get an instant verdict on how likely it is to dilute — with the cap table, active ATM, warrants, convertibles, and going-concern flags all on one screen.
Live scanner, rebuilt as a widget grid
Improved- Drag-and-drop layout with 14 widgets to mix and match: Movers, Watchlist, Focus, Chart, News, Filings, Alerts, Macro, Momentum, Gap Study, Dilution risk, Capital structure, Insider activity, Capital raises, Red flags. Build the dashboard you actually want.
- Layout presets (Classic, Momentum Hunter, Small-cap Hunter, Earnings Day, Custom) load with one click and persist per device. Switch between them as your routine changes throughout the day.
- ⌘K command palette with full-text fuzzy search across tickers, widgets, presets, and navigation. Type a few letters of any company name and jump straight to focus mode.
- Real-time data refresh every 15s during market hours. Live SIP-grade quotes for the watchlist; live 1-min OHLC bars on the chart with VWAP, EMAs, and ET session shading.
- Chart now preserves your zoom and pan across the 15s refresh. Scroll into a 30-min window and live updates won't reset the view. Daily / 1-min toggle, premarket and afterhours overlays, configurable indicators.
- Ticker search now hits a remote autosuggest endpoint — find AAPL, MSFT, or any company you care about even when they're not on today's movers list. Used to fail silently; now it works.
Dilution risk score — read the cap table in 2 seconds
New- Every small-cap gets a 0-100 dilution risk score with a plain-English verdict ranging from "Dilution unlikely" to "Almost certain to dilute." No more reading 200-page 10-Qs to figure out if a company is going to flood the float.
- "Pending vs Float" bar shows what % of the current float could be diluted via warrants + convertibles + preferred + active ATM + shelf capacity. The single most actionable number.
- Top 3 weighted risk factors surfaced by default — going-concern flag > runway < 6mo > active ATM > death-spiral terms > PIPE cadence > reverse splits > offering count. Each factor explains why it matters in one line.
- Cash + monthly burn + runway computed from TTM data. Runway under 6 months turns red automatically — companies typically raise before they hit that threshold.
- Insider activity inverse signal: when officers and directors are net-buying their own stock in the last 90 days, that's a contrarian bullish flag. Surfaced alongside the negative factors so you see both sides.
Capital Structure widget — DilutionTracker-style cards
New- One card per instrument type: ATM offering, Shelf registration, Warrants, Convertible notes, Preferred stock, Stock options, RSUs. Each shows shares, $ capacity, and a color-coded status badge.
- Warrants split into ITM / OTM at the current price. Pre-funded warrants always count as ITM (their strike is effectively zero). Header shows total + % of float.
- Convertible notes flag death-spiral / floorless structures (variable conversion price tied to VWAP). When detected, shares are modeled at the worst-case current price — not the stated conversion price.
- Active ATMs surface in red with the remaining $ capacity. These let issuers sell shares directly into the market at any time during trading hours, no announcement needed — usually the highest-impact dilution signal.
- 1-line plain-English explainer on every card so you don't need to know what a "shelf takedown" or "Series A convertible preferred" means to use it.
Filing intelligence — built for small-caps
Improved- Pre-funded warrant detection across all tranches. Old extractor only matched the first "warrant" mention in a 10-Q (often in the cash flow statement, not the equity notes); now scans globally and dedupes near-identical share counts within 1%.
- Multi-tranche convertible note aggregation: "$3.5M principal at $2.50 conversion price" + "$1M principal at $5.00 conversion price" sums correctly into total as-converted shares. Number-first ("X warrants to purchase") and reverse-order forms both supported.
- Series A/B convertible preferred extraction from filing text when XBRL doesn't expose the count. Picks up "156 designated and outstanding of Series A" from the equity note plus the conversion ratio from "each share converts into Y shares."
- Active ATM detection from At-The-Market sales agent agreements: parses remaining $ capacity, sales-agent name, and last-known utilization rate.
- Going-concern auditor language detection in the 10-K / 10-Q risk factors. Same for late-filing flags (NT 10-Q / NT 10-K) over the last 12 months.
Three new intelligence widgets
New- Insider Activity: open-market buys vs sells (Form 4 codes P / S) over the last 90 days. Net shares, $ traded, unique buyers vs sellers. The contrarian signal most retail traders never check.
- Capital Raises: timeline of every PIPE, ATM, S-1, S-3 takedown, and Item 3.02 8-K with plain-English summaries — "PIPE — sold 1.2M at $0.85 via Yorkville." Color-coded by type so cadence is obvious at a glance.
- Red Flags: going concern, late filings, toxic conversion terms, repeated reverse splits, runway < 6 months. Each flag links to the source filing.
- News widget: live company news per ticker with sentiment-tagged headlines. Updates in real time when new wires hit.
- Filings widget: latest SEC filings with form type, date, and direct EDGAR links. Filtered by dilutive forms by default; toggle to see everything.
Bug fixes & polish
Fix- Mover row badges (Risk + Dilution grades) now use the new dilution pipeline's scores instead of the legacy enrichment table. Grades are consistent between the row badge, the focus widget, and the dilution widget.
- Capital Raises widget timeline rebuilt from confusing "8-K filed (Item 3.02)" lines to plain-English summaries with proceeds, share count, and structure type.
- 1-min chart no longer goes stale during market hours. Switched to live-first data with a 20s memo cache to coalesce widget bursts; falls back to cached bars only if live fails.
- Layout migrations: persisted dashboards from older builds (with retired widget types) auto-upgrade to the v1.1 catalog on load. No manual reset needed.
Grafion v1.1 — Track your real edge.
grafion.appv1.0.1May 6, 2026Improved
Grafion v1.0.1 — Broker-Accurate P&L
A precision pass on how we compute your P&L. Beta users reported small drifts (a few hundred dollars over a year of trading) when comparing Grafion to their broker statement or Kinfo. We tracked every cent and fixed the gaps. Your dashboard headline now matches your broker statement to the penny — across PropReports, Alpaca, IBKR, and CSV imports.
P&L now matches your broker statement to the cent
Fix- Reconciliation pass: the sync now compares its totals against the broker's authoritative columns (Realized − Trade Fees − Locates) and distributes any rounding residual across closed trades pro-rata by qty. Final headline matches your broker statement to the cent.
- Promotional credits (e.g. account-opening bonuses) are now correctly added back to your P&L. Previously a +$250 promo was being mis-classified as a $250 cost — a $500 swing. Same fix applies to locate refunds and any other broker credit.
- Round-trip detection fixed for same-day long → short cycles. PropReports tags some long-closing sells as route "T" (short-sell intent) — we were leaving the long position open and accumulating phantom buys. Affected ~3% of trades for active intraday accounts.
- Locate fees now split into the broker's line items (Borrows, Daily Interest, Locates / HTB, Misc CoE) instead of one lumped value. Per-symbol locates attributed to the trade that traded that ticker; account-level execution costs (margin interest etc.) prorated by qty share of the day.
- TZ-stable trade IDs: timestamps are now parsed with UTC components so a server-side sync produces the same brokerTradeIds as a local Madrid run. Fixes phantom duplicates that appeared across timezone boundaries.
Cost Breakdown rebuilt to mirror your broker ledger
Improved- Three-group layout matching the broker statement: Trade Fees → Cost of Execution → Adjustments. Each group has its own subtotal, leading to a final account-balance-equivalent total at the bottom.
- Every line item now has a one-line description explaining what it is — what TAF actually charges, what an SD borrow means, what Daily Interest tracks, etc. Hover-free, always visible.
- Promotional credits surface as a positive line in green ("+$250 Promotional Credits") instead of being silently subtracted from your locate total.
- "Platform & Data" toggle renamed to "Adjustments" and now defaults OFF. With it OFF, your equity curve ends at the broker's "Net Trading − Locates" headline. With it ON, the curve ends at your actual broker account balance change.
- New tooltip on the Adjustments toggle explains exactly which fees get added when activated (DAS Trader Pro license, Level 1/2 data feeds, OPRA, API access, etc.).
Profile + leaderboard show the same P&L as your dashboard
Fix- Public profile pages (/u/[handle]) now compute P&L the same way as your own dashboard: Net Trading = trade pnl − locates. Previously these subtracted platform/data subscriptions too, so users with richer data feeds appeared lower than they actually were.
- Leaderboard period filters (today / week / month / etc.) now subtract locate cost per trade. Previously they summed raw pnl without locates, over-stating P&L by 1-3% for short-sellers.
- Leaderboard "exceeded expectations" view and PnL leagues use the same Net Trading formula. Your rank now lines up with the headline number you see at the top of your dashboard.
- Single source of truth: all four call sites (dashboard, profile, leaderboard refresh, leaderboard list) share the safeLocateCost helper. No more divergence as we add features.
Works across every supported broker
- PropReports gets the full per-category breakdown (Borrows / Daily Interest / Locates / Misc CoE) since their adjustments API exposes the categories.
- Alpaca, IBKR, MetaApi, and CSV imports gracefully fall back to a single "Locates / HTB" line — they typically don't expose locate sub-categories. Your headline P&L still matches their account statements.
- New trades from any broker automatically pick up the new format on next sync. Existing trades stay readable (legacy lumped locateCost field still honoured by the metrics layer).
Grafion v1.0.1 — Track your real edge.
grafion.appv1.0.0April 29, 2026Launch
Grafion v1.0.0 — Public Launch
After months of beta testing with real traders, Grafion is now public. This release brings a redesigned calendar, smarter cost tracking, customizable themes, guided tours, and a full security pass. If you joined us during beta — thank you. Here is everything that ships with the launch.
Calendar, reimagined
New- New full-screen month view: click any month and you get a single calendar with big, readable days, P&L per day, and a coloured accent strip for wins, losses, and break-even.
- Click any day to open an animated detail modal: intraday cumulative P&L curve, the full trade list of the session, plus four key metrics (total P&L, win rate, biggest winner, biggest loser).
- Keyboard navigation in the modal: ←/→ jumps between days within the month, Esc closes.
- Saturdays and Sundays now render with a darker tint so the weekend gap reads at a glance.
- Each month card has a weekly totals column on the right with the week's P&L and W/L count.
Calendar tools
Improved- Year heatmap: rolling 365-day overview with the same colour intensity as the monthly grid. Click any cell to jump straight to that month.
- P&L chart with three modes: Equity Curve, Daily P&L, Drawdown — toggle freely.
- Period filters (7D / 30D / 3M / 6M / YTD) now rebase the equity curve to $0 on the first day of the window, so you see what the period actually did instead of a slice of an absolute cumulative.
- New monthly equity curve below the big calendar grid — anchored at $0 on the first traded day, green if the month closes positive, red if not.
- Rich hover tooltip on each day with weekday, P&L, fees, locates and a journal-note indicator.
Journal — fully rebuilt
New- Brand new journal system. Daily journal entries with mood, lessons, mistakes catalog, and rule-by-rule discipline tracking — all tied to the day's P&L.
- Discipline rules: define your trading commandments once (e.g. "no FOMO entries", "max 3 trades per day") and check them off each day. The system tracks streaks and shows when adherence drops.
- Reusable journal templates — set up a daily review template once and apply it with one click each session.
- Mistakes taxonomy: a structured list of common trading errors so you can tag what actually happened instead of free-form text that's impossible to query later.
- Day notes integrate with the calendar — every day with a note shows an indicator dot, and clicking jumps straight to that day's journal.
- Image attachments and rich-text notes for setups, screenshots and post-trade reflections.
Scanner — totally new
New- Complete rebuild as a customizable widget grid. Drag, resize, save layouts per breakpoint — desktop and tablet are independent.
- New widgets: candlestick chart with VWAP, multi-EMA, gap S/R levels, and ET pre-market / after-hours session shading on the 1-minute timeframe.
- Focus widget consolidates fundamentals, ratios, short interest and float for any ticker in one place.
- Live news feed + SEC filings + halts widget — the things that move premarket prices, surfaced where you're already looking.
- Custom alerts engine with sound + browser notifications, configurable per ticker, persisted server-side.
- Risk and dilution scoring on every ticker, computed from float, share structure and recent filings.
Smarter cost insights
Improved- Cost breakdown now separates trading fees (commissions, ECN, SEC, TAF, NSCC, locates, etc.) from monthly overhead in two distinct sections.
- Platform and Market Data are tracked as separate line items — different vendors, different invoices, different decisions to make.
- Broader category matching: Level 1, Level 2, OPRA, NYSE/NASDAQ/Arca, TotalView, Quote Fee, Exchange Fee, Subscription, Terminal — all routed to the right bucket automatically.
- Adjustments that don't match any known category now land in "Misc" instead of vanishing — your displayed total finally matches what you actually paid.
Customize your view
New- New aurora intensity slider in the theme editor — dial the animated background from subtle to immersive without leaving the page.
- Background style, color palette and animation type all persist server-side so the look survives device switches.
- Theme bootstraps from a server-rendered cookie so dark/light mode is correct on first paint — no flash on reload.
Guided tours
New- New interactive tours for Dashboard, Journal and Scanner — first-time visitors get a guided walkthrough of the key features.
- Replay any tour from Settings → Tours, useful when you onboard a colleague.
- Tour overlays now stay centered on screen, never collide with the bug-report or daily-note buttons, and animate smoothly between steps.
Security pass
Security- Full third-party audit completed and acted on. Every Critical and High finding is closed in this release.
- CSP tightened: explicit script-src-elem / style-src-elem, strict-dynamic on scripts, worker-src and manifest-src locked down.
- Cron endpoints now require an authenticated Bearer token plus a signed cron header in production. The scanner cleanup job is restricted to rows older than 6 hours, so a single rogue call can't wipe live cache mid-session.
- API middleware inverted to a deny-list: every /api/* route requires a session by default unless explicitly listed as public.
- Broker re-sync routes (IBKR, Schwab, TradeStation, MetaApi, PropReports) return a clear 400 with a "please reconnect" message if stored credentials are unreadable, instead of a 500 with a stack trace.
- Stripe webhook idempotency confirmed via dedicated event-table, AES-256-GCM with random per-record IV verified for broker keys, 2FA paths covered with per-user + per-code rate limits.
Launch promo codes
New- Promotion codes now work at checkout — type your code in the "Add promotion code" field on the Stripe checkout page.
- Three launch codes are live for early supporters: ask in our community channels.
Polish & fixes
Fix- Calendar overview no longer overflows day cells — small heatmap squares show only the colour, and the rich tooltip handles the exact P&L on hover.
- Calendar pages are width-constrained to match the rest of the dashboard (no more 100%-wide stretching on ultra-wide displays).
- Card opacity bumped on calendar pages so the aurora background no longer bleeds through and hurts readability.
- Theme editor: aurora slider control now persists correctly between sessions.
Thank you
- To every beta tester who imported a CSV, broke a flow, told us about it, and tried again the next day — this release exists because of you.
- Same direction for v1.x: more brokers, deeper journal analytics, expanded scanner intelligence. Stick around.
Grafion v1.0.0 — Track your real edge.
grafion.appv0.5.14April 21, 2026
Instant First Paint
Small release, one focused goal: the main screens now arrive with their data already in place. No more spinner while the numbers load.
What you will notice
Performance- Dashboard, trades and scanner open with content visible from the first moment.
- Noticeably snappier when navigating between the three pages you use the most.
- Profile pages you have already visited feel instant on return.
- No more background flash on login — texture and grain now arrive together with the content, not a beat later.
Under the hood
- Moved the heavy reads to the server so the browser gets a fully-rendered page in a single request instead of two round-trips.
- Consolidated duplicated logic between the API and the pages — one place to update, one cache warmed for both.
Grafion v0.5.14 — Track your real edge.
v0.5.13April 21, 2026
Faster, Safer, Smoother
A mostly invisible patch — no new buttons, no new pages. Under the hood we did a full pass to make the whole platform noticeably faster and significantly harder to abuse. If it feels snappier and public profiles render instantly, that is this release.
Speed
Performance- Leaderboard and profile views now hit an intelligent cache layer — repeated loads are several times faster.
- Database read paths were tuned with new composite indexes on the hottest queries (metrics, leaderboard, scanner).
- The metrics engine that powers the dashboard was rewritten to touch each trade once instead of multiple times — noticeable if you have thousands of trades.
- CSV imports of plain .csv files start faster: heavy Excel parsing code is only loaded when you actually upload a spreadsheet.
- Images (avatars, country flags, logos) now use modern formats and lazy-loading where possible.
Public Profiles
Improved- Profile pages (/u/handle) now render their data on the server — no more spinner on first load.
- Sharing a profile link on Twitter, Discord or WhatsApp finally shows a proper preview: name, avatar and Edge Score instead of generic text.
- Cache invalidates automatically after a trade import so the numbers stay fresh.
Security
Security- Completed a full security audit covering every API route, form submission and background job.
- Strengthened the browser-level protections against injected scripts — this is one of the most important defenses for any web app with user-generated content like the journal.
- Hardened user-content handling across the journal: rich text you paste is now cleaned with a dependency-free sanitizer specifically tuned for our editor.
- Rate-limiting across login, password reset, and 2FA now attributes requests to the real visitor IP. Previously some requests collapsed into a shared bucket, which could cause false lockouts.
- Password reset and login flows no longer reveal whether an email exists on the platform via response timing.
- Subscription state now refreshes within a minute of any Stripe change — no more waiting for the session to expire after cancelling or upgrading.
- Uploaded images (bug reports, screenshots) are now validated by content, not just by filename, and stored in dedicated cloud storage.
- Promo codes are redemption-safe even under concurrent attempts — no more accidental double-redemptions.
Reliability
Fix- Payment webhook replays are now ignored safely — retries from our payment provider can no longer re-grant expired plans.
- Background jobs (scanner cron, data cleanup) now log their activity with full context for forensics.
- Monitoring traffic was tuned down to essentials, keeping diagnostics strong while reducing noise.
Behind the scenes
- No action needed on your side — existing accounts, imports, journal entries and subscriptions are unaffected.
- All database changes in this release were additive. Nothing was dropped, nothing was rewritten. Your data is intact.
Grafion v0.5.13 — Track your real edge.
v0.5.12April 17, 2026
Trade Management, CSV Fixes & Security Hardening
This patch focuses on reliability, security, and trade management — many improvements come directly from beta tester feedback. Thank you to everyone who reported bugs and shared suggestions. Your input is shaping Grafion into a better tool for all of us.
Trade Deletion
New- Delete individual trades (CSV and manual imports only)
- Bulk delete: remove all trades by source (API, CSV, Manual) or delete everything at once
- API-verified trades are protected from individual deletion to preserve verification integrity
- Double confirmation required: select source, review count, type DELETE to confirm
- Metrics, Edge Score, and leaderboard are automatically recalculated after deletion
Journal — Rich Text Editor
New- Full Notion-like journal: create pages, organize in folders, rich text editor with images
- Add stock metadata to each day: symbol, float, sector, micro-float flag, personal notes
- Image upload directly into journal entries via drag & drop or paste
- Autosave — your notes are saved automatically as you type
Scanner Improvements
Improved- New filter controls: min/max price, min change %, min volume, market (XNAS/XNYS)
- Column sorting: click any header to sort by change, volume, price, gap, etc.
- Background cron refresh every 60s — scanner loads instantly, no waiting for data
Dashboard
New- Roadmap modal: see the development phases and what's coming next, directly from the dashboard
- Leaderboard and metrics pages received visual improvements and better data display
CSV Import Fixes
Fix- Fixed: selecting "Other Broker" no longer forces the generic parser — auto-detection now identifies the correct format (Alaric, ProReports, DAS Trader, etc.)
- Fixed: error messages now display properly instead of showing [Object Object]
- Fixed: the import button no longer disappears after a failed upload — no need to refresh the page
- Improved generic parser: now recognizes B/S column and short/T sell actions from any broker export
- Added warning banner on the import page advising users to report issues via the bug button
Theme Flash Fix
Fix- Fixed the dark-to-light flash on page reload for users with light theme enabled
- Theme preference is now cached locally for instant application before React hydrates
Journal UX
Improved- Drag and drop pages between folders
- Insert trade references directly into notes — click "Insert" next to any trade
- Collapsible sidebar with persistent toggle button on all screen sizes
- Better folder creation: validation feedback, placeholder text
- Fixed Pro subscription flash when navigating between pages
Scanner UX
Improved- Infinite scroll: loads 50 tickers initially, more as you scroll
- Country flags shown next to each ticker
- "NEW" badge on tickers that appeared in the last 10 minutes
- Filter panel with Apply button — no more API call on every keystroke
Calendar
New- Date range filter: 7D, 30D, 3M, 6M, YTD, or view all history
Security & Reliability
Security- Scanner: fixed potential NaN values in filter parameters that could reach the database
- Scanner: added concurrency lock to prevent thundering herd when cache expires
- Scanner: stale data cleanup now properly scoped — no risk of deleting unrelated records
- Validation: added regex validation to stock symbol inputs across all schemas
- Full security audit: reviewed all API routes, input validation, and data handling
- Fixed IDOR vulnerability: folder move operations now validate ownership
- Hardened cron endpoint authentication — removed spoofable header bypass
Infrastructure
Performance- Database connection pool optimized for serverless (max 1 per function)
- Scanner data query reduced from 10MB to 50KB (removed unnecessary JSON payload)
- FRED macro data cached for 1 hour instead of fetching every minute
Community
- Thank you to all beta testers for the feedback and bug reports — every report helps make Grafion better
- Second wave of beta invites sent: 19 new testers onboarded
Grafion v0.5.12 — Track your real edge.
v0.5.11April 15, 2026
Mobile-First Redesign, Smarter Metrics & Broker Management
Mobile Experience
NewThe entire dashboard is now fully responsive. Every page, modal, and chart adapts to mobile screens.
- Bottom navigation bar on mobile replaces the desktop sidebar — quick access to Dashboard, Trades, Journal, Scanner, Leaderboard, and Settings
- All modals and drawers now fit properly on small screens — trade details, journal entries, add trade form
- Calendar heatmap cells and month cards resize for touch
- Metrics grids stack vertically on narrow screens instead of overlapping
- Gap Study table in Scanner is now horizontally scrollable on mobile
- Profile settings layout adapts — avatar, save buttons, and form fields stack properly
Metrics & Equity Curve
- New: Full Net Equity Curve — toggle between three equity views:
- Gross — raw P&L before any deductions
- Net — after commissions and locate costs
- Net + Platform Costs — includes software, data, and platform fees
- "Include platform costs" checkbox on the equity curve chart lets you see the real impact of your overhead
- Fixed P&L calculations — locate costs are now correctly separated from platform/software fees. Your net P&L only subtracts commissions and locates; platform costs are tracked separately for clarity
Broker Management
New- Disconnect button on every connected broker — click the X icon to start the disconnection flow
- Two-step confirmation to prevent accidents:
- "Are you sure? Your credentials will be permanently deleted. This cannot be undone."
- "Do you also want to permanently delete all trades imported from this broker?"
- Per-broker trade deletion — only removes trades from the broker you're disconnecting. Trades from other brokers and manual entries are untouched
- Your metrics automatically recalculate based on remaining trades
CSV Import
- New broker support: PropReports — direct CSV parsing with full fee breakdown (comm, ECN, SEC, TAF, NSCC, CLR, CAT, misc)
- New broker support: Alaric — pre-matched trade format with entry/exit in same row
- XLSX support — you can now upload Excel files directly, not just CSV
Changelog Page
New- New /changelog page — all patch notes in one place, accessible from the landing page
- Language switcher (English / Spanish) — same system as the rest of the app
- Clean timeline design with version badges, color-coded tags, and bullet points
Error Monitoring
New- Sentry integration — crash reports and performance monitoring are now active in production
- Source maps are uploaded for readable stack traces but deleted from the client build for security
Bug Fixes & Polish
- Fixed period selector overflow on narrow screens in Metrics
- Fixed Monte Carlo simulation stats wrapping on small screens
- Improved Risk/Returns grid layout on mobile
- Fixed P&L summary grid stacking on small screens
- Profile page avatar and save buttons now stack properly on mobile
- Trade drawer padding optimized for mobile
- Add Trade modal form fields stack on small screens
What's Next
- Recharts equity curve visualizations with interactive tooltips
- Data export (CSV/PDF reports)
- Audit log viewer in Security settings
- More broker API integrations
Grafion v0.5.11 — Track your real edge.
grafion.app