Better children’s services data at lower cost

Published: 3 February 2022

Photo by Scott Graham on Unsplash
Our route to providing Python analysis tools to 50+ local authorities. 

Every spring, children’s services analysts face a familiar challenge. The Department for Education (DfE) portal opens for them to begin validating and submitting their SSDA903 returns (the statutory return used to report on looked after children), and they meet a huge number of data validation errors that have accumulated over the course of the year. This has a couple of flow-on effects. It means that data has been unreliable throughout the year, affecting local analysis and decision-making, and it also means that a large amount of work is created during the submission window.

We first came across this problem as part of an MHCLG-funded discovery in 2019 and have since been exploring how we might be able to reduce this burden on analysts.

The solution, on the face of it, seemed relatively simple. If we can create a way for analysts to check their data throughout the year, they can fix errors as they arise – improving data quality and spreading across the year that work that otherwise is crammed into the three month submission window when the portal is open.

So we set out to create a tool that would replicate the functionality of the portal that we could make accessible to analysts year round. As with previous projects, we had some key ingredients for success:

When we set out to make the tool, however, there was a key difference that set this apart from previous projects. The complexity of the tool meant that it could not be built in Excel. Instead, we would have to develop the tool in Python. This meant overcoming two key barriers to the adoption of open source tools in local authorities. We’ll explore these in more detail in two upcoming blogs, but here’s a brief summary.

The nature of this tool meant that it had to be code-based (rather than built in Excel), but this has historically limited the scalability of tools due to requiring local authorities to either:

  1. Share sensitive personal data, requiring lengthy Information Governance processes; or
  2. Install tools/​software locally, involving lengthy IT approval processes

Solution: Using a software package called Pyodide, we were able to load Python and run code in-browser, but working entirely locally, focusing on standard datasets. This means analysts can access the tool in seconds, like a website, but that no data leaves their machine.

Tools like this need maintenance and updates (for example on data validation rules, or when bugs are identified). We needed to identify a way to do this without being dependent on further LDCU funding.

Solution: We upskilled a community of children’s social care data analysts in Python, coached them to be able to code up rules, and built the infrastructure so they can edit and update in future.

What has the impact been?

The tool was launched as the SSDA903 Data Validation Service in December 2021. As of early February 2022 it has already been used by 68 users across 52 local authorities – most of whom have used the tool more than once.

Feedback from users has also been positive:

  • I think this will be a game changer in terms of data cleaning!’
  • I’m impressed with the new validation tool that you have made available! It’s helpful and useful so thank you.’

We will see the biggest impact in April, when the portal opens and users can reap the benefits of being able to validate their data all year round. In the meantime, we will be exploring where this capability to share Python-based tools may enable us to more effectively solve other challenges faced by local authorities.

If you are interested in this work and would like to learn more, please reach out to us by emailing

Latest blogs and videos

Stay up to date

Sign up to our mailing list for regular updates.

We'll keep your data secure and won't share it outside of Social Finance, ever. For more details read our privacy policy.