Bank Transaction Entity Detection with AWS Comprehend
Introduction For the past year, FreeAgent has been running a machine learning model in production that categorises customer bank transactions. This model takes transaction descriptions and transaction amounts as inputs, and attempts to predict the corresponding accounting category. This summer, I joined the data science team with the more specific goal of increasing model generalisation, which would allow it to make predictions for a larger fraction of incoming transactions. One… Continue reading
Control freaks: how we built our own version control for Matillion
We’ve all been there - it’s a couple of days or even the night before an important deadline and one of the following happens: You lose your memory stick with all your work on it and scramble to recreate it but can’t get it back to the way it was.You make some more ‘advancements’ to your work and suddenly everything is broken and you can’t seem to get it back… Continue reading
Shopping for data: How thinking about supermarkets might help you to manage your Looker implementation
This blog makes a comparison between a well run supermarket and a well designed Looker implementation. Continue reading
Managing Python dependencies across multiple Data Science projects with Poetry
Python is the programming language of choice for running analysis, building models and running machine learning services in production for the Data Science team at FreeAgent. A key reason we chose Python is the great ecosystem of packages available: NumPy, pandas, SciPy and scikit-learn, deep learning frameworks like TensorFlow and more bespoke options for specific tasks like Click for developing CLIs. This wealth of options is a great strength of… Continue reading
Answering bigger questions with BigQuery
Over the past few weeks, we’ve configured BigQuery to enable us to combine our Google Analytics (GA) front-end data with our internal back-end data. In this post I’m going to talk about why we needed to do this, how we went about it and what we are hoping to achieve as a result. What’s the problem? Historically, two separate systems have been used at FreeAgent to track, store and analyse… Continue reading
Empowering our practices: Take 2
‘How can we use our data to understand and empower our accountancy practice partners?’ This is the question that I posed in my previous blog about delivering practice insights last summer. This question was the foundation for my project last year and is the one I came back to continue answering this year. To recap how the project was left at the end of last summer; I had created three… Continue reading
Can’t someone else do it? Automating Looker Housekeeping in Two Days
This blog discusses how, through successful planning and design, we were able to automate some Looker housekeeping tasks in less than 2 days. Continue reading
How we publish user events for 100,000 customers
The FreeAgent application is currently used by more than 100,000 companies. When users send their invoices, explain their bank transactions and do any other action to take care of their business, these actions are recorded automatically. We record them in different systems and for different purposes. One of the systems where we record actions like these is an event system and these records are called events. Events contain information about… Continue reading
How to Measure Pointless Things?
Here at FreeAgent we, like so many other workplaces around the world, have been adjusting to a fully remote setup over the past few weeks. Whilst a significant number of our company’s employees are permanently home-based, only one of our seven Analytics & Data Science team members is usually based away from our Edinburgh office. It has felt strange. We decided fairly quickly that we needed to create new opportunities… Continue reading
On the road to real-time reporting with incremental data transfer
Reporting Data at FreeAgent We keep track of a range of customer behaviours in the FreeAgent application as a means to understand engagement and to formulate and measure our OKRs. Examples of this include support requests raised through our ticketing system, Zendesk, the scores and comments provided by our users during NPS surveys and event data detailing specific actions taken within the application. As a concrete example of the latter,… Continue reading