Interactive analysis · MSc team project data

Olist, revisited.
From source tables to decision ready evidence.

A follow on to our team’s Power BI project. I rebuilt the analysis in Python from the cleaned workbook so anyone can explore orders, delivery timing, product categories and customer geography in the browser.

My part. I shared responsibilities on the original MSc team Power BI report. I independently built this Python rebuild, its tests and this interactive dashboard as my own follow on work.

View the original MSc team project case study ↗
Explore the dataPeriod

What the data shows

  • November 2017 was busiest with 7,451 orders; 14.3% of eligible deliveries arrived after estimate, versus 8.1% overall.
  • Among months with at least 500 eligible deliveries, March 2018 had the highest after estimate rate at 21.4%, 2.6 times the overall rate.
  • Among the ten shown states, Bahia had the highest after estimate rate at 14%, versus Paraná at 5%, the lowest.

Descriptive patterns only; they show where to look, not why it happened.

Distinct orders98,582One count per order ID
Delivered orders96,394Status = delivered
Delivered after estimate8.1%7,824 / 96,386 eligible
Listed item valueR$13.4mSum of item prices, not profit
Average item priced orderR$138Excludes orders without items
Mean review score4.11 / 597,334 reviewed orders
01 · Purchase month

How did the pattern change over time?

A month is assigned by purchase date. The data begin and end with sparsely populated months; do not treat those edges as full trading periods. Delivery comparisons use only delivered orders with both delivery and estimated dates, and monthly rates are not shown for months with fewer than 100 eligible deliveries.

02 · Product category

Which categories carry item value?

Sum of listed item prices by the translated product category. Multi item orders contribute to each applicable category.

Health BeautyR$1.3m
Watches GiftsR$1.2m
Bed Bath TableR$1m
Sports LeisureR$987.4k
Computers AccessoriesR$911.7k
Furniture DecorR$727.8k
Cool StuffR$635.1k
HousewaresR$631.6k

Other categories combined: R$6m. The eight individually displayed categories were selected by total item value across the workbook, not selected again to flatter a year.

03 · Customer state

Where are orders and delayed deliveries concentrated?

Bahia (BA) · 3,358 orders14%
Rio de Janeiro (RJ) · 12,759 orders13.5%
Espírito Santo (ES) · 2,025 orders12.2%
Santa Catarina (SC) · 3,610 orders9.8%
Goiás (GO) · 2,007 orders8.2%
Rio Grande do Sul (RS) · 5,431 orders7.1%
Distrito Federal (DF) · 2,125 orders7.1%
São Paulo (SP) · 41,308 orders5.9%
Minas Gerais (MG) · 11,537 orders5.6%
Paraná (PR) · 4,995 orders5%

Top ten Brazilian states by order volume in the entire dataset. Grouping uses customer state, not seller state. Differences are descriptive and are not evidence of root causes or operational intervention.

Provenance / limitations

How this was built. Calculated independently in Python from the team’s Olist Dataset Clean v3.xlsx workbook: eight worksheets containing 98,582 unique order records and 110,929 order item rows. It complements the original MSc Power BI report rather than reproducing its pages.

Values in Brazilian reais (R$). Item value is the sum of listed item prices, not payment, realised revenue or margin. A late order means delivered strictly after its estimated date; cancelled or undelivered orders do not enter the rate. Scores are averaged over available order reviews; no causal effects or achieved business savings are claimed. Only aggregate counts and values are published; no raw customer, order, address or seller records.

Data quality decisions: 1,389 orders have no item rows and are excluded from the mean item priced order. The 50,000 row geolocation sheet has 1,919 unique postal prefixes and is deliberately excluded from joins to prevent multiplying orders. The missing payments worksheet means the page does not claim actual sales or profitability.

What I would test next

A dashboard points to a question; it does not answer why.

Add the payments table to compare delivery performance with order value; break the March 2018 delivery pattern down by seller, carrier and location; then test whether late deliveries lower review scores. The rates shown here are descriptive, so the next step is to find the drivers behind them.

Inspect the reproducible Python analysis and tests ↗

Back to selected work ↗