Continuously updated

Changelog

Every release, every improvement — tracked here. Lifetime users get all of it for free.

Conversion potential, engagement benchmarks, and optimal send time

  • Conversion Potential — free subscribers scored 0-100 on likelihood to upgrade based on engagement depth, tenure, and consistency (Subscribers tab)
  • Top 10% Engagement Benchmark — see how your top performers engage and how much better they open compared to average (Overview tab)
  • Geographic Engagement Analysis — countries ranked by active 7d/30d engagement with stat cards showing top 3 (Reach tab)
  • Optimal Send Time — when your subscribers actually open emails based on ZIP timestamps, distinct from when you historically posted (Publications tab)
  • Better Growth Predictions — upgraded to 180-day forecast using exponential smoothing with trend strength indicator (Overview tab)
  • Best Hour to Post renamed to "Best Hour to Post (Historical)" to clarify it shows your past posting patterns vs subscriber activity
  • CSV export for Conversion Potential includes all high+medium potential subscribers, not just top 20
  • Removed Email Client Stats (unreliable user agent detection) and Post-to-Unsubscribe section (data not available in most exports)

Completion rates, Restacks tracking, and Evergreen Winners table

  • See which posts people actually finish reading — new Completion Rate shows what percentage of readers scroll to the end
  • Track your Substack Notes reshares — Restacks column helps identify which posts go viral
  • New Evergreen Winners section highlights your best long-term content — posts people keep coming back to weeks after you publish
  • Click rates now show for all your posts, not just older ones
  • Post dates now include time stamps so you can see how publishing time affects open rates

Churn Risk scoring improvements & per-tier CSV export

  • CSV export buttons on High, Medium, and Low Risk tiles — download the full subscriber list for each bucket
  • Churn Risk scoring overhauled — new subscribers now get a 60-day grace period (was 30) before being flagged High Risk
  • Medium risk split now uses lifetime opens instead of a circular 6-month rate — long-time readers who've gone quiet score lower than subscribers who were never engaged
  • Drop rate penalty no longer applies to recently active subscribers (opened in last 30d)

CSV export for key subscriber tables

  • CSV export button on Superfans, Top 15 Most Engaged Readers, and Recoverable At-Risk Subscribers tables
  • PII reveal button added directly to the Recoverable At-Risk sub-section for quicker access

Advanced analytics & overview redesign

  • Overview redesigned — three exclusive insight panels at top (Audience Health segmentation, Growth Momentum with 90-day forecast, Best Time to Post)
  • Smart Audience Segments (Champions, Loyalists, At-Risk, Ghosts) now lead the Subscribers tab
  • Publications tab — new Publishing Health snapshot showing open rate trend, all-time best post, and best posting time at a glance
  • Growth Sources — Content-to-Growth Correlation promoted above sources table (shows subscriber lift before/after each post)
  • Smart Insights expanded to full-width two-column layout on Overview
  • Trend lines on Overview growth chart and Growth tab subscriber chart
  • Stacked area chart in Growth tab showing daily visitors by source (top 6 sources)
  • Source quality insight in Smart Insights — compares acquisition sources by conversion rate, excludes noise sources
  • Growth plateau detection in Smart Insights — flags when growth stalls below 3 subs/day
  • Post-to-Unsubscribe Correlation table in Publications (shows explanation for free-only newsletters)

Auto-Sync Beta

  • Auto-Sync Beta — one-click download of all Substack data (subscriber export + ZIP export) directly from Settings
  • Settings redesign — Auto-Sync at top, Manual Upload and Your Data as separate sections
  • map[Bug fixes:Reach tab charts, at-risk subscriber filter, monthly traffic KPIs]
  • Median Days Since Open now color-coded green/yellow/red for quick health assessment

Onboarding & instructions update

  • Onboarding modal updated with correct Substack export paths matching the instructions page
  • ZIP export promoted to "Most valuable" in onboarding — it was previously buried under Deep analytics
  • Removed stale "Email / Publication Stats" export entry that no longer exists in Substack
  • Fixed Audience Location to show 3 downloads (countries, US states, followers) instead of 2
  • Added "Full instructions" link in onboarding modal (top and footer) opening stackstats.app/instructions
  • Fixed Overview chart tooltip — correctly says daily, not weekly

Smart audience segments, churn risk & post engagement scores

  • Smart Audience Segments — five named groups (Champions, New & Active, Loyalists, At Risk, Ghosts) computed from tenure, engagement, and subscriber type
  • Churn Risk Radar — each subscriber scored 0–100 based on engagement recency and decay; shows High/Medium/Low distribution and a recoverable at-risk table
  • Post Engagement Score — composite 0–100 score per post combining open rate, likes, comments, shares, and signups; shown as Eng column in post table
  • Hidden Gems — new section in Publications surfacing posts with strong engagement scores but below-average open rates
  • Info icons (ⓘ) added to all new data points, segment labels, and table column headers with plain-English explanations

Folder support for Substack export

  • ZIP export folder support — if macOS auto-extracts the Substack ZIP, the app now detects and imports the folder directly
  • Auto-scan and manual browse both work with extracted folders, not just .zip files

UI polish & manage license

  • Manage License link in Settings — opens stackstats.app/manage-license to view and deactivate devices
  • Help button in Settings to re-open onboarding anytime
  • Settings button moved to topbar with label for easier access
  • AI badge now only visible on AI Insights tab
  • Sidebar footer simplified — files loaded + as-of date only

OTA Bug Fixes on Mac version

  • OTA test release

OTA Bug Fixes

  • Fixed OTA install on Mac — disabled Electron asar fs patching (process.noAsar) + shell rm -rf for belt-and-suspenders reliability

OTA Bug Fixes

  • Fixed OTA install crash on Mac — used shell rm -rf instead of Node fs.rmSync to avoid Electron's asar fs patching issue

Onboarding screen

  • Added onboarding screen on first launch — shows where to download each file type from Substack
  • Added "?" help button in Settings → Your Data to re-open onboarding anytime

OTA fix + UI polish

  • Fixed OTA update download — now uses GitHub API to find the correct zip asset, no YAML parsing
  • Sidebar nav icon and text spacing tightened
  • Mini stats bar now shows "as of [date]" so you can see when data was last loaded

UI polish + data freshness

  • Sidebar nav icon and text spacing tightened
  • Mini stats bar now shows "as of [date]" so you can see when data was last loaded

Mac auto-update without Developer cert

  • Fixed Mac auto-update — bypasses Squirrel.Mac/ShipIt entirely, no Apple Developer cert required
  • Update now extracts and replaces the app bundle directly, then relaunches cleanly
  • Fixed update errors being silently swallowed; now shown with a Retry button
  • Fixed "Check for updates" button in Settings showing the progress modal correctly

Auto-update fixes

  • Fixed auto-update stuck at 0% — download errors were silently swallowed; now shown with a Retry button
  • Fixed Mac auto-update — zip artifact now included in builds so electron-updater can apply in-place updates
  • Fixed "Check for updates" button in Settings — now shows the download progress modal correctly

Update button fix in Settings (incomplete)

  • Partial fix — update modal was not visible because it is nested inside the splash overlay

OTA update progress bar

  • Download progress bar shown when installing an update — fixes stuck "Downloading..." state
  • App restarts automatically once download completes

Subscriber geography & rising readers

  • Subscribers by State/Province chart — top regions from the richer subscriber export, shown alongside acquisition sources
  • Rising Readers table — subscribers with comments or shares in the last 7 days, ranked by recent activity score
  • Momentum ratio — compares a reader's daily engagement rate this week vs their 30-day baseline (e.g. 2.4× means they are twice as active as usual)
  • Release info in Settings — shows current version, latest release date fetched live from GitHub, and a Check for updates button
  • Fixed update check hanging on splash screen in dev builds

Light/dark theme & version management

  • Substack-style light theme — warm cream palette matching the Substack aesthetic, with the orange accent
  • Dark mode — original dark theme preserved; toggle with the ☀/☾ button in the sidebar
  • Theme preference saved — persists across restarts
  • Version number shown in sidebar footer
  • About card in Settings — current version, latest release date, one-click update check

Renamed to StackStats

  • App renamed from Stacklytics to StackStats throughout
  • Fixed splash screen hanging when update check is skipped in dev

Initial release

  • 7 analytics tabs — Overview, Growth Sources, Subscribers, Publications, Deep Dive, Reach, AI Insights
  • 9 CSV file types supported — growth, subscribers, email stats, traffic, followers, audience location, email count, traffic sources, ZIP export
  • ZIP export analytics — per-post opens, clicks, device breakdown, top countries; bot filtering removes GoogleImageProxy inflated open counts
  • Richer subscriber export — 43-column subscriber-export CSV parsed transparently with engagement, activity, and conversion fields
  • Overview — KPI cards, daily growth chart with period filter, traffic donut, smart insights, 90-day growth forecast
  • Growth Sources — ranked source table with conversion %, content-to-growth correlation, source quality by engagement
  • Subscribers — engagement segments, subscriber countries, acquisition sources, paid conversion time, churn analysis
  • Publications — timing charts (best day/hour), resend candidates, post performance table with bot-filtered open rates
  • Deep Dive — engagement funnel, cohort retention, open rate decay, superfans widget, top 15 readers table
  • Reach — page views, followers vs email subs stacked area, top countries by signups and email opens
  • AI Insights — 4 insight cards (Growth, Engagement, Audience, 30-Day Plan) plus live chat with 7 provider support
  • AI providers — Anthropic, OpenAI, Gemini, OpenRouter, Groq, Ollama, custom OpenAI-compatible endpoints
  • Licensing — Gumroad + Cloudflare Worker backend; 1-year and lifetime tiers; per-device activation
  • OTA updates — auto-detects new releases via GitHub Releases, prompts on launch
  • All data stays local — AI providers receive only aggregated summaries, never raw email addresses or subscriber data