A table wins the snippet when the query’s answer is inherently comparative or multi-attribute, because the table presents that answer in the exact structure Google can lift directly into a table-snippet, while even the clearest paragraph buries the same data in sentences that have to be parsed apart. The table is not winning on writing quality. It is winning because its shape matches the shape of the answer the searcher wants, and the snippet format is built to surface that shape.
The mechanism is structure-matches-the-answer-type. When the real answer is “how do these options differ across price, size, and feature,” that answer is a grid: rows for the options, columns for the attributes. A table renders that grid natively, so Google can extract the rows and columns and display them as a comparison snippet with confidence. A paragraph carrying the same comparison forces the system to reconstruct the grid from prose, and even when the prose is more pleasant to read, it does not hand the data over in the form the snippet wants. Matching the answer’s structure beats clarity of wording in this specific case.
This is why the surprise resolves the way it does. The paragraph can be genuinely better writing and still lose, because the contest for a comparative query is not about prose quality, it is about which format mirrors the answer’s structure most directly. A smoothly written explanation of differences is still asking the reader, and the parser, to hold several attributes in their head at once, whereas the table lays them out for direct comparison. For comparative answers, the structural fit is the deciding factor.
When your answer is comparative or spans several attributes, build it as a table even if you could write the comparison fluently in prose. Reserve paragraphs for answers that are genuinely explanatory and let the grid carry the ones that are genuinely a grid. Match the format to the answer’s structure, and the snippet follows.