Most supplement trackers either don't scan at all, or scan against a database that's really built for packaged food. Supplement labels don't fit that shape well: a bottle's UPC has to resolve to a brand, a product, and a full ingredient panel with doses, not a calorie count. Here's what actually happens between the beep and the product card.
A single database rarely covers both halves of the problem: knowing which product a barcode belongs to, and knowing what's actually in it. So the lookup happens in two steps.
Splitting it this way means each hop only has to be good at the thing it's actually good at, instead of asking one database to do both jobs adequately.
No barcode database is complete, especially for smaller or newer brands. When a scan doesn't resolve, the app doesn't guess, it drops you straight into manual entry with whatever partial information it did find (usually at least a brand or product name) pre-filled. Manual entry isn't a fallback bolted on as an afterthought; it's built to be just as fast as scanning for the products that aren't in either database yet.
The alternative, a single-pass fuzzy text search, tends to return plausible-looking but wrong matches, especially for barcodes that are really just a string of digits with no inherent meaning to search on. A two-hop, identify-then-enrich approach means a wrong match at hop one just produces "not found," not a confidently wrong ingredient panel.