Skip to main content

Open source for municipal services: case study on Signalen

Published on: 15/01/2025 Last update: 02/04/2025 Document

Introduction

This case study has been drafted based on desk research - including the Signalen website, its GitHub page, and related news items, articles and reports – as well as an interview conducted by the OSOR team with Jacco Brouwer - OSPO lead at VNG Realisatie - and Amy van Someren, Signalen Product Owner and Operational Business Information Manager. 

Signalen logo image

The digitalisation of public services at national, regional, and local levels is a key component of the European Commission’s Digital Decade. In the context of municipalities and cities, this translates, among other things, into promoting more interactive and responsive administrations and creating safer public spaces through open source solutions[1]

In the Netherlands, the digitalisation of public services through open source is based on the principle of “open, unless”, proposed in April 2020 by the Minister of the Interior and Kingdom Relations (BZK) Raymond Knops in his Letter to the Parliament, and subsequently incorporated in the Open Government Act (Wet Open Overheid or Woo), in force since May 2022. “Open, unless” means that public services must share any software solution as open source by default, written for or by them. At the municipal level, the principle is implemented and supported by VNG Realisatie, the Association of Dutch Municipalities that serves as an incubator for public collaborations to scale open source software (OSS). 

In this context, Signalen stands as a prime example of how Dutch municipalities leverage OSS. Released in 2018, the solution aims to improve the reporting and management of public space issues in municipalities, such as damaged infrastructure or waste accumulation. The goal is to make it easier and more accessible for citizens to report public nuisances while enabling civil servants in municipalities to respond more swiftly and effectively, thus boosting citizen satisfaction and the quality of the public service.

Signalen

Signalen is the open source software of, for, and by Dutch municipalities for receiving and handling reports from public spaces. The solution harnesses the power of natural language processing and machine learning to classify and prioritise citizen reports, thus streamlining communication between citizens and municipal authorities, and enabling quicker response times and more effective resource allocation. Signalen was first developed by the City of Amsterdam in 2018. Designed for easy adoption, as of 2024, the OSS is employed in 39 Dutch municipalities, serving more than 7.9 million citizens per year, which roughly corresponds to 30% of the total Dutch population.

Main features of Signalen

Signalen is an open source solution licensed under the Mozilla Public License 2.0. It offers the following main features:

  • Accessible and user-friendly interface that enables citizens to easily report public space issues by (1) describing the issue through free text and pictures, (2) pinpointing the location on the municipality’s map, entering the address, or providing the postal code, with the option to specify the incident time; (3) sharing contact details, if desired, to receive updates on the report’s progress. 

  • Easy backend management of the nuisance reports for municipal civil servants through automated classification and deployment of the reports to the correct department or civil servant, as well as a user-friendly panel with filtering options to track the progress status of the reports and solve them progressively.

  • Flexible deployment for municipalities through Signalen’s containerised architecture supported by Docker.

  • Compliance with the General Data Protection Regulation (GDPR), the Government Information Security Baseline (Baseline informatiebeveiliging Overheid or BIO), and the Dutch Public Records Act, as well as application of the Web Content Accessibility Guidelines (WCAG). 

Interface of Signalen for citizens of the City of Amsterdam image

Figure 1 - Interface of Signalen for citizens of the City of Amsterdam. N.B.: The interface was automatically translated using Google Translate. Source: https://meldingen.amsterdam.nl/incident/beschrijf

blank space
Backend of Signalen for civil servants of the Municipality of 's-Hertogenbosch image

Figure 2: Backend of Signalen for civil servants of the Municipality of 's-Hertogenbosch. Source: https://signalen.org/over-signalen

Signalen has three main components:

  • Frontend: JavaScript application that communicates with citizens and the backend.

  • Backend: Python service that offers REST APIs for various functionalities, including the handling of the reports by civil servants. 

  • Classification: Python-based service that offers a REST API and uses machine learning to analyse the text of the reports and categorise them appropriately. 

The components run on a Kubernetes environment and are installed and kept up to date using Helm charts

To perform its functions, the solution uses two types of storage through Microsoft Azure: 

In addition to PostgreSQL, the Signalen backend uses the following external components: 

  • Elasticsearch: for maintaining a secondary index for full-text search. This secondary index can be rebuilt at any time based on information from PostgreSQL.

  • RabbitMQ: a message queue that stores background tasks that are executed asynchronously by the backend. 

Signalen has a repository on GitHub with detailed documentation on its technical architecture and frontend components.

A Demo version of Signalen can be requested in the contact section of the Signalen website as well as on market parties’ websites by prospective municipalities who wish to test the solution. 

Natural language processing and machine learning to facilitate public services

Signalen’s technical foundation combines natural language processing (NLP) and machine learning to streamline the management of citizen-reported issues in public spaces. 

At its core, Signalen uses an NLP algorithm to automatically interpret and categorise reports, ensuring they are directed to the correct municipal departments. Specifically, the algorithm analyses the text in the report by breaking it into individual words and then evaluating the uniqueness of each word compared to the total collection of words. This process, known as “term frequency-inverse document frequency” (TF-IDF), assigns lower weight to common words like “the” or “thank you” and higher weight to more contextually significant words like “waste” or “lighting”.

A machine learning model utilising logistic regression then determines which category the report belongs to, and thus to which department within the municipality the report is most likely to fit.  This model is trained using structured input from Excel or CSV files containing columns for the main category, the subcategory, and the text of the report. Upon training completion, a confusion matrix is automatically generated to visualise how well the predicted categories (x-axis) align with the actual categories (y-axis) of the reported issues. The model also evaluates its performance by calculating precision, recall, and accuracy scores, each ranging from 0 (lowest) to 1 (highest), providing clear metrics for assessing its quality and reliability.

Confusion matrix reporting on Signalen’s accuracy

Figure 3: Confusion matrix reporting on Signalen’s accuracy. Source: GitHub.

The algorithm can very accurately detect which category a combination of words belongs to, scoring on average between 0.80 and 0.88 on the macro-weighted F1 score. Reports that are classified with less than 40% certainty in a certain sub-category or category are forwarded to the Action Service Center, where human review takes place. Reports that are forwarded by the algorithm to the wrong category are also manually placed in the correct category. Trained on historical data from over 300,000 reports as well as the manual corrections made when a report is incorrectly categorised, the algorithm improves over time, making the system increasingly accurate. 

System architecture for algorithmic data processing image

Figure 4 - System architecture for algorithmic data processing. Source: https://algoritmeregister.amsterdam.nl/meldingen-openbare-ruimte/

The development and promotion of Signalen

Signalen was initially developed by the City of Amsterdam to address inefficiencies in the management of reports about public space. Citizens often struggled to select the appropriate report category from a long list of municipal options, resulting in nuisance reports frequently being routed to the wrong department and causing significant delays. When alternative market players’ options proved unsatisfactory, the Research, Information & Statistics (OIS) department of the City of Amsterdam in collaboration with the Amsterdam Chief Technology Officer (CTO) developed the algorithm based on which Signalen works. Thanks to the Association of Dutch Municipalities in collaboration with the Foundation for Public Code and others – the code was improved and made available to other municipalities, and the solution was officially promoted in the context of the Joint Municipal Implementation (GGU) programme.

Signalen’s ecosystem counts on three primary players: municipalities, the Association of Dutch Municipalities, and market players. The participating municipalities form the core of the Signalen collaboration, shaping functional and product management as well as the further development of the OSS through the steering group and the product steering group. The Association of Dutch Municipalities is the administrative host of the collaboration, overseeing financial flows, providing community management and practical assistance with marketing and communication as well as procurement and tendering. Finally, market players contribute by offering municipalities specific feature development, project implementation support, and Software as a Service (SaaS) options. The main market players involved include Delta10ConductionTrueCivityMacoinMaykin and Savana Solutions

Signalen ecosystem image

Figure 5 - The Signalen ecosystem. Source: GitHub.

Funding for Signalen was initially derived from the City of Amsterdam, which first developed the software and still maintains the development and maintenance team. Funds for codebase management, development and audits of the codebase, are pooled from voluntary donations by participating municipalities based on population size, with an estimated annual budget of EUR 400,000. Additionally, feature development based on the roadmap is facilitated through procurement partnerships with market players. The Association of Dutch Municipalities acts as an Open Source Program Office (OSPO), providing legal representation and managing the financial transactions required for administrative operations. 

Key milestones of Signalen

  • 2018 – The City of Amsterdam developed and began using Signalen.
  • 2019 – Growing interest from other municipalities in the software led to the formation of a "coalition of the willing”. By the end of 2019, a formal coalition was established, including the City of Amsterdam, the Municipality of 's-Hertogenbosch and the Municipality of Almere.
  • 2020 – Work commenced to enhance Signalen, making it sufficiently versatile for use beyond Amsterdam. Key features of the software were improved, focusing on adaptability to diverse organisational processes across municipalities.
  • March 2021 – The Municipality of 's-Hertogenbosch successfully launched Signalen, marking its first implementation outside Amsterdam.
  • 2021 – Present – The software has been progressively scaled up, now supporting 39 municipalities. Additionally, collaboration has extended beyond the Netherlands to include the kicking off of a partnership with the OS2 Foundation and the Danish government.
  • 2022 – Present – The Signalen community was officially established, providing a platform for discussion and document sharing. The community plays a critical role in the Signalen ecosystem, ensuring active ownership and ongoing contributions from municipalities.

Signalen in 2025

The Signalen 2025 roadmap outlines plans for scaling and enhancing the software to establish it as the “national standard” in the Netherlands. 

As part of this vision, Signalen 2.0, an enhanced version of the solution with an entirely new code is currently under development and was presented during the 2024 Signalen community meeting. By 2025, the aim is to launch both a test version and a production-ready version of Signalen 2.0 in the City of Amsterdam.

A priority for 2025 is to ensure the solution’s robustness to support scaling efforts both nationally and internationally. Notably, the Signalen team is actively collaborating with the Danish OS2 Foundation and government representatives in Denmark to explore international applications.

Additionally, the Signalen team plans to improve the solution’s accessibility, ensuring it is more inclusive for citizens with disabilities. These efforts include accessibility research and the development of integrations with market suppliers. 

Benefits and challenges

Adopting Signalen brings significant advantages to local administrations. Born from close collaboration among municipalities, Signalen not only ensures accountable use of public funds but also empowers municipalities to shape software development according to their specific needs. On the technical side, it outshines market alternatives with its user-friendly design and eliminates the hassle of complicated migrations during procurement changes. Finally, the business case for participating municipalities is highly compelling, making Signalen an appealing option for local governments aiming to boost citizen satisfaction.

The challenges in implementing Signalen often stem not from its core function, but rather from its integration into diverse municipal work processes and organisational structures. Adapting administrative procedures to align with Signalen may require compromises, particularly for municipalities with highly specific workflows. Additionally, shared back-office arrangements among municipalities, while beneficial, can result in inefficiencies due to the need for separate deployments for each unique municipal identity. Addressing these challenges, particularly by enhancing multitenancy capabilities, is crucial to making Signalen more accessible and cost-effective, especially for smaller municipalities.

Highlights

The success of Signalen highlights several good practices that facilitate its deployment and adoption. Key strategies include encouraging reference visits to neighbouring municipalities already using the solution, allowing them to see its functionality firsthand. Additionally, municipalities are provided with a 3-month free trial in a demo environment supported by market parties, to test and evaluate the solution. This approach is complemented by an invitation to join the Signalen community, which encourages collaboration. Key lessons from this collaboration include the importance of government leadership in engaging market players, managing finances with a focus on investment rather than risk avoidance, maintaining the ecosystem through the role of Collaboration Director, and employing a mission-driven business model.

Policy context

For information regarding the policy context of the use of open source software in the public sector in the Netherlands, please consult the respective Country Intelligence Report on OSS policies and its corresponding factsheet in the OSOR Knowledge Centre. It includes a detailed overview of the political actors, strategic players, political and legislative initiatives, and public sector open source software initiatives in the Netherlands.

Categorisation

Type of document
Open source case study
Licence
Mozilla Public License 2.0
Login or create an account to comment.