HMRC

Making HMRC’s import/export tool 3x faster and 10x cheaper to maintain

Screen showing HMRC website

At a glance

  • Tech Stack

  • Ruby on Rails
  • PostgreSQL
  • ElasticSearch
  • Redis
  • Core Services

  • User Research
  • Web App Development
  • API Integration
  • Data Protection & Accessibility Compliance
  • Additional Services

  • Helpdesk & Incident Response
  • Code & Security Updates
  • Performance Optimization & Scaling
  • Fractional Product & Technical Leadership

THE BACKGROUND

HMRC manage the Trade Tariff tool – an online service used extensively by companies who import or export goods. It supplies vital information such as import duty, VAT rates, restrictions, and licenses required for international trade.

HMRC needed to rebuild this tool and bring it inline with new government digital standards. Due to our expertise in Ruby on Rails and following a code audit, The Government Digital Service selected Bit Zesty for this project and we collaborated closely with them throughout.

THREE TIMES FASTER TO USE, TEN TIMES CHEAPER TO MAINTAIN

In the world of import and export, there are large volumes of user traffic and little margin for error. We successfully delivered the Trade Tariff service which allows users to find the information they need faster and more easily. It now serves over 2,000,000 page views a month.

The deadlines were extremely tight, but by following agile practices and working to the standard set out in the GOV.UK Government Service Design Manual, we were able to deliver a working system on time, where in the past two large system integrators failed to proceed further than feasibility studies.

Furthermore, the application we built is not only three times faster than its predecessor, more accurate and user friendly, but is also ten times cheaper to maintain.

REPLACING A COMPLEX LEGACY SYSTEM

The main objective was to replace the legacy service and migrate the data.

One of the biggest challenges of building the UK Trade Tariff was the size and complexity of the data model. At first glance the tool looked fairly straightforward, but once we delved into the underlying data, the true complexity of the system became apparent – the current Trade Tariff has 134 data models.

Furthermore, we had almost no access to the source code, documentation and database schema of the legacy system that we were replacing – so the majority of the work was focused on reverse engineering the solution.

Special measures had to be taken in order to ensure the integrity of the data being migrated. This meant not having duplicated information or missing information, or any other types of alterations. To ensure this, we implemented automated tests and also manually inspected all the data by double checking the information against the existing system.

CREATING ROBUST TECHNICAL ARCHITECTURE FOR SYSTEM INTEGRATION

The new tool includes three apps: a back-end API, a front-end web application and an administrative interface. This architecture improves scalability and security.

It is live system that on a daily basis extracts data from files that are generated by TARIC (the EU’s database that has the latest import/export rules) as well as those by CHIEF (the UK’s database of VAT and excise rates). We then transform the CHIEF data into the same structure and format as the TARIC data and load it all into our Trade Tariff database.

The database behind the Trade Tariff service is one of the largest on GOV.UK.

DEVELOPING IN THE OPEN

The Government Services Design Manual advocates the use of open source software and encourages all code to be made publicly available. This aligned perfectly with our technology preferences and our values.

We used the open source framework Ruby on Rails to build the Trade Tariff due to our expert knowledge of it, and it is a tried and tested platform used for most of GOV.UK. We also incorporated other open source technologies for the project, including PostgreSQL and ElasticSearch.

Furthermore, we made Trade Tariff code open source, contributing back into the Ruby on Rails community as well as to the Government Digital Services.

WORKING AS PART OF AGILE INTEGRATED TEAM

Working in agile manner was key driver to the success of this project.

During the 5 month alpha and beta phases, we collaborated very closely with government team members – HMRC Product Owner, GDS Service Manager, Technical Architect and Designers – to ensure that we were building a service with a unified vision.

We held daily standups, sprint meetings and retrospectives with all team members. As a fully integrated team, we participated in GDS “Show and Tells” as well as impromptu discussions to ensure that we were developing the Trade Tariff in accordance to the Digital by Default Service Standard.

ITERATIVE DEVELOPMENT FOR CONTINUOUS IMPROVEMENT

Our development team worked in an iterative manner. During the Alpha phase we focused on delivering a prototype which helped to engage all the stakeholders and visualise the solution.

During the Beta phase we had to carefully prioritise different user needs in order to deliver a production ready system within the tight deadlines.

Our relationship with GDS and HMRC has extended past the initial build of the service. We provide ongoing support for the Trade Tariff tool, constantly improving its performance and stability as well as adding new functionality.

We continue working in agile manner, actively monitoring user feedback, prioritising requirements and continuously improving the system to better meet user needs.