Databricks Atlas Case Studies Pricing Start a pilot

Campaign

Warehouses

Runtimes

Beyond SAS

Campaign · SAS → Databricks
Lakebridge handles the SQL. SAS2PY handles the SAS, and the proof.

SAS → Databricks. Validated row by row.

Lakebridge does not read SAS. SAS2PY does — DATA step, macros, DI Studio jobs, SAS/STAT — and emits native PySpark notebooks, Delta tables, and Workflows, with column lineage in Unity Catalog and a parity report your auditors can keep.

4–6 weeks · about 10K lines of your SAS · credited 100% against a license signed within 90 days

Architecture

SAS in. Databricks out.

Deterministic parsers read the SAS estate and emit native Databricks code — not SAS sitting on a cheaper cluster.

SAS programs → SAS2PY parser → PySpark + Delta + Workflows

SAS
Base SAS DATA step / macros
DI Studio Jobs + mappings
EG / EM Projects + flows
Viya / CAS CASL + actions
SAS2PY Parser
Deterministic parse AI optional
Row-level parity Before cutover
PySpark emit Set-based, not loops
Workflow emit Job DAGs
Databricks
PySpark notebooks Set-based, not loops
Delta Lake ACID + time travel
Workflows Replaces SAS Grid
Unity Catalog Column lineage
Repos + DABs CI/CD promote
MLflow SAS/STAT models

AI is an optional add-on, off by default — the conversion runs end to end without it, air-gapped if your estate requires it.

Against free platform tooling

What Lakebridge reads, and what it does not

Use the free tool for the part it was built for. Pay for the part it was not.

CapabilityLakebridgeSAS2PY
SQL dialects → Databricks SQLYes, freeYes — not the lead
SAS DATA step, macros, %INCLUDENoYes, deterministic parser
DI Studio jobs → WorkflowsNoYes
SAS/STAT, IML → MLflow / PythonNoYes
Row-level parity + exception reportReconcile moduleAudit-grade — the deliverable
Signed evidence pack, as-of lineageNoYes (Atlas)
Air-gapped / on-premNoYes

Already part-way through with Lakebridge? The $25K certify pilot proves that output instead of redoing it.

The first engagement

What the $40K SAS → Databricks pilot contains

Fixed fee, fixed scope, fixed exit. The fee is credited 100% against a license signed within 90 days, so the only thing you are really spending is calendar time.

What we need from you

  • A representative SAS workload. The painful, well-understood one is the right choice.
  • Agreed inputs and the original outputs, or a run in your environment, so parity can actually be measured.
  • One named owner for a weekly checkpoint.

Want a smaller first step? The $15K readiness scan inventories the estate in a week and is credited the same way.

Why Databricks

SAS Grid was never a lakehouse

Overnight windows keep slipping

SAS Grid scales by adding more of the same. Databricks distributes the rewritten job across a cluster. The batch that finished at 6am now finishes before the trading desk opens.

Macro libraries hide the real job

A thousand %INCLUDE files is not a platform. The parser expands macros, then emits readable PySpark so a new hire can follow the match criteria.

SAS datasets are not Delta

SPD Server and .sas7bdat are not a lakehouse table. We land ACID tables with time travel so yesterday's extract is a version, not a copy job.

Parser output

DATA step merge to a PySpark join

A classic SAS match-merge — two sorted datasets, BY key, IF IN= flags. Emitted as an explicit join, not a record loop.

SAS
/* SAS: customer + transactions */
proc sort data=cust; by cust_id; run;
proc sort data=txn;  by cust_id; run;
data gold;
  merge cust (in=a) txn (in=b);
  by cust_id;
  if a and b;
  if amount > 1000 then segment = 'GOLD';
  else segment = 'STD';
run;
SAS2PY
converts
PySpark on Databricks
# SAS match-merge → PySpark join
from pyspark.sql import functions as F
gold = (
    cust.join(txn, "cust_id", "inner")
        .withColumn(
            "segment",
            F.when(F.col("amount") > 1000, "GOLD")
             .otherwise("STD"),
        )
)

BY-group merge becomes an inner join. The IN= flags disappear because the join type is explicit. No sort required.

Coverage

SAS to Databricks — artifact mapping

SASDatabricksNotes
DATA stepPySpark DataFrameAssignment, IF/THEN, BY-groups
PROC SQLspark.sql / DataFrameJoins, GROUP BY, CASE
Macro / %INCLUDEExpanded then emittedNo leftover macro language
DI Studio jobDatabricks WorkflowsReplaces SAS Grid
SAS dataset / SPDSDelta LakeACID + time travel
SAS/STATMLflow + Spark MLWhere a model actually ran
4,200
SAS programs
3.8M
lines parsed
85%
converted without hand-editing
$8.5M
projected 3-year savings
Proof, not claims

Major US telecom: 4,200 SAS programs to Databricks in 18 months

3.8M lines of SAS modernized to PySpark on Databricks. Pipelines 3–6X faster, $5.8M of the savings from retired SAS licensing. Macro libraries expanded, SAS/STAT models landed in MLflow. The pilot above is the first four weeks of exactly this method.

Read the case study →
Validation

Every conversion validated to row-level parity

SAS output compared to Databricks output — row by row, column by column. Differences flagged before sign-off, and the evidence lives on in Atlas after the migration ends. Atlas attaches at $45K in year one, $90K/yr standalone.

See how Data Matching works →  ·  What Atlas is →
Before you ask

Pilot questions

What does the first engagement cost, and how long does it take?

$40K for the SAS → Databricks pilot: 4–6 weeks, about 10K lines of production SAS, validated row by row. The fee is credited 100% against a license signed within 90 days. If you want a smaller first step, the $15K readiness scan inventories the estate in a week and is credited the same way.

We already use Lakebridge. Why would we pay for SAS2PY?

Lakebridge converts SQL dialects and it is free, so keep using it for that. It does not read SAS DATA step, macros, DI Studio jobs, or SAS/STAT, and it does not leave you with an evidence pack an auditor will accept. SAS2PY covers the SAS estate and produces the parity proof. If Lakebridge has already converted a workload, the $25K certify pilot validates that output rather than repeating the work.

What does the license cost after the pilot?

Published annual bands by estate size: $120K up to 250K lines, $250K from 250K to 1M, $450K from 1M to 5M, and custom from $750K above that. Same price whether you run it as SaaS or self-hosted. Full detail is on the pricing page.

What do we have to provide for the pilot to work?

A representative SAS workload, agreed inputs with the original outputs (or a run in your environment so we can compare), and one named owner for weekly checkpoints. No code upload is needed to start — the intake form only asks what you are modernizing and when your SAS renews.

Three ways to start

Pick the one that matches where you are.

Every route below ends with a person who has done this before, not a sales sequence.

Not ready to name a workload? The free sample assessment converts a representative piece of SAS at no cost — request one here.