G
YouTube TikTok Games
Skip to content
View gattiuday's full-sized avatar
🏠
Working from home
🏠
Working from home

Block or report gattiuday

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
gattiuday/README.md

Supply chain analytics, Python, SQL, inventory and transport

👋 Hello, I'm Uday

Supply chain analyst, nearly four years of it, and this account is where I work out the questions the job raises but never has an afternoon to settle.

The first stretch was at Mahindra Logistics in India, on third party logistics. Replenishment and demand analysis across five thousand SKUs, safety stock and reorder points, supplier lead times and purchase order variance, and the inventory, stockout and aging dashboards planners opened first thing. Third party logistics is a useful place to learn in, because the person being served is somebody else's operation and the cost of a bad number is their line stopping rather than your report looking wrong.

Then a master's in Analytics and Systems at the University of Bridgeport, and since the start of 2025 I have been at Cargill in the US, on agribusiness. Demand and shipment patterns across regions and seasons, forecasting in Python, inventory and replenishment risk, forecast variance and scenario work going into S&OP, and transportation analytics on lane performance, carrier utilisation, transit times and delivery exceptions.

Those two settings look similar on a resume and behave differently in practice. A case either arrived or it did not. A commodity is weighed at one end and weighed again at the other, and the two numbers can disagree without anyone having taken anything, so the question becomes which formula you reconcile them with. Working on both is most of why I started writing these.

The thing I keep running into

It is almost never a model that is wrong. It is a number that is answering a different question from the one it gets read as.

A safety stock formula solves for the share of replenishment cycles that survive, and the review deck reports the share of units served. A carrier scorecard starts counting at ship confirm, so a delay that happened before it is not measured imprecisely, it is not measured at all. A forecast backtested on sales history is graded against your own availability on every day the shelf was empty, so the forecaster that ignores the problem wins the backtest.

None of those are precision problems that more data fixes. The estimate is fine. It is an estimate of a different quantity from the one the decision needs, and that gap does not show up as an error bar, which is why it survives review after review.

It is also an awkward thing to raise in a meeting, because "that number is answering a different question" sounds like an opinion right up until somebody shows you how big the difference is. So I started measuring them.

🛠 what I work with

Python SQL pandas NumPy pytest Ruff GitHub Actions Power BI Excel SAP

📬 connect

Email LinkedIn


"All models are wrong, but some are useful." The harder case is a model that is right and is answering a different question.

Pinned Loading

  1. abc-xyz-churn abc-xyz-churn Public

    An ABC class is a rank cut at a convention, so items change class without changing. 805 class changes a year against 108 real moves, and 770 on an assortment where nothing moves at all. Measures wh…

    Python

  2. censored-demand-backtest censored-demand-backtest Public

    A stockout replaces demand with your own availability, so a forecast backtested on sales is graded against a number the stockout created. Measures which forecaster each backtest selects, and why th…

    Python

  3. forecast-skill-vs-mix forecast-skill-vs-mix Public

    Splits a change in portfolio forecast accuracy into the part your team earned and the part the catalogue handed you. Shift share decomposition in four conventions, with the unattributable remainder…

    Python

  4. grain-reconciler grain-reconciler Public

    Shrink is computed from a moisture probe, not weighed, so an elevator's loss line is a residual. Changing only the contract formula moves reported loss by 5.9x, and the per load figure correlates …

    Python

  5. service-level-gap service-level-gap Public

    Measures what fill rate a textbook 95% cycle service policy actually delivers, and what closing the gap costs. Period by period inventory simulation with an analytic referee, undershoot measured ra…

    Python

  6. transit-time-attribution transit-time-attribution Public

    A carrier scorecard starts counting at ship confirm, so 73.0% of late deliveries here have a cause outside its window. Reconstructs the shipment lifecycle from an event log, attributes lateness acr…

    Python