Skip to content Skip to footer


Mince pie ratings: when geeks get hungry

by Leigh Darlow, QA Director, 19 December 2017

Read Time: 5 minutes

What happens when you cross a group of PHP developers with the ultimate festive snack? A sophisticated cross-platform, natural language, artificially intelligent chatbot, of course! Discover how we created the ultimate mince pie rating system using a range of online tools.

‘Twas a night (long) before Christmas…

After work one November evening, we began debating which criteria are most important for a perfect mince pie – and how these should be weighted. 

As the self-proclaimed ‘pie masters’, we started putting numbers into a test application and setting test scenarios. For example:

  • Great taste, bad looks, high price
  • Bad taste, good looks, modest price
  • Awful taste, equally bad looks, high price
  • Amazing taste, great looks, low price (the ultimate pie!)

We tweaked as we went along to align more closely with how we would rank the pies ourselves.

Before long, we had a finely tuned Mince Pie Algorithm (MPA):

((Taste x 0.8) + (Looks x 0.2)) – Price per pie / π2

Image of a whiteboard with scores for different mince pies

Gathering the data 

With the pie algorithm in place, we needed data. It was no time at all before pies started arriving on our desks – during the initial period, we were averaging as many as three pies per day.

To start gathering the necessary data, we built a form that would capture everyone’s feedback and subject it to the MPA:

Screenshot of a form to review a mince pie

Using this form, members of the team could quickly and easily rate their pies. These ratings were then captured in an airtable database.

Additionally, every time a pie was rated, a post also appeared on our @MincePieRatings Twitter account.

Making sense of the data

As with a lot of development work here at Redweb, there was a need for this to be a decoupled application, so different platforms could process the data. We created an API to make mincemeat (…sorry) of this requirement:

Screenshot of some computer code from the mince pie API

We then set about creating a variety of applications to use the data, including a website, Slackbot and chatbot. 

Creating the applications


The first application was a PHP website. The data from the mince pie ratings is processed and output on the page in Pie Ranking Order (PRO), based on the MPA.

Screenshot of the mince pie ratings, showing Lidl - Favorina as the favourite

We also pulled in pictures of the pies from the mince pie rating Instagram account, for a little added visual context:

Various images of mince pies on Instagram


As enthusiastic users of Slack, creating a Slackbot to get updates on the ratings was essential. Users can pass it commands such as ‘table’ or ‘tastingnotes’ and the bot responds with real-time mince pie rating data:

Screenshot of the mince pie bot relaying information via Slack


Obviously, if you have a big decision to make about which mince pies you should be buying for Christmas, the above applications may not be enough! What you really need is something with some intelligence, something you can speak to as if it’s your friend.

That’s where natural language processing comes in. To accomplish this, our Development Director Dave used Dialogflow to create our new best friend: our very own mince pie chatbot. 

Screenshot of the mince pie chatbot interface

At the moment, this chatbot can be spoken to through Google Assistant as well as via the mince pie rating website. The same code could also be used to connect to Facebook or Twitter messaging apps.

What did we learn?

From creating the algorithm to outputting the data to various applications, this process has enabled us to experiment with a range of tools, including: 

  • Slim PHP framework: a simple framework that handles routing
  • AirTable: an online database with an excellent API
  • Dialogflow: a natural language processing chatbot framework
  • IFTTT: an online webhook system that allows us to automatically tweet every time someone reviewed a pie
  • DigitalOcean to quickly spin up droplets, using ServerPilot to securely configure them

So although the project started out as a bit of fun, we managed to learn an awful lot from it. Oh, and if you were wondering – Lidl’s Favorina range of mince pies should be the pie that takes pride of place at your Christmas table this year. 

Merry Christmas!


Insights straight to your inbox

Sign up now to be the first to know when our experts publish a new article.

Your information helps us monitor and improve our content, we will never share it with anyone else. We only send emails we think you’ll find valuable – you won’t hear from us more than once a week. You can unsubscribe any time.