Business

Indie SaaS Metrics Dashboard: What I Track Weekly in 2026

Every Sunday morning, before I do anything else, I sit down at my desk with a cup of black coffee and open the same five browser tabs I've opened every...

Every Sunday morning, before I do anything else, I sit down at my desk with a cup of black coffee and open the same five browser tabs I've opened every Sunday for the past year. It takes about 45 minutes. It's not glamorous. It's not exciting. But it's the single most important habit I've built as an indie SaaS founder, and I'm convinced it's why my products are growing instead of slowly dying.

Most indie builders either track nothing — flying completely blind — or they track everything, drowning in dashboards full of metrics that don't actually inform decisions. I've been on both sides. Neither works. What works is a tight set of numbers reviewed consistently, with the discipline to ignore the rest.

The Heap

The Heap

Discarded robots refuse to die. Engineer Kira discovers their awakening—and a war brewing in the scrap. Dark dystopian SF. Consciousness vs. corporate power.

Learn More

Here's exactly what I track, how I track it, and why most of the metrics people obsess over are complete noise.


The Sunday Review: My Actual Process

I'm going to walk through my exact weekly review process, in order. This isn't theoretical. This is what I did last Sunday, and the Sunday before that, and every Sunday going back to mid-2025.

Total time: 40-50 minutes Tools open: Google Analytics, Google Search Console, DigitalOcean dashboard, PostgreSQL admin, a spreadsheet

I track metrics across three properties: Grizzly Peak Software (grizzlypeaksoftware.com), AutoDetective.ai, and the book. Each one gets its own section in the review.


Metric 1: Weekly Organic Sessions (The Only Traffic Number That Matters)

I start with Google Analytics for each property and look at one number: organic sessions for the past 7 days compared to the previous 7 days.

Not total sessions. Not page views. Not "users." Organic sessions.

Here's why: organic traffic is the only traffic source that compounds without ongoing spend. Paid traffic stops the moment you stop paying. Social traffic is spiky and unreliable. Direct traffic is mostly people who already know you. But organic traffic from search? That's the compounding asset. If it's going up week over week, you're building something durable. If it's going down, something is wrong and you need to figure out what.

My current weekly organic sessions (as of early March 2026):

| Property | Weekly Organic Sessions | Trend | |----------|----------------------|-------| | Grizzly Peak Software | ~4,200 | Slowly growing | | AutoDetective.ai | ~8,900 | Plateaued last month | | Book landing page | ~180 | Stable |

The AutoDetective plateau concerned me when I first noticed it three weeks ago. Organic traffic had been climbing steadily for months, and then it just… stopped. My instinct was to panic and start publishing more pages. Instead, I looked at the data. Turns out Google rolled out a minor core update that temporarily shuffled rankings for programmatic content. Two weeks later, traffic started recovering. If I hadn't been tracking weekly, I either wouldn't have noticed the plateau or I would have overreacted to normal algorithmic fluctuation.

That's the value of consistent tracking: it gives you the context to tell real problems from noise.


Metric 2: Search Console Impressions and Average Position

After organic sessions, I open Google Search Console for each property. I'm looking at two things:

Total impressions for the week — this tells me how visible my content is in search results, even if people aren't clicking. Rising impressions with flat clicks means my titles or meta descriptions need work. Rising impressions with rising clicks means the content is doing its job.

Average position movement for my top 20 queries — I don't care about the absolute position as much as the trend. If my top queries are slowly moving from position 8 to position 5, good things are coming. If they're sliding from 5 to 9, I need to investigate.

I track this in a simple spreadsheet. Nothing automated. Every Sunday I manually type in the numbers for my top queries. It takes about 10 minutes per property. Could I automate this? Sure. But the manual process forces me to actually look at the data instead of glancing at a dashboard and closing the tab.

Here's what my Search Console tracking spreadsheet looks like (simplified):

Query                              | Pos W1 | Pos W2 | Pos W3 | Pos W4 | Trend
-----------------------------------|--------|--------|--------|--------|------
node.js express tutorial           |   12.3 |   11.8 |   10.4 |    9.7 | UP
azure devops pipeline yaml         |    6.1 |    5.9 |    6.2 |    5.8 | STABLE
2024 honda civic check engine      |    3.2 |    3.1 |    3.4 |    2.8 | UP
remote software engineer jobs      |   18.7 |   17.2 |   16.1 |   15.3 | UP
training llm from scratch          |    8.4 |    8.9 |    9.1 |    9.5 | DOWN

That "training llm from scratch" query sliding downward? That's my book's primary search keyword. When I noticed that trend, I went back and updated the book landing page content, added some fresh testimonials, and built two new internal links to it from recent articles. Next week I'll check if the decline reversed. That's how this process works — small interventions based on real data, not gut feelings.


Metric 3: Revenue (All Sources, Weekly)

This one seems obvious, but you'd be surprised how many indie builders don't track revenue weekly. They check it when they feel like it, or they look at monthly totals, or they just check their Stripe dashboard when they get a notification.

I track weekly revenue broken down by source:

  • Ad revenue (Grizzly Peak internal ad system)
  • Affiliate commissions (Amazon Associates, primarily)
  • Book sales (Amazon royalties, direct sales)
  • Job board (if/when I add premium listings)

I'm not going to share exact numbers because frankly they're modest enough to be embarrassing next to the "I made $50K MRR in 6 months" crowd on Twitter. But I will say this: tracking weekly instead of monthly lets me spot seasonal patterns that monthly tracking obscures.

For example, I noticed that affiliate revenue dips every first week of the month and peaks in the third week. Took me a few months of weekly tracking to see that pattern. My theory: people get paid mid-month and that's when they make discretionary purchases. Whether that's right or not, the pattern is consistent enough that I now time my product-focused content drops to the second and third weeks of each month.

You can track this in a basic Node.js script if you want to pull it automatically:

var https = require('https');

function getWeeklyRevenueSummary(callback) {
    var sources = {
        ads: 0,
        affiliate: 0,
        book: 0,
        other: 0
    };

    // Pull from your own database
    var query = "SELECT source, SUM(amount) as total FROM revenue " +
                "WHERE created_at >= NOW() - INTERVAL '7 days' " +
                "GROUP BY source";

    // In practice, I run this against my PostgreSQL instance
    db.query(query, function(err, results) {
        if (err) {
            console.error('Revenue query failed:', err.message);
            return callback(err, null);
        }

        results.rows.forEach(function(row) {
            if (sources.hasOwnProperty(row.source)) {
                sources[row.source] = parseFloat(row.total);
            }
        });

        sources.total = Object.keys(sources).reduce(function(sum, key) {
            return sum + sources[key];
        }, 0);

        callback(null, sources);
    });
}

I don't actually have a revenue tracking table — I manually compile from different sources. But if your revenue sources grow beyond three or four, building something like the above saves a lot of Sunday morning tab-switching.


Metric 4: Server Costs and Margin

This is the metric that separates real indie businesses from expensive hobbies. Every week I check my DigitalOcean dashboard to see what I'm spending on infrastructure.

My current monthly infrastructure costs:

| Service | Monthly Cost | |---------|-------------| | DigitalOcean App Platform (Grizzly Peak) | $12 | | DigitalOcean App Platform (AutoDetective) | $12 | | Managed PostgreSQL | $15 | | Domain renewals (amortized) | ~$3 | | Contentful CMS (free tier) | $0 | | Total | ~$42/month |

I track this weekly even though it doesn't change much because I've been burned before by runaway costs. A misconfigured database query that spins up excessive connections. A traffic spike that pushes you into a higher tier. A forgotten development instance still running. Checking weekly means I catch these before they become a $200 surprise on the credit card statement.

The key metric here isn't the absolute cost — it's the margin. Revenue minus infrastructure cost. If that number is positive and growing, you have a real business. If it's negative, you have a hobby. Both are fine, but you should know which one you're running.


Metric 5: Content Velocity

I track how many new pieces of content I published in the previous week across all properties. For Grizzly Peak, that's articles and library entries. For AutoDetective, that's new programmatic pages.

This metric matters because content is the engine that drives everything else. If I stop publishing, organic traffic eventually plateaus and then declines. The question is whether I'm publishing enough to maintain growth momentum.

My current target: 3 new articles per week on Grizzly Peak, and at least one batch of new AutoDetective pages per month. Some weeks I hit it. Some weeks I don't. The weekly tracking keeps me honest.

I don't set content velocity targets based on what productivity influencers say I should publish. I set them based on what my data shows actually moves the organic traffic needle. For Grizzly Peak, I've found that 3 articles per week keeps the growth trend positive. Below that, traffic slowly flattens. Above that, there are diminishing returns because I can't maintain quality at higher volumes while also doing everything else.


What I Don't Track (And Why)

Here's the stuff that most indie builders obsess over that I've deliberately stopped tracking:

Social media followers. I have basically no social media presence and it hasn't mattered. My traffic comes from search, not Twitter. Tracking follower counts would just make me feel bad about something that isn't relevant to my business model.

Bounce rate. This metric is almost meaningless for content sites. Someone lands on an article, reads the whole thing, and leaves. That's a "bounce" by Google Analytics' definition, but it's exactly the behavior I want. A 70% bounce rate on a technical article is perfectly normal and healthy.

Time on page. Same problem. It's too noisy to be actionable at the weekly level. Some articles are 1,500 words and some are 5,000 words. Comparing time-on-page across them tells me nothing useful.

Email open rates. I send so few emails that the sample size makes open rate statistically meaningless. When I do send one, I care about click-through to my properties, not whether someone "opened" an email (which is an unreliable metric anyway thanks to privacy features in modern email clients).

Daily active users. This is a SaaS metric for products with daily usage patterns. My products are content sites. People come when they have a problem, read the answer, and leave. Tracking DAU would just give me a number to feel anxious about.

The discipline of choosing what NOT to track is just as important as choosing what to track. Every metric you add to your dashboard is a potential source of anxiety, distraction, or misguided optimization. If a number wouldn't change what you do this week, don't track it this week.


The Spreadsheet vs. Dashboard Debate

I've tried building automated dashboards. I've tried Grafana. I've tried Google Data Studio. I've tried plugging everything into Notion. I always come back to a plain Google Sheets spreadsheet.

Here's why: the manual entry process is the point. When I have to manually look up each number and type it into a cell, I'm forced to actually engage with the data. When everything is automated, I glance at a dashboard, see green arrows, and close the tab. I don't think about what the numbers mean. I don't notice subtle trends. I don't ask "why did that change?"

My spreadsheet has one tab per property, with columns for each weekly metric and rows for each week. There's a "Notes" column on the far right where I jot down observations and hypotheses. Those notes are often more valuable than the numbers themselves.

A few entries from my notes column over the past month:

  • "Feb 16: Organic sessions down 8% WoW. Checked — Google core update rolling out. Wait and see."
  • "Feb 23: Sessions recovering. Impressions actually up 12%. Good sign."
  • "Mar 2: Affiliate revenue spiked — traced to one article about API testing tools ranking for a new keyword. Double down on tool comparison content."

That last note led to me writing three more tool comparison articles the following week. One of them is already ranking on page 2 for its target keyword. That's the power of a consistent review process — it turns data into action.


My Recommended Starter Dashboard

If you're just getting started with weekly metric tracking, don't try to replicate everything I do. Start with these five numbers:

  1. Weekly organic sessions (Google Analytics)
  2. Top 10 query positions (Google Search Console)
  3. Weekly revenue by source (wherever your money comes from)
  4. Infrastructure cost (your hosting dashboard)
  5. Content published this week (just count it)

That's it. Five numbers. Takes 20 minutes. Do it every week for three months and I guarantee you'll understand your business better than you do right now.

Here's a simple tracking script I use to remind myself every Sunday:

var cron = require('node-cron');
var nodemailer = require('nodemailer');

// Sunday at 8 AM Alaska time
cron.schedule('0 8 * * 0', function() {
    var transporter = nodemailer.createTransport({
        service: 'gmail',
        auth: {
            user: process.env.EMAIL_USER,
            pass: process.env.EMAIL_PASS
        }
    });

    var mailOptions = {
        from: process.env.EMAIL_USER,
        to: process.env.EMAIL_USER,
        subject: 'Weekly Metrics Review Reminder',
        text: 'Time to review your metrics.\n\n' +
              'Checklist:\n' +
              '1. Organic sessions (GA4) for all properties\n' +
              '2. Search Console positions for top queries\n' +
              '3. Revenue by source\n' +
              '4. Infrastructure costs (DigitalOcean)\n' +
              '5. Content published this week\n\n' +
              'Spreadsheet: [link]\n' +
              'GA4: https://analytics.google.com\n' +
              'GSC: https://search.google.com/search-console'
    };

    transporter.sendMail(mailOptions, function(error, info) {
        if (error) {
            console.error('Reminder email failed:', error.message);
        } else {
            console.log('Weekly reminder sent');
        }
    });
});

Yes, I email myself a reminder to do my weekly review. It's low-tech and slightly embarrassing, but it works. I've tried calendar reminders, phone alarms, and habit-tracking apps. A self-sent email with the exact checklist and links I need is the only thing that consistently gets me to actually sit down and do it.


The Compounding Value of Consistency

The single most valuable thing about weekly metric tracking isn't any individual insight. It's the longitudinal view. After six months of weekly data, you can see patterns that are completely invisible in monthly or quarterly snapshots.

I can tell you exactly which months my organic traffic grows fastest (September through November — people searching for technical content when new projects kick off after summer). I can tell you which day of the week generates the most affiliate clicks (Wednesday, for reasons I still don't understand). I can tell you how long it takes a new article to start generating meaningful organic traffic (typically 6-8 weeks for competitive keywords, 2-3 weeks for long-tail).

None of that knowledge came from a single brilliant analysis. It came from 45 minutes every Sunday morning, a cup of coffee, and a spreadsheet. The most powerful tool in indie SaaS isn't your tech stack. It's your patience.


Shane Larson is a software engineer and the founder of Grizzly Peak Software. He writes about building indie SaaS products, AI tools, and the business of software from his cabin in Caswell Lakes, Alaska. You can find his work at grizzlypeaksoftware.com and AutoDetective.ai.

Powered by Contentful