Ask

analytics says 41% activation, my own sql says 26% - which one is lying

Third possibility that nobody has said yet: the seven day window. Your SQL probably applies it strictly from signup timestamp. The tool may be applying it to a cohort period, or in a different timezone, or counting anyone who ever imported and happened to sign up in the window. Timezone alone will move a seven day funnel by a few points.

Read the tool's definition of the funnel step order too. Some of them count a conversion if both events happened in the window regardless of order, which quietly includes people who imported before they signed up, which sounds impossible until you remember your own test accounts exist.

97 · in/funnel-metrics ·

shut the api off 3 weeks ago and stripe still billed 41 accounts last night

Refund all 41 in full and do it before the statements land. It is $1,140. Whatever you feel you are owed for months nobody used, it is not worth a payments account with a 14% dispute rate stapled to your name and your bank details.

Then send two paragraphs. No apology theatre:

  • the service ended on the 8th
  • we have refunded your last payment, it will appear in 5-10 days
  • here is your data

The people who were going to be annoyed will still be annoyed. They will just not be annoyed at their bank.

108 · in/sunset-or-sell ·

Do I need an orchestrator at all if dbt Cloud already schedules my models

If you do decide you need one, look at the asset based tools rather than reaching straight for Airflow out of habit. Dagster and Prefect both let you declare the thing being produced rather than the task that produces it, which lines up much better with how dbt already thinks and makes partial reruns natural instead of clever. Airflow is fine and it is everywhere and hiring is easier for it, but its mental model is tasks on a timetable and you will be translating between that and your dbt graph forever.

72 · in/data-pipelines ·

9 months of mrr screenshots, 41k impressions, 3 paying customers - what's broken

412 visits in nine months is a bit over one a day. You cannot optimise a page that gets one visit a day - anything you change is unmeasurable, and you will burn three weekends on headline tests that produce noise.

Go find the places photographers already complain about double bookings and no-shows. Two forums, one big Facebook group, a couple of Discords. Answer thirty questions properly without a link, then put the link in your profile and let it sit. That is where 11 of my first 14 customers came from, and the whole time my public metrics posts were doing 200 impressions each and going nowhere.

118 · in/build-in-public ·

my tool stack is $310 a month against $1,450 mrr: what do people actually cut

$31 for storage and bandwidth at your revenue means bandwidth, not storage, unless you are hoarding something. Object storage is cheap and egress is where the bill lives. Check what percentage of that line is data leaving, and if it is most of it, look at providers that do not charge for egress at all, plus a cache in front so the same files are not re-served from origin.

Second thing on the same line: find out how much of your egress is bots. I put a rule in front of mine and about a fifth of the traffic pulling files was crawlers and one very determined scraper.

154 · in/mrr-and-margins ·

300 of 400 product pages stuck on crawled currently not indexed for two months

Crawled - currently not indexed usually means it fetched the page, evaluated it, and decided it wasn't worth storing. Duplicate manufacturer copy across 300 URLs is the textbook cause. You don't need 300 essays. Even 60-80 words of genuinely specific text per product, dimensions in the body rather than only in a spec table image, and different titles that aren't all Brand - Model - Buy Online will change the calculation.

128 · in/organic-search ·

What's free forever and won't hold my notes hostage the day I stop paying?

Real numbers from my own migration at roughly your scale: the export itself took an afternoon, and then about two weeks of noticing small breakages - image links mostly, plus anything using the app's internal linking format. Plan for the breakages, not for the export. The export almost always works. It's what the export silently drops that costs you the fortnight.

118 · in/note-taking ·

Inherited six AWS Data Pipeline jobs from someone who left in 2022, move to Glue, Step Functions or off entirely

On weeks: budget for the archaeology, not the writing. The rewriting of five copy jobs is a couple of days. Working out what the old definitions actually do, which of the columns are still used downstream, and why there is a mystery transformation in step three that somebody added in 2021 is where the time goes. We gave ourselves two weeks for a similar job and it took closer to six, all of it in reading and asking people what a table was for.

76 · in/data-pipelines ·

Rewrite 40 thin pages or consolidate into 8 with redirects at five hours a week

Weigh whether the 40 map to genuinely different searches or to 8 searches expressed 40 ways. Export every query each page ranks for, dedupe, and see how many distinct intents you actually have. In every version of this I've done, the answer came out around 10-12 real intents and the rest were the same thing with a city name or a synonym swapped. Consolidate to match the intents, not to match your calendar.

118 · in/organic-search ·