Skip to content
Outcomes · Case study

A pricing deskon Databricks Apps.

Regional pricing lived in spreadsheets emailed around every week and pasted back into the ERP by hand. We built the desk where the decisions are made, as a Databricks App: the analyst sees margin, stock and the demand model’s proposal for their own region, decides, and the decision is written to Lakebase with who, when and why, then synced back into the lakehouse where the reports read it.

01 / The situation

Before and after

Before

Prices by spreadsheet, weekly

Analysts exported margin and stock reports, set prices in a spreadsheet, emailed it around for sign-off and pasted the result into the ERP. Nobody could say later who changed what, or why; the demand forecast lived in a notebook nobody opened.

After

One desk, inside the platform

A Databricks App where the analyst works on their own region’s rows, sees the demand model’s proposal beside the current price, decides, and the decision is written to Lakebase with an audit trail and synced into Delta for the reports. Authorization runs on behalf of the user, so the catalog’s row filters apply inside the app.

02 / Architecture

The platform

The model proposes. The analyst decides.

The desk brings governed data and model proposals together, then records the analyst’s decision before returning it to reporting and the ERP.

Data flowControlReturn pathSelect a stage to inspect
Full architecture
The desk brings governed data and model proposals together, then records the analyst’s decision before returning it to reporting and the ERP.
Decision gate

Human decision

04 / 09

The analyst decides whether to accept or change the model’s proposal. The chosen price, effective date and reason become the recorded decision.

  • Analyst approval
  • Effective date
  • Decision reason
Data in
Pricing desk
Data out
Writable Lakebase

Lakebase is the writable decision store. A separate change-ingestion path carries those decisions back into Delta.

03 / The app

The desk, as the analyst sees it

A representative view of the app: the analyst’s own region, the current price beside the demand model’s proposal, and every decision written to Lakebase with who, when and why, then synced to Delta. Left alone it works through the list; select a row to decide it yourself.

04 / The delivery

Inside the delivery

The app

A Dash application hosted on Databricks Apps, next to the data instead of in another cloud. Its resources are declared with it: a serverless SQL warehouse to read, a Lakebase database to write, a Model Serving endpoint for the proposals. Sign-in is the workspace’s own; there is no second identity to manage.

  • Databricks Apps
  • Dash
  • Declared resources

Reads as the analyst

Queries run on behalf of the signed-in user, so the row filters and column masks defined once in Unity Catalog apply inside the app: a regional analyst sees their region’s rows and nobody else’s, and the app has no privileged path around the catalog.

  • On-behalf-of-user authorization
  • Row filters
  • Databricks SQL

The proposal

A demand model trained on the lakehouse and tracked in MLflow serves proposals from a Model Serving endpoint. The app shows the proposal beside the current price and the margin it implies; the analyst decides, the model does not. Every proposal and every decision is logged for the next training run.

  • Model Serving
  • MLflow
  • Human decision

Decisions written to Lakebase

A decision is a row in Lakebase, the platform’s Postgres: price, effective date, who, when, why. A separate change-ingestion path carries these decisions into Delta in Unity Catalog, so reports and the ERP integration read the same decision the analyst made, with lineage back to the app.

  • Lakebase
  • Audit trail
  • Change ingestion to Delta

Delivery and operations

The app, its resources and its permissions are one Databricks Asset Bundle, promoted from development to production through Git. App logs and the platform’s system tables show who used it, what it queried and what it cost; a release is a pull request.

  • Asset Bundles
  • Git
  • System tables
05 / The outcome

What changed

The decision is made where the data is.

No export, no email round, no paste into the ERP; the desk reads the gold tables and writes the decision.

The app cannot see more than the analyst.

On-behalf-of-user authorization keeps the catalog’s row filters in force inside the app.

Every price has a who, a when and a why.

Decisions live in Lakebase and sync to Delta; a question about last quarter’s price is a query.

The forecast is used, not admired.

Proposals appear beside the decision; what the analyst chose feeds the next training run.

The app ships like the pipelines.

One bundle, one review, one promotion path; no separate hosting to secure.

TechnologyDatabricks AppsDashDatabricks SQLUnity CatalogLakebaseModel ServingMLflowAsset Bundles