Start with what the storefront is actually publishing.
Product JSON-LD can exist while Offer information is absent, incomplete or disconnected from the Product entity.
Variant logic, localization and app injection can make commerce facts differ between server HTML and rendered storefront state.