← Back

Revenue Dashboard Sync

Always-fresh runway number, zero spreadsheet maintenance

Revenue Dashboard Sync overview

The Problem

A seed-stage startup tracks revenue in Stripe, expenses in a shared Google Sheet, and runway projections in a Notion page that the CEO updates every Monday morning (when he remembers). Investor updates require pulling numbers from 3 places.

The "runway" number is always stale. Twice, the team was surprised by how little runway remained because nobody updated the sheet for 3 weeks. When you're burning $30k/month, a 3-week blind spot can be the difference between raising on time and running out of cash.

The Solution

A daily cron job that pulls live revenue from Stripe and expenses from the team's sheet, calculates all financial metrics, updates a Notion time-series dashboard, sends a weekly digest, and alerts immediately if runway drops below the safety threshold.

  1. Cron fires daily at 7am
  2. Stripe API fetches current MRR, active subscriptions, and churn
  3. Google Sheets reads the monthly expenses breakdown
  4. Code node calculates burn rate, net revenue, and runway months
  5. Notion gets a new row in the dashboard database (creating a time series)
  6. On Mondays, Slack posts the weekly summary to #founders
  7. If runway drops below 6 months, immediate alert fires

The Workflow

This is a sanitized replica of the production workflow. Credentials, API keys, and client-specific data have been removed to protect confidentiality.

Results

  • Dashboard always current (updated daily, not "when someone remembers")
  • CEO reclaims 1 hour/week of manual number crunching
  • Runway alert prevented a surprise cash crisis
  • Investor updates now take 2 minutes (just share the Notion link)
  • Full financial history in Notion for trend analysis

Timeline

Mar 2026

Stack

n8nStripeGoogle SheetsNotionSlack

Responsibilities

  • Financial metrics calculation logic
  • Stripe API integration
  • Notion database automation
  • Alert threshold system