A partial fill happens when only part of your order executes — you asked for ten contracts, four filled, six are still working. On options, especially thin-book short-dated ones, partials are routine, because there simply may not be enough liquidity at your price to fill the whole order at once.
Why they happen
The order book only has so much size resting at each price. A limit order fills against whatever is available at (or better than) your price, then the remainder waits. If the market moves away, that remainder may never fill — leaving you with a smaller position than intended, at a different average price than you modeled.
The accounting trap
Partials are where naive position tracking breaks. If your system assumes the full order filled, it now thinks you hold ten contracts when you hold four — so its exit logic sizes wrong, and it may try to sell contracts you never bought. Clean handling means reading the actual executed quantity and blending the true average price, not assuming the order worked.
The dangerous part of a partial fill isn't the fill — it's a system that doesn't notice, and then trades a position that isn't there.
Handling it mechanically
A robust execution layer re-reads the broker's true fill quantity before acting, blends the average cost across fills, and manages the exit against the position that actually exists — never the one it hoped for. That kind of careful, boring reconciliation is unglamorous and absolutely essential; it's the difference between a system you can trust with real orders and one that silently corrupts its own state. It's a core piece of how NoVo's execution stays honest.