Reporting pipeline · Python · pandas

Regional Sales Reporting Pipeline

A small but complete source-to-report workflow that validates inputs, joins customer data, aggregates performance, and proves the output reconciles.

The question

How can separate sales and customer files become a reliable regional report without silently losing rows, duplicating transactions, or changing the revenue total?

Data and scope

The supplied sample contains 48 sales rows and 12 customers. The point is not scale; it is the design of a repeatable pipeline with explicit failure conditions and inspectable outputs.

ControlVerified result
Input sales rows48
Customer records12
Revenue before transformation$7,816.00
Revenue in final output$7,816.00
Pipeline checks8 passed
Unit tests4 passed

What I built

  1. Schema and type checks for both input files.
  2. Duplicate, null, range, and referential-integrity checks before the join.
  3. A clean join and aggregation path for reporting by region and product category.
  4. Saved outputs plus automated tests for expected behavior and reconciliation.
Design principle: if an input violates a required assumption, the workflow should stop with a useful error instead of producing a polished but unreliable report.

One limitation and the next build

The current files do not include enough time-series depth for seasonality or forecasting. A production extension would add orchestration, logging, incremental loads, data contracts, and dashboard delivery.