I keep Amazon brands in stock and profitable.

I run demand planning and purchasing for 800+ SKUs at a US woodworking brand selling primarily on Amazon — forecasting, negotiation with five factories in China and Vietnam, and the automation that keeps the reporting honest.

800+
SKUs planned, with multipack variations
5
Factories managed in China & Vietnam
8h → 20m
Sales report I rebuilt in Excel/VBA

What I actually do

🎯

Decide what to order

Forecast, reorder points and safety stock across parent/child variations and multipack configurations — 5, 8, 10, 25 and 100 units — that all have to reconcile before a single purchase order goes out.

📉

Keep stock in stock

Amazon punishes stockouts twice: you lose the sale, and you lose the ranking. Rebuilding that momentum takes months — long after the container finally lands.

🌏

Negotiate and move the freight

Pricing, lead times and packaging with manufacturers across China and Vietnam, then container booking and delay escalation with freight forwarders through to receiving.

Automate the analysis instead of grinding through it

A sales report that used to consume a full workday now runs in 20 minutes on the Excel and VBA systems I built. I write the SOPs that turn what I figured out into something the team can run without me.

Selected work

Amazon demand planning dashboard showing stat tiles, a demand forecast chart and coverage risk bars
Inventory planning

Amazon Demand Planning Dashboard

The view I'd want before signing a purchase order: which SKUs run out before a replenishment can physically arrive, how much cash is parked in inventory nobody will buy this quarter, and what to order this week. Coverage is measured against each SKU's own lead time, not a global average.

The forecast is a seasonal-naive baseline on purpose. A model the buying team can't interrogate gets overridden the first time it disagrees with the category manager — and then you're running on gut feel with extra steps.

Vanilla JS · hand-rolled SVG · Python generator · fully synthetic data
Landed cost calculator showing margin KPIs, a cost waterfall and a sensitivity grid
Unit economics

Landed Cost & FBA Margin Calculator

What a unit actually costs by the time Amazon pays you. Freight is allocated across the shipment by mode — including air's chargeable weight, the detail that turns a light, bulky product into a loss — then duty, tariff, and every Amazon fee, down to net margin and the break-even price.

In the default scenario landed cost is 21.7% of the selling price and Amazon takes 45.2%. That inverts where most sellers put their negotiating energy.

Vanilla JS · hand-rolled SVG · no dependencies, no build step

Background

2026 — present
Supply Chain & Procurement Analyst · Woodpeckers

Demand planning, purchasing and supplier management for a US woodworking brand selling primarily on Amazon.

2022 — 2025
Accounts Payable Representative · Everest Transportation Systems, Chicago

High-volume carrier and vendor payments for a US freight company — the cost side of logistics, and where the automation habit started.

2019 — 2022
Logistics Coordinator · UC Group, Bogotá

Planned a 13-truck fleet and negotiated load rates with brokers on market rate analysis — selecting routes on margin, not volume.

Toolkit. Amazon Seller Central · SellerCloud · advanced Excel (VBA, macros, Power Query) · n8n · AI-assisted workflows · Python & SQL fundamentals. Bilingual English/Spanish, EF SET C2.

Training. 800-hour Data Science bootcamp at Henry (2023–24) · two years of Computer Science & AI coursework, Universidad Sergio Arboleda (2021–23) · Machine Learning Specialization, Stanford via Coursera.

Earlier projects

From the bootcamp — the technical foundation behind the automation I build today.

Contact

Open to part-time and fractional work · 15–20 hrs/week

Need someone to own inventory planning?

I work with Amazon sellers and e-commerce brands that need a planner who can read the data and tell them what to order — not a VA following instructions. Based in Bogotá, available during US business hours from 3 PM ET / 12 PM PT.