Skip to content
← All work

Case study · Syndio

Global Pay Reports

Customers of Syndio historically used us soley for their pay equity analysis and nothing more. Upon the approval of the EU Pay Transparency Directive, Syndio had the market to build a new product for pay reporting.

Role
Frontend Engineer · UX
Timeframe
2025 — 2026
Team
Design, PM, engineers
Stack
React, TypeScript, Figma
Illustrated header graphic for pay-transparency reporting: a stylized white government building centered on a deep navy background, surrounded by a repeating pattern of teal document icons representing regulatory filings.
Image shows a federal buliding with form logos behind it

The problem

The EU Pay Transparency Directive which obligates 27 member states to file under standardized requirements starting in 2027. Alongside that certain countries within the EU had their down pay-data reporting. The UK has gender pay-gap reporting. Australia has WGEA. Every multinational employer has a growing list of country-by-country compliance burdens that don't talk to each other.

For Syndio's customers — global HR, compensation, and legal teams — non-compliance meant fines, audits, and contract clawbacks. The status quo was a tangle of spreadsheets, jurisdiction-specific consultants, and bespoke processes. The opportunity was to ship a single product that turned all of that into one workflow.

Global Pay Reports had to:

Research and Design

About 3 months

Compliance products that ignore the people doing the filing fail at launch. Before any code went in, we sat with the people who'd actually be doing this work.

I joined customer calls with HR directors and compensation analysts at multinational employers — companies running pilot pay-gap reports under interim regulatory guidance in the EU, and companies already filing in jurisdictions where reporting laws had been on the books for years (UK, Australia). Two findings reshaped our PRD:

  1. Cross-jurisdiction comparison was the killer feature. A multinational HR team didn't want 35 disconnected filing tools — they wanted one place to see every jurisdiction's status side-by-side, knowing the methodologies differed.
  2. The audit trail mattered as much as the report itself. Compliance officers wanted to show how a number was computed, not just submit the number. Every filing needed to be reproducible.
  3. Crawl, walk, run. The compliance space in 2025 for pay reporting was quick moving. We had to be first to market.

Design iterations

About 1 month

Simple UI. Dynamic UX

Guided vs team-assisted

In accordance with our crawl, walk, run philosophy we sectioned the work off into two buckets: guided and team assisted reports.

All 35 reports started as team assisted reports. A customer fills an offline template provided by Syndio, hands it back, and the Syndio team produces the report by hand. The product surface for these is just a card pointing the customer at the template.

As we saw which reports were getting more most usage we prioritized that jurisdiction for automation into a guided report. In a guided report, a customer uploads their data, the product generates the regulatory report end-to-end, customer downloads it. No Syndio team involved in the day-to-day filing.

Jurisdiction Picker

Here a customer is able to find their jurisdiction and then follow their user path to filling out their report.

Guided report builder view in Global Pay Reports. A 'Guided report builder' heading with instructions to upload data using a step-by-step template, followed by a 3-column grid of country cards (Australia, France, Ireland, Israel, Italy, Japan, Spain, Sweden, United Kingdom, California). Each card shows a small tinted country/state map, the jurisdiction name, and its reporting cadence (e.g. 'Annually with report due by 31 May', 'Annual, 1 June', 'Every two years on 30 April').
The shipped guided report builder, where customers select a jurisdiction and generate a filing from a step-by-step template.
Team-assisted reports view in Global Pay Reports. A 'Team-assisted reports' heading with instructions to fill out a template and submit it to the Syndio team, followed by a 3-column grid of country cards (Austria, Belgium, Brazil, Bulgaria, Canada BC, Canada Federal, Canada Ontario, Canada Quebec, Chile, Croatia, Cyprus, The Czech Republic). Each card has a small map of the country tinted with a unique color, the country name, and its reporting cadence (e.g. 'Every two years, by 31 March', 'November 1st', 'Rolling').
The shipped team-assisted reports view, with per-country cards summarizing each jurisdiction's filing cadence.

Each jurisdiction then opens into its own report wizard. The three-step rhythm — download a template, upload the completed data, download the generated report — stays the same across every country, but the regulatory context above it (snapshot dates, scope, where filings get submitted) is country-specific. A Syndi (LLM chatbox) shortcut and a country-specific reporting guide sit beside the steps so customers can ask questions or pull up the regulation without leaving the flow.

United Kingdom report wizard in Global Pay Reports. A breadcrumb 'Global pay reports' leads to a 'United Kingdom' page header next to a small UK map illustration, with a paragraph explaining the legal context: UK law requires any employer with 250+ employees on the annual snapshot date to report gender pay gap data, with snapshot dates of 31 March (public authority) and 5 April (all other) employers, reports filed at the GOV.UK Gender pay gap service. Below sit two action links — 'Ask Syndi for assistance' and 'Download UK reporting guide' — followed by an expandable three-step flow: Step 1 (Download and complete data template) is open and shows a 'Download reporting template' button; Steps 2 (Upload completed data template) and 3 (Download UK pay report) are collapsed.
The UK report wizard. Every jurisdiction shares the same three-step rhythm; the regulatory context above it is country-specific.

Implementation

2 months

This was a from-scratch product. I owned the frontend end-to-end — the repo, the build pipeline, the design-system integration, the accessibility framework, every component that shipped.

Building the repo for accessibility from day one

I set up the codebase so WCAG 2.1 AA compliance was structural, not retrofitted:

CI/CD quality gate

I integrated Playwright + axe-core into CI as a quality gate. Every PR ran a full a11y regression sweep before merge — failing accessibility violations blocked the PR alongside failing tests. Two months in, accessibility was a green-check thing, not a "we'll fix it later" thing.

Cross-jurisdiction state machine

The dashboard's hardest engineering problem: a customer can have filings in 35+ jurisdictions, each with a different methodology, each in a different state (draft, in-progress, submitted, accepted, rejected, overdue). The UI had to read accurately at a glance without overwhelming. I modeled it as a state machine that compressed each filing into a canonical set of states, then worked with the designer on a visual language that telegraphed each one without relying on text labels alone — icon + color + microcopy together.

Outcome

1st
To market accross our competitors
35
Jurisdictions at launch
Across 43 countries — EU, UK, Australia, Israel, Japan, Switzerland, US states.
#2
Revenue product at Syndio
Second-largest revenue line, behind only PayEQ.

Beyond the metrics, the deeper outcome was procedural: this was the first Syndio product to ship with accessibility as a structural property of the codebase rather than an audit at the end. The framework outlived the launch — every product since has piggybacked on it.

Reflection