Friday Updates: Preceden Pricing, Policy Page Design, Time Series Prediction, and Embracing Minimalism

What I’m working on at Preceden

New Pricing



Big changes are:

  • Renaming the higher end plans to better match the type of people who those plans are targeting. For example, if you’re a project manager coming to Preceden to create a roadmap, these new plans should make it clearer that the Business plan is for you, whereas before the Basic and Pro plan names were nebulous.
  • Nixed the mid-range $69/year price point and introduced the higher $199/year one both as a way to make the $29/year and $99/year seem like better deals, and also to try to make as much money from business and high-usage (6+ timeline) users.

In the past I would have A/B tested these plans together for a month to compare their performance side by side, but Preceden really does not have enough conversions to draw conclusions from these tests. I normally would justify that by saying that some A/B test data is better than no data, but I think I’ve made a lot of wrong decisions in the past based on inconclusive A/B test data so am going to try to do better and just not going to run pricing tests going forward.

Policy Page Redesign



Hat-tip to Milan, the front-end developer I’m working with, for these lovely improvements.

These policy pages (Terms of Service, Privacy Policy, Cookie Policy) don’t get much traffic, but I think it’s a nice touch putting in the extra effort to make them look really polished.


  • Chatted with a lawyer about revising the Terms of Service and Privacy documents.
  • Researched different types of insurance for SaaS businesses.
  • Moved Drip tracking from front-end to back-end tracking to both fix some bugs (the Sign Up event wasn’t getting fired for all new sign ups, for example, probably due to ad blockers) and also to have one less cookie on the site (back-end tracking doesn’t require a cookie whereas front-end does).
  • More Drip improvements: if a user updates their email, make sure to update it in Drip. If a user deletes their account, make sure to delete it from Drip.
  • Making sure if a user deletes their account, there’s no trace of their email in the database after that (with some exceptions like for people who pay).
  • Adding admin functionality so that if we refund a user, it automatically cancels their subscription by default as well, so they don’t accidentally get charged again down the road.

I do miss product work, but it feels good putting the time into these professionalization, maintenance, and bug fix tasks right now.

What I’m working on at Help Scout

Mostly the same things I’ve mentioned recently: PM’ing a project to evaluate Heap, getting the ball rolling on hiring a data team this year, answering data requests, etc.

One new thing though: We send out an automated email to a lot of people at the company each day reporting on various KPIs. I gave a talk about this Daily Metrics Email at Looker’s JOIN conference a few years ago. One of the things we report on is what we’re projecting each KPI to be by the end of the ongoing month. For example, how many new trials are we forecasting for January?

Historically, most of these projections are simply extrapolations based on the MTD performance. If 5 days of a 30 day month have passed and we’ve had 1,000 new trials, that’s 200 trials/day so we project 6,000 new trials for the month.

This works alright, but has some issues, especially at the beginning of the month when we’re extrapolating based on only a few days of data. This is made worse when the month starts on a weekend which brings the daily average (and therefore the projection for the month down).

I’ve been playing around with alternative approaches to doing the projections, all in a Jupyter Notebook for now. Some time series machine learning solution is an obvious thing to try, but it’s unclear to me whether I could take a scikit-learn model and use it in the Ruby script that generates the email. Probably. But I think there’s also a strong argument for keeping the projection method simple which will make it easier to explain and debug, even if it winds up not being as accurate as a fancy blackbox ML model. We will see.

What I’m watching

Most things I watch don’t lead to any actual changes in my life, but I recently watched this documentary on minimalism on Netflix and it has inspired some change:

I started going through our house and figuring out whether we really need to keep each thing or not. For example, cleaning out junk drawers and going through boxes in our attic that we haven’t opened since we moved into this house in 2019. I got the kids involved too and they have had them going through their old toys and picking out things they want to donate.

I started going through Preceden’s code and cleaning up obsolete methods and rake tasks that aren’t needed anymore. I also bought a new Macbook (which I’ve been meaning to do for a while anyway) and have been setting it up from scratch so it doesn’t have all the files and whatnot that have accumulated over the past 5 years on my old Macbook. It’s been very freeing getting rid of stuff that no longer serves a purpose.

If this resonates with you, I’d encourage you to check out that documentary.

Be well my friends 👋

Friday Updates: GDPR, Heap, TED

Photo courtesy of Unsplash

What I’m working on at Preceden

In my ongoing effort to professionalize Preceden, I’ve been focused on making Preceden more GDPR compliant recently. This has had me reading lots of articles about GDPR and trying to make sense of exactly what’s required. Problem is, there’s very little agreement.

Consider questions like:

  • Can a a cookie banner have only an Accept button or is a Decline button also required? (Pretty sure you need a Decline button, but lots of websites don’t include one.)
  • Can you track visitors in analytics tools before they’ve opted into tracking? (Pretty sure the answer is no, but lots of websites do it anyway.)
  • Are cookie banners required for people in the US? What about an EU resident who is visiting the US? (Pretty sure GDPR applies for the EU resident visiting the US, which means you have to display the banner to all website visitors.)
  • If you turn off advertising features in Google Analytics and configure it to anonymize IP addresses, is a cookie banner still required? 🤷‍♂️
  • What privacy policy updates are required? (Lots of websites, even those trying to be GDPR compliant, include different sections.)

And this is really just the tip of the iceberg.

Even though there’s a lot of ambiguity, I’ve been making lots of positive improvements to Preceden, and imagine by the time I’m done with this round of updates it will be in the top 1% of websites in terms of GDPR compliance and that should minimize my risk for the foreseeable future.

These updates include:

  • Removed Ezoic, a service I used to optimize ads displayed on pages with public timelines, because it loads a large number of ad tracking scripts and sets dozens of cookies. This will result in a few grand of lost revenue each year going forward, but I feel good nixing it, not just to make Preceden more GDPR compliant but because loading all those ad trackers for visitors is nasty.
  • Removed Mixpanel, because most of the business intelligence reporting I care about these days relies on backend data, so no need to track all these front-end events that I haven’t looked at in years.
  • Updated Preceden’s Privacy Policy and moving it from an internal CMS over to the codebase so I have a version history of it going forward. has a great customizable template for $99 that I used as a starting point for the content.
  • Created a Cookie Policy that lists all of the cookies Preceden sets and their purpose.
  • When people visit public timelines, Preceden records a backend analytics event that in the past has included the visitor’s IP address. Nixed that from the database since an IP address is considered PII and visitors haven’t opted into that tracking.

Probably going to spend next week on this work too.

What I’m working on at Help Scout

Speaking of analytics tracking, we’re evaluating Heap for use at Help Scout currently. Unlike tools like Mixpanel, Heap automatically tracks a user’s entire click stream which has a number of benefits like saving on engineering time (because engineers don’t need to manually implement Mixpanel events). I’m leading this evaluation, so it’s had me on demos calls, reading documentation, writing a 3-Pager (a document we use to propose an idea or project to others at the company), and discussing use cases with people.

What I’m watching

A few weeks back I got my Concept 2 rowing machine out of the attic and have been trying to make rowing a daily habit. Usually I do it right after I put the kids to bed and it takes about 25 minutes to row 5k. The rowing machine is in front of a TV and I listen via Apple TV with Airpods so the high volume (which is necessary when rowing) doesn’t wake up the kids.

After finishing up Tiger King, I’ve gotten into TED talks. Most are like 10-15 minutes, so I can usually watch two in the time it takes to do a 5k.

One I watched this week (though nor a normal short talk) is this interview with Elon Musk from a few years back:

And with that, now I’m off to make my little timeline maker tool more GDPR compliant 😄

Friday Updates: Pricing Updates, Professionalizing Preceden, Shutting Down Timeglider, Building a Data Team, Stuff You Should Know, and yes, Tiger King

Photo by Joakim Honkasalo

What I’m working on at Preceden

Pricing Update

For now the new recurring plans are going really well. Revenue year to date is about double what it was by this point last year. It’s only been a week though and I don’t expect that growth rate to hold for 2021, but the fact that it’s not down is very encouraging. I fully expected (and still kind of do) that introducing automatically recurring annual subscriptions will hurt new revenue to some extent because people would be turned off by a recurring subscription. But maybe it’s not as big of an issue as I thought in which case I should have done it years ago (doh!).

One possible reason for the growth right now might be the new design. IMO the site looks way more polished and professional than it did just a few weeks ago and it’s possible that it’s leading to higher conversion rates despite the new pricing. If true that would also imply that revenue might be even higher without the new pricing, but that’s alright, I’d rather get recurring revenue going even if it means giving up some revenue short term.

Professionalizing Preceden

For the rest of Q1 I’m likely going to be focused on things like:

  • Making Preceden GDPR compliant
  • Researching and buying SaaS insurance
  • Getting Terms of Privacy Policy reviewed by a legal professional
  • Bringing on more contractors
  • Experimenting with new marketing initiatives
  • Documenting processes

I would much rather be heads down coding, but I’ve neglected some of these other areas for too long and need to invest some time into them for the long term health of the business.

What I’m working on at Timeglider

Back in June 2019 I acquired Timeglider, another timeline maker tool. After the acquisition I redirected its homepage to Preceden as a way of acquiring new users but kept the app running for existing customers. In the time since it has paid for itself and then some.

I had originally planned to keep it running for two years, but decided back in September 2020 to shut it down at the end of November 2020 because most users were inactive, there was some security risk keeping it running (since I wasn’t super familiar with the codebase or any vulnerabilities it might have), and I also wanted to free up some headspace. I emailed all of the paying customers after cancelling their subscriptions as well as about 100k users who had timelines with 10+ events to let them know about the closure.

I wound up keeping Timeglider running until this week to give folks more time to export their data. The homepage will continue to redirect to Preceden while all other pages will 404 with a CTA that points to Preceden (redirecting all pages to Preceden seemed like a bad idea from an SEO perspective). I still have a local copy of user data for now so can still generate an export for people if they need it, but Timeglider should be pretty minimal work going forward.

Nice to have that endeavor completely done.

What I’m working on at Help Scout

For almost four years now the data team at Help Scout has mostly been me. As the company grows though, we all recognize it’s important to build out a proper team. I’ve been reading articles and watching videos about how to go about that and am likely going to spend a lot of time on hiring and training this year.

It occurred to me there’s some parallel between Preceden and data at Help Scout: both have been pretty scrappy and have mostly worked, but they are at a point where they need time invested in professionalizing them to get them to the next level.

What I’m reading

Stuff You Should Know by Josh Clark and Chuck Bryant. Apparently there’s a popular podcast by the same guys. So far I’ve learned about the history of Mr Potato Head, Murphy beds, facial hair, and how people get lost. It’s kind of a random bunch of topics but they do a great job of making it interesting and entertaining to learn about.

What I’m watching

Tiger King on Netflix:

Not my usual sci-fi but entertaining nonetheless.

Stay sane my friends 👋

Friday Updates: A New Year Brings a New Design and Subscription Revenue to Preceden

Hey everyone, happy new year. I hope this update finds you all well.

Since my last post, I shipped two major updates to Preceden: revamping its design and introducing recurring annual plans.

New Design 🌈

This project began back in October with me posting a job description to Upwork trying to hire someone to improve Preceden’s design. Upwork wound up not working out though (it was a mistake to try to hire a single person who could do both the design and development work). I eventually wound up hiring two freelancers, a designer I found on Dribbble and a front-end developer I found on Tailwind’s Discord group. Over the last two months we’ve been busily collaborating on Figma and GitHub to launch the first round of updates to Preceden, and happily we were able to ship it the week before Christmas.

Here’s the homepage before the updates:

And here’s the homepage after the redesign:

IMHO the new purple indigo design is much more polished than the old blue version and I wish I had invested some time into this sooner.

Part of the reason this took a while is that we introduced Tailwind to Preceden during this project, and the new pages are completely done in Tailwind with little to no legacy CSS:

Making Tailwind work smoothly in the codebase was trickier than expected because the old CSS apply lots of base styles to the page that often doesn’t play well with Tailwind’s styles. We wound up making a list of pages that we had transitioned off of the old legacy stylesheets:

in application_helper.rb

And then only loading the legacy styles on pages that still required them:

in application.html.erb

In addition to the homepage, the Case Studies page, Features page, Pricing page, and Log In page have also been fully updated, with many others in progress. I imagine by end of Q1 we should have most of Preceden fully transitioned over to the new design and Tailwind.

Recurring Revenue 💰

For most of Preceden’s 11-year history, I’ve had people manually pay year to year to use the service. For example, a user might pay $129, get access to that plan for a year, then if she wants to continue using it beyond that she has to enter her credit card details again.

“Matt, you’re an idiot” I hear you startup people saying.

Problem is, the nature of a timeline maker tool is that many people don’t need to use it long term. They might use it for a few days, or maybe a few weeks, and then when they’re done with their project they’re done with Preceden. There are people who use it long term, but they’re dwarfed by people who use it for short term projects.

Because of that, it always seemed more customer friendly to have plans that don’t renew automatically. That way if you only need it short term, there is no way you’d be charged for additional years. I also believed this strategy would result in more revenue because I thought that many users would not want to pay for a recurring plan and that those who did would have very high churn rates.

But it’s also a very, very hard route to go if you want to grow a software business and why almost no web apps do pricing like this.

So for the last few weeks, I’ve been revamping Preceden’s codebase to introduce subscriptions, but trying to do it in a way that’s as customer friendly as possible.

Here’s the pricing page before:

old design, non-recurring pricing

And here’s the pricing page as it stands today:

new design, recurring pricing

Besides the new design, there are a few key changes:

  • The plans renew each year. For example, it went from “$29 for one year of use, no automatic recurring charges” to “$29/year, cancel anytime”.
  • The FAQs are updated to emphasize that people can cancel anytime to avoid being charged again, that they can continue using Preceden for the full year they paid for even if they do cancel, and that Preceden will send them a reminder prior to renewal as well as a receipt
  • Extended the refund period from 30 days to 60 days to make it abundantly clear that if they don’t want to continue using Preceden I’ll give them their money back

I have no idea how all of this will play out. There’s a real risk that many users will be turned off by the recurring pricing and won’t pay now but with the old pricing they would have. Imagine if it tanked new revenue by 50%. I’d get more recurring revenue down the road, but probably not enough to ever make up for all the lost new revenue. But I’m hopeful that new revenue won’t be impacted too much, maybe 10-20%, and that I’ll make up for that with the recurring revenue in 2022 and beyond. We’ll see. If it doesn’t work out, I can easily just toggle something in the new code that makes the plans not renew by default, but I really want to make this work while also keeping the plans as customer friendly as possible.

Needless to say, I’ll be watching the numbers very closely for the next few months.

What I’m watching

Expanse Season 5 on Amazon Prime:

If you like scifi but haven’t seen any of The Expanse, I’d highly recommend checking it out. First few episodes are a little slow, but stick with it, the second half of Season 1 and beyond are fantastic.

Adios for now 👋.