sethserver.com Subscribe
A 70's toy-style robot with an orange rectangular head and silver body examines a gigantic tree log laying on the ground with unreadable, archaic words written on it. The robot has round eyes, a grill mouth, red claw hands, with teal-colored arms, set against a pale yellow background.

Reading Your Own Data Honestly

By Seth Black • Updated: September 17, 2026

Startups · 4 min read

Like this kind of writing? Get one email a week with notes on startups, AI, and the occasional strong opinion about Python: subscribe to the newsletter.

I've had weeks where my nginx logs suggested my site was blowing up. Requests per minute through the roof. But when I checked cookies, no humans. GA4 key events? Zero. Search Console? Shrug. The bots were having a great time. My business, less so. More proof that the Dead Internet Theory isn't a theory.

If you're building anything on the internet, you're surrounded by activity that looks like progress. AI pours gas on that. You can generate more pages, write more posts, think up more "experiments," spin up more dashboards. You can feel busy while nothing useful is happening. Skip the honest read of your own logs and the charts get cleaner while the business stays just as confused.

Lean Startup is mostly about not lying to yourself

I like Lean Startup because it's mostly a framework for forcing founders to look at numbers they don't like. Validated learning, innovation accounting, actionable metrics.

The trap a lot of founders fall into is watching vanity metrics. Pageviews. Sessions. "Engagement." A spike that makes you feel good for about six minutes.

Early on, your job is to find one behavior that proves a human got value. Not "visited a page." Not "spent 42 seconds." Stuff like:

Pick the thing that matters, then measure it like your business depends on it... because it does.

Use AI to read logs, not to invent conclusions

AI is great for chewing through ugly text and helping you ask better questions. It's not a source of truth. Think "very confident intern with a fast typing speed," and then remember you still need to check their work.

Log parsing and traffic sanity checks

Give it a sample of server analytics logs and ask it to summarize by:

Then verify with real counts.

A simple Python script gets you pretty far:

import re
from collections import Counter

ua_re = re.compile(r'"[^"]*" \d+ \d+ "[^"]*" "([^"]+)"$')

uas = Counter()
with open("access.log") as f:
    for line in f:
        m = ua_re.search(line.strip())
        if m:
            uas[m.group(1)[:80]] += 1

for ua, n in uas.most_common(20):
    print(n, ua)

If the top twenty user agents are crawlers, you don't have traction. You have visitors who cost you bandwidth, and even more proof of Dead Internet Theory.

Cohorts that answer one question

Cohorts are where founders accidentally get honest.

"Users who signed up after feature X shipped" is a cohort. "Users who came from Search Console queries with intent words" is a cohort. "Users who hit pricing then bounced" is a cohort.

AI can help write the SQL. The SQL still has to run and return numbers you can defend.

Pattern detection you can act on

AI is good at spotting "this looks weird" patterns:

Then you get to do the part that actually matters: filter and count.

Use traditional software for the stuff that has to be deterministic

I've built ML systems for companies that wanted "accuracy improvements" but couldn't tell me how they measured accuracy. Same disease as "we have growth" with no clean definition of what a user actually did.

Use the right tools for calculating simple truths:

LLMs can help you write the query. Don't let them be the query.

Also: don't let dashboards become a substitute for understanding.

The human part: embarrassment tolerance

The hardest step is staring at the number that says nobody clicked the button.

Founders dodge that moment by adding features, writing posts (as I'm literally typing away instead of doing something else I should probably be doing), tweaking copy, planning "AI improvements," and refreshing charts. It feels productive. It'll definitely eat up a 12-hour day. It's also a great way to avoid fixing the real problem.

If GA4 says your key event fired zero times, do this, in this order:

  1. Confirm the event is wired correctly.
  2. Confirm a human can reach it.
  3. Watch a few real sessions, or run the flow yourself in a clean browser.
  4. Read the offer. Does it resonate? Would you buy?
  5. Fix the dead conversion path.

Leave optimization for later.

The goal is not better dashboards. The goal is knowing what happened before you decide what to do next.

Start there, even when the answer is ugly.

Especially then.

If you want help

If your analytics are lying to you, I do audits. I'll also help you set up AI-assisted growth loops grounded in real datasets: server logs, GA4, Search Console, database events.

If you want to DIY it: pick one conversion event that matters, verify it end-to-end, then read your logs like you're trying to prove yourself wrong.

-Sethers

Share this post
Newsletter

One email, once a week.

Notes on databases, systems, and the occasional strong opinion about Python. No spam, unsubscribe anytime.

Seth Black
Written by

Seth Black

Engineer and founder based in Texas. Writes about databases, AI, and running things in production. Embeds in small teams as lead engineer.

More from Startups

View all →
Startups

What Actually Goes in a Consulting Contract

Sep 17, 2026
Startups

Productizing a Service: From Hours to Licenses

Jul 26, 2026
Startups

The MVP That Is Not a Product

Jul 11, 2026