# Flexoptix Price Truth Recheck

Date: 2026-05-09

## Question

The operator asked whether all Flexoptix prices, images and product information are present, and whether the prices are 100% correct.

## Short Answer

No, not all `744` Flexoptix rows are complete.

The current active Flexoptix catalog scraper finds `615` active catalog products. Those `615` latest price observations were source-confirmed again after the timestamp refresh fix.

## Live Counts

- total Flexoptix rows: `744`
- active catalog products found by scraper: `615`
- price verified rows: `619`
- latest verified price observations: `615`
- image verified rows: `615`
- details verified rows: `500`
- price + image + details verified: `496`
- fully verified: `496`
- missing image URL: `129`
- missing reach label: `244`
- missing fiber type: `131`

## Code Fix

Changed `packages/scraper/src/utils/db.ts` so unchanged prices refresh verification timestamps:

- `price_observations.verified_at = NOW()`
- `transceivers.price_verified_at = NOW()`
- competitor timestamp refresh uses `NOW()` as well

This fixes the audit trail for live source rechecks. Before this, the scraper could see the same price again but leave the old timestamp in place.

## Live Recheck

Deployed `db.ts` to Erik and built successfully:

- `pnpm -C packages/scraper build`

Ran the light Flexoptix catalog scraper:

- `Total unique products after GraphQL: 615`
- `Flexoptix Catalog Complete: 615 products, 0 prices`

Interpretation:

- `0 prices` means no changed price rows were inserted because hashes matched existing observations.
- After the timestamp fix, `615` latest Flexoptix price observations have `verified_at` within the last 10 minutes of the check.

## Important Caveat

TIP can say "last source verified at" for the active catalog prices. It should not claim permanent absolute 100% truth because Flexoptix prices can change and may vary by account, currency, VAT/session, or availability rules.
