Business analysis · Process redesign · System design
About
This portfolio presents two analytical projects completed during the 2025–2026 academic year. Each moves from stakeholder research through problem diagnosis to solution design and evaluation — reflecting the analytical workflow central to product and business analysis practice.
Project 01
Project 02
Redesigning order intake to reduce manual coordination and improve process reliability.
01 — Overview
The project
Redesigning the sales order process for a B2B industrial distributor running on ERP + informal channels
My role
Stakeholder research, current-state analysis, problem diagnosis, solution framing and evaluation
Goal
Reduce cycle time, eliminate information inconsistency, prepare the process to scale with growth
02 — Problem
Core problem
The order intake layer runs outside the system — pulling the process into manual coordination and creating delays and inconsistencies.
Orders arrive via WhatsApp, phone, and email — channels the ERP cannot see or validate. Every downstream step depends on human interpretation, generating clarification loops, duplicate records, and stock reservation failures that compound with volume.
03 — Why it matters
The process was manageable at current volume — and would break as the company grew. Three consequences are the most consequential:
~18% of orders require manual follow-up before confirmation
No reservation during payment window means orders can be double-sold
Process capacity is limited by one team's bandwidth to clarify, deduplicate, and route
04 — Key insights
These issues are not isolated inefficiencies — they stem from a process structured around human coordination rather than system control.
Information fragments at the entry point
When the same customer can place orders through multiple channels to multiple reps, there is no single source of truth. Every downstream inconsistency traces back to this.
Verification depends on human memory, not system rules
Clarification loops exist because the system does not validate order completeness at intake. Sales staff catch errors by reading messages — a capacity that does not scale.
Sales is structurally overloaded
Sales is not just selling — they are also the dedupe layer, the clarification layer, and the coordination layer between customer, warehouse, and finance. Freeing this role is where redesign leverage is highest.
05 — Design decision
The portal was identified as the structural solution. The key decision was how much of the process should be moved into the system.
Core functionality · Required
Move intake into the system
These features directly remove the dependency on manual coordination and resolve repeated verification loops.
Extended functionality · Optional
Layered enhancements
These features improve efficiency and user experience but are not required to address the core structural issue.
The core functionality was prioritised to resolve the structural bottleneck, while additional features can be layered on later.
06 — Solution
The redesigned solution introduces a structured intake layer within the system, shifting coordination from Sales to system-driven validation.
Primary solution
Customers submit orders through a structured digital interface. The system validates inputs, checks real-time inventory, and routes only genuine exceptions to Sales. Inventory reservation is a built-in module — triggered automatically on order confirmation.
Structured order submission
Replaces WhatsApp/phone intake. Required fields enforced at input; duplicate detection at account level.
Real-time inventory visibility
Customers see live stock before ordering — eliminating the need for Sales to verify availability manually.
Inventory soft-lock on confirmation
SKUs reserved automatically during the payment window; released on timeout. Embedded in the portal flow.
Sales exception queue
Flagged orders (new customers, credit issues, special requests) routed to Sales — everything else flows through.
07 — Trade-off
Prioritising the core scope focuses on structural improvement — moving order intake into the system and eliminating manual coordination loops.
This approach introduces higher implementation complexity and requires changes in user behaviour, but provides a more reliable and scalable process foundation.
By contrast, including additional features at this stage would increase system complexity without directly addressing the root cause.
The solution therefore prioritises core functionality first, with the ability to expand incrementally over time.
08 — Metrics
These metrics directly reflect the original failure points in the intake layer and are used to evaluate the impact of the redesign.
Order confirmation time
Direct signal of whether clarification loops have been eliminated. Expect the sharpest movement here.
Clarification follow-up rate
Measures order input quality — baseline ~18%. If the portal validates correctly, this should approach zero.
Stock conflict incidents
Tests whether the inventory reservation module is working. Should drop to near-zero; residual cases reveal edge cases.
Sales time-per-order
Indicates whether Sales has genuinely shifted from data entry to exception handling — the structural goal of the redesign.
Limitations
Methods
Appendix — Current-state process model
As-Is BPMN used to identify coordination bottlenecks across Sales, Finance, and Warehouse · Click image to enlarge
Translating a dual-source fulfilment model into a clean relational schema that supports operational accuracy and reporting.
01 — Overview
The project
Database design for a Toronto-based online grocery delivery platform with dual-source fulfilment
My role
Business process analysis, data requirements, EER conceptual model, relational schema, SQL implementation
Goal
A schema that supports operational accuracy and management reporting across five interconnected domains
02 — Problem
Core problem
Two sourcing models with fundamentally different business logic — and the schema has to hold both.
Warehouse inventory is owned and tracked at the unit level; supermarket sourcing is a relationship without direct inventory ownership. Merging the two would require nullable columns and blur distinctions that matter downstream in reporting, fulfilment, and customer service.
03 — Key insights
The difficulty was not technical — it was business-semantic. The schema had to reflect how the business actually operates, not just the data it produces.
Order is the anchor, not the product
Every operational question — fulfilment status, delivery time, service case, payment — is asked in terms of a specific order. Designing the schema with Order as the central hub enables lifecycle traceability from a single starting point.
Business logic belongs in the schema, not the app
CHECK constraints, UNIQUE rules, and CASCADE behaviour enforce business rules at the database level — making invalid states impossible rather than relying on application code to prevent them.
Separating tables makes meaning explicit
WarehouseProduct and SupermarketProduct are separate because they mean different things, not because the data looks different. Schema clarity directly affects how future features can be built on top.
04 — Design decisions
CustomerAddress as a separate relation
A customer may maintain multiple delivery addresses with different recipient names. Embedding address as a composite attribute would force repeated updates across all order records on change.
Separation eliminates redundancy and supports multi-address flexibility without duplicating customer profile data.
WarehouseProduct and SupermarketProduct as separate tables
The two sourcing types carry different data requirements — warehouse products need inventory quantity and restock date; supermarket products record only a sourcing relationship.
Merging would require nullable columns and blur the operational distinction in queries. Separation keeps business logic explicit in the schema.
Order as the system's central hub
All operational entities — Fulfilment, Delivery, Payment, CustomerService — reference Order via foreign key with CASCADE DELETE.
Enables complete lifecycle traceability and enforces referential integrity at the database level rather than in application code.
Derived attributes excluded from storage
TotalAmount and TotalPrice are computed from stored primitives at query time rather than persisted.
Storing derived values creates update anomaly risk — if a unit price is corrected, the stored total must also be corrected. Calculation at query time eliminates this class of inconsistency.
Limitations
Methods
Appendix — Data models
EER conceptual model — Order as central entity; Location subtyped into Warehouse and Supermarket · Click to enlarge
Relational model — 12 tables with integrity constraints in SQLite · Click to enlarge