There are a few reasons a competitor might not appear. In every case it's because we couldn't be confident the price was right, and showing nothing is better than showing something wrong.
The competitor is cheaper than you
By default the block only shows competitors you beat or match. That is a block setting called Competitors to show; change it to Show all if you would rather show everything.
The price is older than your freshness window
Anything older than your setting is never shown, whatever else is true. The cap is 30 days, because the dated stamp on your page is a claim about accuracy and it has to stay true.
The page covers several variants
See Choosing competitor pages. Link a specific variant URL.
The page is in a different currency
If a competitor's page is priced in a different currency from your storefront, we drop the row instead of converting it. Whatever exchange rate we picked, the result wouldn't be their price.
Your product has more than one variant
A competitor's page shows one price. Comparing it against a product with several of yours is not honest, so multi-variant products are not shown at all yet. Splitting them into separate products is the workaround.
The check failed
Open Failures. Every failed check is grouped by cause with what to do about it.