Compliance
Entity 360

Transparency in North Carolina campaign Finance Data

Uncovering $250M in campaign spending patterns for the first time - how CrossroadsCX used Zingg on Snowflake to resolve 500,000 political organizations from 50 million transactions.

"Zingg helps identify if records are related to each other, like if names are spelled differently or if there are duplicated records. We can see these are clearly the same entity, but it’s not machine-readable. That’s where Zingg comes in."

Jimmy Steinmetz, Co-founder
CrossroadsCX

Customer image
500K → 17K
Unique organizations resolved from 50M transactions
$250M
Accurate attribution of political spending
50m
Transactions analysed
Background

The North Carolina Free Enterprise Foundation and the NC State Board of Elections (NCSBE) wanted to improve transparency around campaign finance data. While the NCSBE already stored campaign finance data, they lacked the capability to provide comprehensive historical patterns and insights.

Understanding who was spending money on campaigns and how that influenced political decisions within North Carolina is critical for public transparency.

Challenge

Political funding data in North Carolina presented two major challenges: some records were available in digital format, while others were scanned PDFs that required manual transcription.

Moreover, the data was fraught with inconsistencies and inaccuracies due to manual entry errors. The same organization appearing in up to 22 different ways, different name spellings, and incomplete addresses. Previous entity resolution attempts had failed entirely. With data spanning digital files and transcribed PDFs, there was no reliable way to understand who was spending money on North Carolina politics.

These issues made it nearly impossible to establish funding patterns or consolidate insights.

Solution

CrossroadsCX built a cloud-based data pipeline on Google Cloud and Snowflake, using Zingg to resolve entities across name, address, city, and other metadata — not just name alone. This multi-field approach was essential given the inconsistency of manually entered campaign data.

  • Data ingested from Google Cloud Storage, cleansed via multi-step pipeline, sent to Snowflake via Snowpipe
  • Zingg clusters 500,000 unique organizations from 50M transactions into ~17,000 groups
  • Results visualized in Tableau Public and d3.js interactive dashboards for public access
"Entity resolution was just too much of a bear to successfully pull off a project like this — until Zingg."

Jimmy Steinmetz, Co-founder
CrossroadsCX

Results
  • 500,000 unique organizations resolved to 17,000 clusters, revealing the true scope of $250M in political transactions
  • Public dashboards live with spending patterns, funding trends, and contributor relationships, fully explorable by the public
  • All variations of a single donor entity (e.g. "Facebook") unified into one clean golden record
  • First time North Carolina campaign finance data was accurate and transparent enough for meaningful public analysis
Platform
Snowflake
Edition
Community
Customer
CrossroadsCX
Full Transcript
Read the complete transcript
15 min read
→
FULL VIDEO
Watch the complete interview
→

See how Zingg resolves entities across name, address, and multi-field variations at scale.

See how it works →