hadi gebrael's Work | ContraWork by hadi gebrael
hadi gebrael

hadi gebrael

I build simple systems that automate business operations.

New to Contra

hadi is ready for their next project!

Cover image for Couriers charge in different ways,
Couriers charge in different ways, one on a fixed daily rate, others per order which makes it hard to tell which is actually cheaper. The rates aren't comparable until you convert them to the same measure. Since the daily dispatch report already tracked how many orders each courier handled, I used it to work out the real cost per delivered order for each one, month by month. That reframes the fixed daily rate as a volume question: it's the cheapest option at high volume and the most expensive at low volume, with a clear break-even point. It also shows which courier accounts for the largest share of spend, which is where a rate negotiation is worth having. Cost is only one input. Service quality, delivery speed, handling, and how reliably cash is returned, matters just as much, so the cost figure informs the decision rather than making it.
0
21
Cover image for Tracking expiry dates only solves
Tracking expiry dates only solves half the problem. Knowing what's about to expire doesn't help unless someone acts on it, and that action sits with different teams than the warehouse. I structured the master inventory sheet so expiry data turns directly into decisions. Every item gets a status and priority based on how much time is left, and a collection tag by expiry month with a discount tier attached, the closer to expiry, the deeper the discount. Purchasing uses it to catch stock early enough to still have options with suppliers, either exchanging it or claiming compensation, and to avoid reordering lines that already have depth sitting close to expiry. Marketing uses the monthly tags to build promotional collections and push the shortest-dated stock first. One rule holds it together: nothing gets promoted until the warehouse confirms the count, so a product is never advertised at a discount that can't be fulfilled. The result is that near-expiry stock becomes recoverable value instead of a write-off, and both teams work from the same source instead of asking the warehouse each time.
0
28
Cover image for Order fulfillment was tracked across several disconnected co...
Order fulfillment was tracked across several disconnected courier sheets, so there was no quick way to see what had actually shipped each day, what it was worth, or what needed chasing. I built a daily reporting system in Google Sheets that joins the scheduled store export to the courier scan sheets and produces one view each morning: orders and value broken down by courier, with the cash on delivery split separated so settlement can be checked per courier. Beyond the totals, I added the parts the operations team actually needed day to day, a pending count for orders not yet dispatched so customer service can chase missing items, a watchlist of orders that shipped while still unpaid, and visibility on cancellations. What used to require manual crosschecking between sheets now updates on its own, and anything that needs action surfaces the same day instead of being found later.
0
34
Cover image for I built a mobile inventory
I built a mobile inventory and expiry tracking system to solve a real warehouse operations problem. Our Shopify workflow did not provide an efficient way to track product expiry dates, so I created a centralized Google Sheets inventory system and connected it to a mobile web app for barcode scanning. The app allows warehouse staff to quickly find products, check expiry dates and quantities, and update inventory while working on the warehouse floor.
0
69