Work

Claims Migration: SAS → Python on Databricks

Python
PySpark
Databricks Jobs
SQL

Rebuilt a legacy SAS claims processing system as Python/PySpark jobs on Databricks — parameterized, observable, and validated to 100% parity before cutover.

Abstract visualization of the SAS to Python claims migration

The Challenge

The existing claims processing system ran on SAS — a powerful but expensive and hard-to-scale platform. As claim volumes grew and the team needed faster iteration cycles, the business case for migration became clear. The challenge was not just translating code: SAS and Python/PySpark have fundamentally different execution models, data types, and error-handling semantics. A naive line-by-line translation would have introduced subtle bugs that could cost millions in misprocessed claims.

Beyond the technical translation, the migration had to be provably correct. In healthcare claims, a single logic error can mean a provider is underpaid or overpaid — and at scale, those errors compound into regulatory and financial risk. The team needed a migration strategy that could demonstrate 100% parity between the old and new systems before any production cutover.

The Approach

The migration started with a comprehensive mapping of every SAS program, macro, and data step involved in the SSI claims workflow. This mapping became the source of truth for the migration — every SAS construct was catalogued and assigned a Python/PySpark equivalent. A validation harness then ran both systems in parallel on the same input data, diffing the outputs row by row.

The new system was designed as parameterized Databricks Jobs rather than a monolithic script. Each job stage — ingestion, transformation, validation, and output — was isolated and independently testable. Configuration was externalized into YAML files, so the same job definition could run against different claim types and environments without code changes. This modularity made the system far easier to maintain and extend than the original SAS codebase.

The Outcome

The migration achieved 100% validation accuracy — every claim processed by the new Python/PySpark system matched the SAS output exactly, across millions of test records. The parameterized Databricks Jobs architecture reduced the time needed to onboard a new claim type from weeks to days, since most new requirements could be met by adding a YAML configuration rather than writing new code.

Performance improved significantly: the distributed PySpark engine processed large claim volumes in a fraction of the time the SAS system required, and the Databricks Jobs scheduler provided built-in observability, retry logic, and alerting that the SAS environment lacked. The system has been running in production without a single parity incident since cutover.

Key Learnings

The biggest lesson was that migration projects fail not on the translation itself but on the validation strategy. Investing early in a parallel-run harness that could prove parity gave the team confidence to cut over without a safety net. The second lesson was the value of parameterization: by externalizing configuration into YAML, the system became a platform rather than a one-off migration, and the team has since reused the same job framework for other claim types.