PharmLink Catalogue Status Symbion Non-Directo — Publish-Readiness Assessment
Point-in-time view
12 May 2026
Audit owner: Roly
v1.3

The Symbion non-Directo cohort (2,929 products) is the active publish target. Scored against two bars: MVP (can be sold — ID, name, pricing, categorisation) and Data-Rich (MVP plus descriptions, images, fuller competitive pricing). The cohort sits firmly in the Usable tier for MVP; the gap to Data-Rich is meaningful but not large.

Primary target

MVP Score

Can the product be sold on the portal? Required: identity, pricing, categorisation, pack info, SaH.
69.1 / 100Usable
9
Done (80+)
5
Risky
1
Failing

Data-Rich Score

Full enrichment package — MVP plus descriptions, images, broader competitor coverage, supplier metadata.
53.4 / 100Risky
9
Done (80+)
5
Risky
7
Failing
Active Cohort
2,929
Symbion non-Directo, in-scope
Pricing Market-Validated
5.3%
Only 155 of 2,929 prices have competitor reference
MVP Blockers
1
SaH classifier missing

Column-by-column scorecard

I.
All 26 portal columns reviewed. Overall = (Completeness × Quality) / 100. MVP = column required to sell the product. Italics indicate Data-Rich-only columns.
Completeness
%
Quality
Overall
MVP
Identity — group MVP score 80, Usable
Supplier ID
100%
95
95
Product Name1
95.6%
45
43
Brand
100%
80
80
Manufacturer
93.9%
75
70
Manufacturer SKU
99.9%
80
80
GTIN
99.2%
85
84
Pack & Quantity — group MVP score 77, Usable
Pack Type
100%
80
80
Units / Pack
100%
80
80
Packs / Carton
99.5%
75
75
Base Units
99.5%
75
75
Size2
0%
0
0
Categorisation — group MVP score 40, Risky
Category L13
100%
55
55
Sub Category 1
99.0%
55
55
Sub Category 2
98.3%
50
49
SaH Category
0%
0
0
✓ blocker
Pricing — group MVP score 77, Usable (but see breakdown)
Symbion Price
100%
85
85
Product Cost (ex)
100%
80
80
Product Price (ex) — weighted by pricing source4
The HCP engine sets every price, but only 5.3% reflect any market comparison. The weighted overall of 48 puts this column in the Risky tier.
Market-validated
3.0%
90
90
Floor + competitor seen
2.3%
75
75
CH2-floor driven
1.2%
75
75
Floor only — no market ref
94.7%
45
45
Product Price (ex) overall
100%
48
48
GST Rate
100%
95
95
Preferred Supplier
0%
0
0
IA Price
2.4%
80
2
BrightSky Price
3.7%
80
3
Content & Media — Data-Rich only, not blocking MVP
Product Description
0%
0
0
Image (Hero)
1.2%
0
0
Logistics & Misc
Fulfilment Model
99.0%
75
74
Out-of-Scope Flag
100%
80
80
Overall tier
80+ Done
60–79 Usable
30–59 Risky
< 30 Failing

Open issues from today's audit

II.
Severity Title Rows Blocks MVP?
Medium F11 / #56 — SaH classifier missing
No code path populates support_at_home_category. Only true MVP blocker in the audit.
All Yes
High F3a — Portal exporter not built
No code produces the portal CSV; structural blocker before any publish.
All 2,929 Yes
Critical Issue C — Symbion source categories unreliable
~30% of categories wrong due to bad source data. Risky for MVP; reduces quality of three category columns.
~900 est.5 Quality risk
Medium F4 / #41 — Product name cleaner skips populated rows
Raw Symbion strings still in product_name. Lifts name overall from 43 → 80+ when run.
2,800 Quality risk
High F10 — IA/BrightSky matching coverage gap
94% of cohort prices have no market validation. Risky for MVP credibility.
2,774 Quality risk
Medium Issue B — Out-of-scope products publishing
Dishwasher tablets etc. have out_of_scope = false but category_1 = 'Out of scope'.
29 Quality risk
Medium F6 — BrightSky category mapper bug
BS-cohort only; doesn't affect Symbion publish.
BS cohort No (BS)
Low Issue A — "Hygiene " trailing-space bug
148 rows table-wide. Quick fix, lifts category quality marginally.
148 Quality risk
Low Matcher rethink proposal
Discussion: pack equivalence, IA bulk-divide pricing. Lifts F10 architecture.
No

Path to publish — two targets

III.

Indicative ranges. Assumes engineering capacity from Hazel and Faisal — validate before committing externally.

MVP

Quality-flagged Publish

3–6 weeks

Cohort goes live without descriptions or images. Categories accurate enough for browsing, SaH classification working, names cleaned. Acceptable if customers tolerate plain listings.

  • Build portal exporter (F3a)
  • Build SaH classifier (#56) — the one MVP blocker
  • Run product name cleaner (F4 / #41)
  • Fix Issue A (trailing space)
  • Fix Issue B (out-of-scope filter)
  • Accept Issue C as known limitation at MVP
  • Accept 94.7% floor-only pricing at MVP

Data-Rich Publish

+ 4–6 weeks

Full enrichment. Descriptions and images on every product, categories reviewed via AI override, broader competitor coverage, polished listings.

  • Everything in MVP
  • Run AI description pipeline (Script 07)
  • Run image search pipeline (Scripts 09a/09b)
  • Implement AI category override (Issue C)
  • F10 matcher improvements
  • Manual review pass on Mode B descriptions

Notes.

1 Product Name is populated on 95.6% of cohort rows but reflects raw supplier Description strings; the AI cleaner script was never run on these populated rows. Quality of 45 is an estimate; true score requires measurement of all 2,800 rows. Running the cleaner lifts overall from 43 to roughly 80+.

2 Size is shown as Data-Rich only because base_unit_qty already covers the UOM requirement for MVP. Size remains descriptive — useful for richer listings but not required to sell.

3 Categorisation completeness is high but accuracy is significantly compromised by Symbion source-data errors (Issue C). Quality score of 55 reflects a 30-row sample where roughly 30% of mappings were wrong. The full remediation (AI category override) is deferred to Data-Rich.

4 Pricing market-validation is the most material quality finding in this audit. The HCP engine sets every price using GREATEST(competitor_undercut, supplier × 1.22). When competitor data exists, the price reflects market reality. When it doesn't (94.7% of cohort), the formula sets the floor with no external reference. The weighted overall of 48 puts product_price_ex in the Risky tier.

5 The ~900 misclassification figure for Issue C is an extrapolation from a 30-row sample. True rate requires either AI classification across the cohort or manual spot-check at scale.

Scoring formulae: Overall = (Completeness × Quality) / 100, per column. MVP score = mean of overall across 20 MVP-required columns. Data-Rich score = mean of overall across all 26 columns.

Source: Supabase production products table queried 12 May 2026. Filter: symbion_price IS NOT NULL AND directo_sku IS NULL AND out_of_scope = false. Reference: audit_products_symbion_non_directo_v1_2.md.