A readout to a client's leadership team
Case study

DEMDACO raised reporting data completeness from 85% to 99%

A half-finished data warehouse left sales, product and inventory numbers in conflict, and new reports took weeks.

DEMDACO

DEMDACO · Finance and reporting

99%data completeness in reporting, up from about 85%

The workflow before#

DEMDACO, the gift and home decor company behind brands like Willow Tree and Big Sky Carvers, sells through more than 12,000 retail locations. Its reporting ran on an Oracle EBS R12 ERP feeding a Cognos warehouse built in 2009, and the first business unit's data mart had never been finished. Product data lived in Centric PLM and sales data in EMUN SFA, both outside the warehouse. So the numbers disagreed, and teams reconciled them in spreadsheets before anyone trusted a report. More than 20 report requests sat in the IT queue, a new report took weeks, and tracing a data issue could take days.

What we built#

We built DEMDACO an analytics stack on AWS and Databricks that brings ERP, product and sales data into one place, cleans it once and defines every metric once. Then we pointed the existing Cognos reporting at it. Business users kept the tool they already knew, and the numbers behind it started to agree.

One lake for ERP, product and sales

Oracle EBS, Centric PLM and EMUN SFA data now land in an S3 data lake with separate raw and cleansed zones, and Databricks workflows standardize the data and apply DEMDACO's business rules. Keeping the raw zone untouched means any number in a report can be traced back to what the source system actually sent.

Marts for each brand and function

We finished the business unit mart that had stalled, then added marts for Willow Tree, Studio, Big Sky Carvers, sales, inventory and finance. Each team gets a model shaped around the questions it actually asks. We built one business unit end to end first, so the pattern was proven before we repeated it.

One semantic layer for every metric

Sales, margin and on-hand inventory mean the same thing in every report because they're defined in one semantic layer, not in each report's formulas. Row-level security sits in the same layer, so each person sees the slice of data their role allows. Business users now build their own Cognos reports on top of it.

Quality checks on every load

A data quality framework runs validation checks every time data loads, with profiling, error notifications and an audit log. We also wrote down who owns testing for each area, because a check only helps when someone is on the hook to act on a failure. That's how completeness went from about 85% to over 99%.

How we delivered it

We started where the old program stalled, finishing the first business unit's mart from ingestion through to a working Cognos report. With that pattern proven, we added the remaining brand and functional marts in phases and moved each team's reports onto the new marts as they went live. Testing ownership was agreed with DEMDACO's team before handover, and the IT backlog dropped from more than 20 requests to under 5 as users started building reports themselves.

Before and after#

MeasureBeforeAfter
Data completenessAbout 85%Over 99%
Report request backlog20+ requestsUnder 5
Time to build a new reportWeeksHours
Data issue resolutionDaysHours

What's next#

With governed sales and inventory marts in place, DEMDACO can move into prediction. The first candidates are demand forecasting across its retail accounts and an assistant that answers sales and inventory questions straight from the semantic layer, using the same metric definitions the reports already trust.

ShareLinkedInEmail

Ingestion pulls Oracle EBS R12 incrementally, connects to Centric PLM by API and pulls from EMUN SFA, landing data in S3 raw and cleansed zones. AWS IAM controls access to the lake.

Databricks (Spark on Delta Lake) runs ETL and ELT as Databricks Workflows, with validation checks, profiling, error notification and audit logging on each load. Unity Catalog holds governance and lineage.

Business unit and functional data marts feed a semantic layer with row-level security, and IBM Cognos Analytics reads from that layer for self-service reporting, so existing report users moved to the new data without changing tools.

Next step

Let's build the case study we tell next.