Tracking Parkrun goals with Power BI

Earlier this year I set myself some running goals which included running at 20 unique Australian Parkrun locations, reaching a total of 50 Parkruns and running a sub 19 PB. Not longer after setting these goals, I realised I could use Power BI to visually track my progress and get acquainted with one of Office 365’s most powerful tools. What you see below is the result of just a few hours spent sitting on the couch with my laptop. I’m fairly blown away by how easy it was to produce a professional looking report in such a short amount of time.

How it works and what I learnt

Going into this project I had some basic expectations of Power BI based on my limited experience using the Google Analytics and Xero content packs. Both of these data sources automatically refresh on an hourly basis (assuming you have Power BI Pro) without any additional effort. My Parkrun report uses a Web data source which scrapes my athlete profile page on the Parkrun website and loads the data into a Power BI Dataset. Unlike content packs, a Web data source will not automatically refresh without a bit of extra effort.

Making data refresh work

Anyone who knows me will tell you that manual work is not something I enjoy. If a task can be automated I’ll almost certainly find a way, simply to save myself effort which can be focused on more useful things – such as learning Power BI. Knowing that automatic data refresh was possible I looked into the options. Here’s what I found;

On-Premises Data Gateway

Power BI offers a simple solution with the Power BI Personal Gateway. This is a scaled back version of the Power BI On-Premises Data Gateway designed mainly for personal use. You can read more about the gateway and the different versions here. The only caveat is it requires a Windows machine that is always online and I’m not a fan of infrastructure!

Custom Coding

The alternative solution was to write a small web app which scrapes my Parkrun athlete profile page and stores the information in an Azure SQL Database. The benefits here are several; no VM required, Azure SQL works natively with automatic data refresh, and the monthly cost is marginally lower. It would also require a basic app service in addition to the SQL database. Another option would be to push the data directly to Power BI using the REST API however, this would require a little more coding.

Personally, I always prefer PAAS and SAAS over IAAS, so this is my optimal solution but given my lack of spare time and considering the purpose of this exercise was to learn Power BI, I opted for the simple data gateway solution using an Azure VM.

The entire report took approximately 4 hours to build which just goes to show how easily you can surface valuable data in a format that’s easy to consume with minimal effort using Power BI. Considering the data in this report is scraped from a web page makes it even more impressive. When applied to business scenarios, this becomes an extremely valuable tool for companies of all sizes and can be easily implemented with minimal cost.

If you happen to be a Parkrun enthusiast and want a copy of the Power BI report then shoot me an email.