A variable product can be “in stock” overall while the customer’s required size is unavailable. That is why availability should be attached to the exact option, not only to the parent product.
Make the decision visible
Each row should show the human-readable option, SKU, price and stock state. Low stock can be highlighted without hiding the product, while sold-out options remain visible for comparison.
Do not force a customer to make several dropdown selections just to discover that the final combination is unavailable.

