What is it?
Bank Statement Converter is a simple web application that converts PDF bank statements into CSV files.

Why?
I got the idea for this application while preparing my company taxes for my company Dragon King Creation Limited. My accountant wanted various bank account records for 2020, the bank I use, HSBC, only provides records in PDF format. I sent my accountant the 36 PDF files and he typed the transaction data into an Excel spreadsheet. I thought that was a big waste of time so I started looking into how to read PDF files programmatically. I played around for about a week and got something working in a sort of generic way.

Lesson #1 - Many users do not verify their emails
12% of my users registered, but did not verify their email address. It was very annoying, especially since I was paying for traffic. One day I was working on a UI feature and accidentally caused a bug that lead to registrations failing. After that everyone signed in with Google. That removed the email verification drop off problem. I discovered the bug a few days later and decided to just remove email sign ups.

I now only let people register with Google

Lesson #2 - Optimising Google Ads
Google Ads is a complicated platform and advertisers to tweak all sorts of stuff. My goal when configuring Google Ads is to get the Cost Per Conversion (CPC) as low as possible. Here's a few things I did to achieve that:

  1. Filtered out mobile users
  2. Filtered out irrelevant keywords
  3. Set a maximum Cost per Click of $4 HKD
  4. Targeted countries with less expensive audiences like South Africa

Lesson #3 - My users didn't like Usage Based Pricing
Originally I went for a pricing model where users would pay for page conversion credits. Credits cost quite a lot and a few users complained that the pricing was too high. I switched over to a $20 quarterly subscription for unlimited credits. Users seem to like that a lot better.

Lesson #4 - Build your own dashboards
One of the great things about building a SaaS business is your server automatically records user activity. Originally I relied on Google Analytics, but I saw a lot of unreliable data and I wasn't able to answer every question I wanted to with their dashboards. I used Grafana to create graphs to track what I cared about and haven't looked at Google Analytics since.

This shows the results of file conversions
This shows the errors in the backend. I should start tracking front end errors as well.