Work / Case study
Multi‑Channel E‑commerce Sales Pipeline
01
Context
Marketplace sales and advertising exports arrive with incompatible columns, status labels, fee fields and reporting periods.
Problem
A reporting view needs comparable platform, order and marketing data without treating incomplete months as completed periods.
Operational impact
Creates one comparable reporting layer so a team can inspect channel performance, payout and advertising signals without stitching exports by hand.
Constraints
- Repository assets use synthetic/anonymized demonstration data.
- The public repository does not include a Power BI PBIX file, live API integration or scheduled refresh proof.
02
System
Power Query/M pipeline and Power BI model for aligning Shopee, Lazada and advertising exports into one inspectable reporting layer.
Inputs
- Shopee Seller Center order exports
- Lazada CSV/Excel order exports
- Shopee/Lazada ads, affiliate/AMS and Meta CPAS exports
Implementation
- Power Query standardizes headers, statuses, types, platform and campaign labels.
- DimDate, DimPlatform and DimProduct connect Fact_Orders and Fact_Marketing in a documented star schema.
- DAX measures express revenue, net payout, AOV, ad spend and elapsed-day-aware month-over-month comparisons.
- Power Query/M transformations for orders, ads and CPAS inputs.
- Documented DAX measure register and dimensional Power BI model.
03
Decisions
- Compare equal elapsed-day windowsAn incomplete current month should not be compared directly with a completed prior month.
- Keep raw channel exports separate from semantic reporting measuresSource-specific cleaning stays visible while cross-channel calculations remain consistent in the model.
04
Artifacts
05
Evidence
Evidence classes distinguish what can be inspected directly from what is documented, simulated or reconstructed.
- VERIFIED CODEShopee order normalization query
power_query/pq_order_sp.pq
- VERIFIED CODEDAX measures register
dax/measures.md
- VERIFIED ARTIFACTCommitted dashboard images
images/
- SIMULATED
06
Limitations
- ข้อมูลตัวอย่างเป็น synthetic/anonymized demonstration data — not client performance.
- No claim of live API ingestion, scheduled refresh, deployment or client outcome.