Back to all documents
Every finding, prioritised

Friction register

Internal working document, compiled 1 Sep 2026 from the eight completed workstreams (10-shopify.md through 80-unit-economics.md). Not the client deliverable. This document merges and prioritises; it does not audit. No finding below was invented here: every row traces to a finding ID already written in its originating document.

Global constraints applied throughout: no em dashes, no emojis, no revenue projections, no PII, no credentials.

Legend used in the register:

(revenue cannot occur), CORRUPTS (decisions rest on false or missing data), WASTES (money leaves, nothing returns), SUPPRESSES (demand exists but cannot find them). A small number of source rows carry class UNKNOWN where the originating document could not determine effect at all (an open access or ownership question, not a business-effect claim). These are grouped after SUPPRESSES rather than forced into one of the four verbs.

HARD) / INFERRED (reasoned from HARD facts, not measured) / UNKNOWN.

change, a field edit, a single decision) / medium (a build or a multi-step process change) / high (a strategy-level or structural change). Assigned here for prioritisation; not independently audited.

much of the business the finding touches, used only as the final sort key.

CRO, add-ons, email lifecycle) / media (advertising execution) / client (the owner's own decision) / UNOWNED (nobody is currently accountable for this under any existing contract).

check against Nuuk's June 2026 audit, Stage 1 SOW, and July 2026 proposal. Partial means a general topic is Nuuk's but a specific, dated fact recorded here is new. Yes/Partial rows are excluded from client-facing use in their restated form; only the specific new fact in a Partial row may be used, never the general topic.

Sort order: class (BLOCKS, CORRUPTS, WASTES, SUPPRESSES, then UNKNOWN), then effort ascending, then blast radius descending. The logic: spend fixes cannot be evaluated while measurement is broken, and neither is worth doing while the funnel is closed at the end. Within a class, cheapest fixes first; among equally cheap fixes, the ones touching the most of the business first.

---

Six reconciliations

Six known inconsistencies surfaced across the eight workstreams. Each is resolved explicitly below; the register uses the resolution, not the original framing, everywhere it appears.

1. Meta lifetime spend: $4,801.41 vs $4,801.42 (one cent)

00-open-questions.md and an earlier snapshot cite $4,801.41; the 1 Sep 2026 same-day pull in 20-meta-ads.md reads $4,801.42, on the ad account's own amount_spent field. This register uses $4,801.42, the more recent, directly-dated pull, and treats the one-cent gap as rounding noise across snapshots taken on different days, not a finding. Where a range is needed elsewhere in this register (for example ECON-01), $4,801.41-$4,801.42 is shown as the low end of a range, consistent with 80-unit-economics.md's own treatment.

2. Meta amount_spent ($4,801.42) vs three-method Insights ($4,821.05): $19.63 UNRECONCILED

Three independently-shaped queries (account-level single row, campaign-level summed, ad-set-level summed) all agree at $4,821.05. The ad account's own amount_spent field reads $4,801.42 on the same day. Both are HARD, dated, and reproducible; they simply disagree, and no cause was found for the $19.63 gap.

This register uses $4,821.05 for any calculation that needs one number (the cross-checked, three-method figure), because a figure confirmed three independent ways is stronger evidence than a single account-level field. $4,801.42 stays visible everywhere it is the more commonly quoted figure (it is what a client opening the Ads Manager account overview would see first), and META-01 remains open in the register as an unresolved CORRUPTS finding rather than being closed by this choice. Where 80-unit-economics.md already computed a range using both figures (ECON-01, ECON-03), that range is preserved rather than collapsed to one number.

3. Task 3 corrects Task 2's META-02: 11 vs 13 lifetime purchases is not unstable data

Task 2's META-02 recorded this as CORRUPTS/HARD, framed as Meta's own purchase count changing between pulls. Task 3 (30-tracking.md, TRACK-04) re-tested with a second, independently-shaped query and found both counts are correct, stable readings of two different Meta fields: purchase (the standard website-pixel event) = 11, $755.45 lifetime; omni_purchase (a broader metric that additionally counts 2 Messenger-based messaging_order_created_v2 conversions from now-paused MESSAGING_PURCHASE_CONVERSION ad sets) = 13, $770.54 lifetime. December 2025's extra 2 in omni_purchase matches December's messaging_order_created_v2 count exactly.

This register reflects the correction. META-02 does not appear below as an open finding; TRACK-04 does, carrying the resolved explanation. Any other row in this register that needs a lifetime purchase count uses 11 (purchase) as the conservative default and states omni_purchase (13) alongside it where the source document does.

4. Task 8 arithmetic error: $112.02/$17.90 corrected to $112.05/$17.93

80-unit-economics.md Section 2 and the ECON-02 finding row both understated the generous repeat-purchase read. Corrected arithmetic: (25 live orders / 21 distinct buyers) x $94.12 AOV = 25/21 x $94.12 = $112.05 per buyer (not $112.02), and the derived incremental value is $112.05 - $94.12 = $17.93 per buyer (not $17.90). This has been corrected directly in 80-unit-economics.md (Section 2 prose and the ECON-02 finding row) as part of this task, and this register uses the corrected figures throughout. The conclusion is unaffected: $17.93 still closes under 9% of the $201.88 gap between CPA and AOV, and repeat purchase still does not rescue the break-even picture.

5. Meta purchases: 6 (90-day window) vs 7 (calendar-month window) for identical $455.96

30-tracking.md Reconciliation 1 uses a rolling 90-day window (2026-06-03 to 2026-08-31) and reads 6 purchases at $455.96. Reconciliation 2 uses calendar months (2026-06-01 to 2026-08-31) and reads 7 purchases at the same $455.96 total value. The extra purchase in the calendar-month window carries no incremental value, which is consistent with a $0-value purchase landing on 1 or 2 June 2026 (the two days the calendar-month window includes that the 90-day window does not). This was not directly tested in any workstream and is recorded here as UNKNOWN, not resolved. It does not change any conclusion in this register: both windows agree Meta under-claims relative to Shopify's revenue-generating order count in the same period (TRACK-01), and neither the 6 nor the 7 count changes the dollar figure used anywhere else.

6. Task 1 report summary count corrected: 9 findings, not 13

Task 1's own report summary read as 13 findings. The actual count in 10-shopify.md is 9 findings (SHOP-01 through SHOP-09), of which 5 carry a PRIOR-ART note (SHOP-02 Partial; SHOP-06, SHOP-07, SHOP-08, SHOP-09 Yes) and 4 are genuinely novel with no prior-art overlap (SHOP-01, SHOP-03, SHOP-04, SHOP-05). This register uses 9 and 5/4 throughout; the 13 figure does not appear below.

---

The register

58 findings merged from eight workstreams. Rows marked "resolved" in the Effort column are informational corrections carried forward for traceability, not open action items; they sort to the front of their class bucket and are excluded from the top-five selection and from any spend or effort total.

BLOCKS

idworkstreamfindingevidence source and dateclasstiereffortremitprior-art
SEO-01SEOFlagship $59.99 case carries noindex,nofollow and is absent from sitemap.xml, an automatic Shopify consequence of UNLISTED status (SHOP-03); zero path to new organic or AI-agent discovery while it stays UNLISTED.Live crawl + sitemap pull, 1 Sep 2026BLOCKSHARDlowclientNo
ECON-02Unit economicsBreak-even cost per order tops out at $94.12 (the full AOV) even at a theoretical 100% gross margin; observed blended CPA (~$296) clears that ceiling by more than 3x. No plausible margin makes paid acquisition break even on a blended basis.Arithmetic on orders-aggregate.md, 20-meta-ads.md, 21-google-ads.md, 1 Sep 2026BLOCKSDERIVEDhighclientNo
META-07Meta AdsOne active ad [Venda] [AN4] is DISAPPROVED, one [Post] [17-06] is WITH_ISSUES; both sit inside purchase-optimized/engagement campaigns and cannot deliver without manual review, invisible to a status list that shows only literal status, not effective_status.meta-ads.json, meta-insights-ad-lifetime.json, 1 Sep 2026BLOCKSHARDlowmediaNo

CORRUPTS

idworkstreamfindingevidence source and dateclasstiereffortremitprior-art
TRACK-01TrackingThe prior "Meta over-reports purchases ~2x" claim is withdrawn: it compared a 90-day Meta window (6 purchases) against a 60-day-truncated Shopify pull (3 orders), a window-length defect in the comparison, not a measurement defect. Corrected to identical windows, Meta under-claims.meta.txt, orders-aggregate.md, ga4-tracking-reconciliation.txt, 1 Sep 2026CORRUPTSHARDnone (resolved)unownedNo
TRACK-04TrackingThe "11 vs 13" lifetime Meta purchase discrepancy (originally META-02) is resolved, not unstable: purchase = 11 (standard pixel) and omni_purchase = 13 (adds 2 Dec-2025 Messenger conversions) are both correct readings of different fields. See Reconciliation 3.meta-purchase-window-dec2025-aug2026.json, meta-insights-account-monthly.json, 1 Sep 2026CORRUPTSDERIVEDnone (resolved)unownedNo
ECON-06Unit economicsThe 6 zero-value orders were previously framed as a giveaway/discount-abuse problem. Withdrawn: all 6 trace to two known discount codes (owner + sample activity) and are already correctly excluded from net revenue, AOV, and both CPA denominators used in this document.orders-aggregate.md, docs/status.md, scripts/analyze-orders.ts, 1 Sep 2026CORRUPTSHARDnone (resolved)unownedNo
GEO-04GEO/AEOPatent status is stated two contradictory ways across the same three pages ("Patent Pending" vs "patented"/"patented technology"), with no patent number, filing date, or citable source anywhere. The specific lab-test evidence citation is entirely absent from the flagship product page, the most likely AI-agent transaction target.Live crawl, 1 Sep 2026CORRUPTSHARDlowclientNo
SEO-05SEO/pages/about has zero <h1> elements; every other crawled page has exactly one. Real, unique brand-story content with no top-level heading, weaker for both search engines and screen readers/AI extraction.Live crawl, 1 Sep 2026CORRUPTSHARDlowUNOWNEDNo
SHOP-04ShopifyEvery variant on the store's second-largest product by variant count (10 of 16 variants across two listings) carries sku: null.gql products query, 1 Sep 2026CORRUPTSHARDlowunownedNo
SHOP-01ShopifyThe same SKU string (SP-GPC-BLK-001) is assigned to two separate product records with different live inventory counts (942 vs 947), confirmed distinct stock pools.gql products query, 1 Sep 2026CORRUPTSHARDmediumunownedNo
META-01Meta AdsTwo independent, HARD, dated Meta sources disagree on lifetime spend by $19.63: three cross-checked query methods agree at $4,821.05; the account's own amount_spent field reads $4,801.42. See Reconciliation 2; unresolved.meta-insights-account-lifetime.json, meta-account.json, 1 Sep 2026CORRUPTSHARDmediumunownedNo
ECON-08Unit economicsThe blended CPA comparison's two sides span different windows (Meta's spend window starts 2025-12-03, Google's GA4-visible floor starts 2026-05-01, the 19-order denominator spans 2025-11-06 onward). The mismatch flatters the $296 headline: excluding the 2 orders that predate any ad spend raises blended CPA to $330.78.Arithmetic on orders-aggregate.md, 20-meta-ads.md, 21-google-ads.md, 1 Sep 2026CORRUPTSDERIVEDmediumunownedNo
TRACK-02TrackingGA4 misses real, revenue-generating Shopify orders across multiple months, verified at the transaction level: 20 GA4 transactions/$1,353.38 vs Shopify's 19 revenue-generating orders/$1,788.30 over Nov 2025-Aug 2026, a 24.3% revenue undercount.ga4-tracking-reconciliation.txt, orders-aggregate.md, 1 Sep 2026CORRUPTSDERIVEDmediumclientNo
TRACK-05TrackingZero-value (100%-discount) orders fire real GA4 purchase/transaction events at $0.00, confirmed at the individual transaction level for 4 orders across two months. Revenue is unaffected, but a conversion-rate or AOV figure computed naively from GA4's raw transaction count without excluding $0 rows would be distorted.ga4-tracking-reconciliation.txt, orders-aggregate.md, 1 Sep 2026CORRUPTSHARD (GA4) / INFERRED (Meta)lowclientNo
ECON-05Unit economicsInventory across all four product records totals 2,481 units against a run rate of ~11.3 units/month, 219 months (~18.2 years) of cover at face value. The arithmetic is HARD; whether the total reflects duplicate records or genuine overstock is INFERRED, not confirmed.10-shopify.md SHOP-01/SHOP-02, orders-aggregate.md, 1 Sep 2026CORRUPTSDERIVED (arithmetic) / INFERRED (interpretation)mediumclientNo
TRACK-06TrackingGA4 shows one unexplained transaction in May 2026 (3 GA4 transactions at $0.99 combined) beyond what Shopify's export accounts for (2 real $0.00 orders that month). Cause not distinguishable from the access available.ga4-tracking-reconciliation.txt, orders-aggregate.md, 1 Sep 2026CORRUPTSINFERREDhighunownedNo
GADS-01Google AdsThe brief's two required cross-check methods for lifetime Google Ads spend disagree: $821.77 (per-month sum) vs $822.90 (single whole-range query), a $1.13/0.14% gap, reproducible on repeated runs. Reported BLOCKED on the exact figure rather than resolved by picking one; campaign-level detail is unaffected.ga4-google-ads-spend.txt, ga4-google-ads-crosscheck2.txt, 1 Sep 2026CORRUPTSHARDlowunownedNo

WASTES

idworkstreamfindingevidence source and dateclasstiereffortremitprior-art
META-03Meta Ads$1,900.66 lifetime spend (39% of Meta's cross-checked $4,821.05 total) sits on ad sets whose optimization goal carries no purchase-capable event (POST_ENGAGEMENT x2, PROFILE_VISIT, THRUPLAY), against 11 purchases lifetime for the whole account.meta-insights-adset-lifetime.json, meta-adsets-promoted-object.json, 1 Sep 2026WASTESHARD (spend, goal) / DERIVED (bucket total)lowmediaNo
META-04Meta AdsFour ad sets under [Remarketing] ran concurrently against structurally overlapping windows of the same site-visitor audience; the narrowest carries a lifetime frequency of 17.79, five to fifteen times every other ad set, independently corroborated by Meta's own Opportunity Score tool flagging fragmentation elsewhere in the account.meta-adsets.json, meta-insights-adset-lifetime.json, meta-opportunity-score.json, 1 Sep 2026WASTESHARDlowmediaNo
META-06Meta AdsMeta's own auction-ranking diagnostic scores one active ad Below Average/bottom 35% on Conversion Rate Ranking with the stated diagnosis "the ad is not producing conversions."meta-auction-ranking-benchmarks.txt, 1 Sep 2026WASTESHARDlowmediaNo
GADS-03Google Ads$340.17-$341.28 (41-42% of all GA4-visible Google spend) ran on two YouTube/video campaigns that produced 22 combined clicks and 0 transactions, against a $59.99 product; roughly $15.50 cost per click with zero sales.ga4-google-ads-campaign-detail.txt, 1 Sep 2026WASTESHARDlowmediaNo
CRO-01CRO/offerThree discount mechanics run live at once, none retired for the others (25% no-email banner, 15% Klaviyo email-capture popup, two families of 10% codes); the free 25% banner undercuts the entire commercial purpose of the email-capture mechanic beneath it.Live page loads + codeDiscountNodes query, 1 Sep 2026WASTESHARDlowCRO scopePartial
ECON-03Unit economicsMeta's own ad-attributed cost per order ($369-$438, depending which spend/purchase-count figure is used) is higher than the blended figure (~$296), because it divides nearly the same spend by Meta's own narrower claimed-purchase count (11-13) instead of Shopify's full 19 paying orders.20-meta-ads.md META-01, 30-tracking.md Reconciliation 3, arithmetic, 1 Sep 2026WASTESDERIVEDlowmediaNo
SHOP-02ShopifyThe DRAFT duplicate product carries publishedAt: null and holds 947 units of inventory; cannot generate revenue while it stays in this state.gql products query, 1 Sep 2026WASTESHARDlowclientPartial
SEO-04SEOAll four products carry an empty SEO-title admin field; Shopify's automatic fallback title is generic, keyword-thin, and near-duplicate across the catalog, missing the buyer-language terms the store ranks marginally for.Live crawl, 1 Sep 2026WASTESDERIVEDlowUNOWNEDNo
GEO-05GEO/AEONo FAQPage or BreadcrumbList schema exists anywhere in the crawl; the brand's Organization.sameAs array has 8 of 9 slots empty. Content that could answer a buyer's question exists only as prose, not structured for AI citation.Live crawl, 1 Sep 2026WASTESDERIVEDlowUNOWNEDNo
CRO-04CRO/offerThe Stage 1 product-page rebuild (accordion, review summary, video, FAQ) is live on the ACTIVE combo product page and entirely absent from the UNLISTED flagship page; the highest-effort Stage 1 work landed on the listing that already had a path to it.Live page comparison, 1 Sep 2026WASTESHARDmediumCRO scopePartial
SHOP-05ShopifyThe case product's handle contains a literal registered-trademark character (string-pro-tech®); resolves 200 OK when correctly encoded, but is a plausible failure point in ad click-throughs, QR codes, or manually typed links. Handle is FROZEN per repo guardrails; changing it needs a manual 301 this engagement's write scope cannot safely perform.curl status check, 1 Sep 2026WASTESHARD (resolves) / INFERRED (ad-channel fragility)highclientNo
META-05Meta AdsNo ad set in the account is within an order of magnitude of Meta's own ~50-conversions-per-week threshold to exit the learning phase; the highest-purchase ad set over 90 days recorded 2 purchases total.meta-insights-adset-90d.json, direct field test, 1 Sep 2026WASTESDERIVEDmediummediaNo
ECON-01Unit economicsBlended cost per paying order is approximately $296 (combined ad spend $5,623.18-$5,642.82 / 19 paying orders) against an AOV of $94.12, 3.1x AOV before any product cost is subtracted. Most generous reading available to paid acquisition.orders-aggregate.md, 20-meta-ads.md, 21-google-ads.md, 1 Sep 2026WASTESDERIVEDhighunownedNo
SEO-07SEOThe site's SEO surface targets solution-aware search exclusively and ranks weakly even there, while zero on-site content exists for the problem-aware queries that would introduce a buyer to this category.Task 7 cross-check + live AI-assistant test, 1 Sep 2026WASTESINFERREDhighUNOWNEDNo
CRO-05CRO/offerThe $59.99 price sits above both identified direct competitors ($34.95-$55) and far above the free-to-$17 substitutes independent content recommends first; named here as a candidate root cause underneath page-level fixes, not a price recommendation.70-competitive.md, 80-unit-economics.md, cited, 1 Sep 2026WASTESINFERREDhighclientNo
SHOP-08ShopifyThe live theme's templates/product.json includes a related-products section already built, explicitly disabled: true.Theme file pull, 1 Sep 2026WASTESHARDlowCRO scopeYes
SHOP-09Shopifysections/sticky-add-to-cart.liquid exists in the live theme's asset list (19,011 chars) but is not wired into templates/product.json's section order; a dead file, not an active feature.Theme file pull, 1 Sep 2026WASTESHARDlowCRO scopeYes
COMP-03CompetitiveIndependent, non-competitor content ranking for the buyer's actual problem-aware question teaches free or near-free remedies and does not recommend a dedicated protection case as an expected purchase; paid acquisition here is doing category-creation work, a structurally harder job.Web search, 1 Sep 2026WASTESINFERREDhighclientNo

SUPPRESSES

idworkstreamfindingevidence source and dateclasstiereffortremitprior-art
GEO-03GEO/AEOllms.txt directs AI agents to GET /sitemap.xml as the discovery mechanism; the products sub-sitemap lists exactly two of the store's live products, not the flagship case. An agent following the store's own documented instructions would never learn the flagship exists.llms.txt + sitemap pull, 1 Sep 2026SUPPRESSESDERIVEDlowclientNo
SHOP-03ShopifyThe $59.99 case (SKU SP-GPC-BLK-001, 942 units) carries status: UNLISTED, absent from collections and on-site search, reachable only by direct link.gql products query, 1 Sep 2026SUPPRESSESHARDlowclientNo
CRO-03CRO/offerThe UNLISTED flagship case receives 102 sessions/90 days across all channels; a visitor who lands there and leaves has no way back (not findable by search, not listed anywhere on-site, and lacking the Stage 1 page elements the store's other listing has).SHOP-03, SEO-01 cited; GA4 landing-page report; live checks, 1 Sep 2026SUPPRESSESDERIVEDlowclientNo
SEO-06SEOProduct review/AggregateRating structured data (Judge.me) is present on the combo page (highest-traffic landing page) but absent from the flagship case page, which also lacks any indexing path (SEO-01).Live crawl, 1 Sep 2026SUPPRESSESHARDlowUNOWNEDNo
GEO-01GEO/AEONo independent third-party citation of the brand was found anywhere in a live AI-assistant test, including on a direct branded query; the assistant explicitly noted it could not find independent reviews.Live AI-assistant query, 1 Sep 2026SUPPRESSESHARDhighUNOWNEDNo
GEO-02GEO/AEOOn problem-aware buyer questions tested directly against a live AI assistant and cross-checked on a second live search index, String ProTech is absent from every synthesized answer and source list; on the one solution-aware query where it surfaces, it ranks 6th of 7 sources.Live AI-assistant + Brave Search queries, 1 Sep 2026SUPPRESSESHARDhighUNOWNEDNo
SEO-02SEOSearch Console (re-pulled 1 Sep 2026): 0 clicks, 9 total impressions across the full three-month window, concentrated on one crawl date; real organic search visibility for this domain is close to zero.npm run query:gsc, 1 Sep 2026SUPPRESSESHARDhighUNOWNEDNo
SEO-08SEORendered pages show far more alt-text degradation than the raw admin field implies: on the flagship page, 21 of 41 images carry empty alt="" on genuine product photography; across all three product pages, the large majority of populated alt text repeats the bare product title with zero differentiation.Live crawl, image-by-image parse, 1 Sep 2026SUPPRESSESHARDmediumUNOWNEDNo
COMP-01CompetitiveOn the two problem-awareness queries a guitarist who does not yet know this category exists would actually type, String ProTech does not appear anywhere in the results; two direct competitors do, with owned blog content answering the exact question.Web search, 1 Sep 2026SUPPRESSESHARDhighUNOWNEDNo
COMP-02CompetitiveOn the two queries where String ProTech does appear, it ranks 5th of 9 and 7th of 8, behind general instrument-case retailers, a marketplace listing, and one direct competitor.Web search, 1 Sep 2026SUPPRESSESHARDhighUNOWNEDNo
COMP-04CompetitiveThe $59.99 case sits 3.5x to 6.7x the price of every adjacent substitute a guitarist solving this problem would actually compare it against, and above the two identified direct hard/soft protector competitors.Prices pulled 1 Sep 2026SUPPRESSESDERIVEDhighclientNo
COMP-05CompetitiveString ProTech sells direct-to-consumer only; no Amazon listing, no marketplace presence. The closest direct competitor sells through its own site plus Guitar Center, Target, and Music & Arts.Site-restricted search + retailer listings, 1 Sep 2026SUPPRESSESHARDmediumclientNo
SHOP-07ShopifyThe store's only Collection object holds 0 products and is not referenced by any live theme section.gql query + theme scan, 1 Sep 2026SUPPRESSESHARDmediumCRO scopeYes
SHOP-06Shopify/pt redirect coverage is partial and one existing redirect sends traffic to the homepage instead of the matching product; the bare /pt path still 404s.gql query + curl, 1 Sep 2026SUPPRESSESHARDmediumclientYes
SEO-03SEO/pt returns 404 and still receives real GA4 traffic (108 sessions/90 days, 27 organic) that lands on a dead end rather than the correct product page.GA4 established fact; SHOP-06; GSC recheck, 1 Sep 2026SUPPRESSESDERIVEDmediumclientYes
TRACK-03TrackingNo Conversions API integration is active on the Meta pixel; the Gateway reports NOT_ONBOARDED and the only Purchase event checked in the last 7 days sourced from BROWSER, zero SERVER events. Event Match Quality 5.2-5.3/10.meta-dataset-quality.json, 1 Sep 2026SUPPRESSESHARDmediummediaNo

UNKNOWN (class not determinable from evidence available)

idworkstreamfindingevidence source and dateclasstiereffortremitprior-art
CRO-02CRO/offerThe account's purchase-optimized [Venda] and cupom STRING10 remarketing ad sets serve creatives with no queryable link_url or product_set_id on this task's read-only API access; the destination URL for these highest-intent ads cannot be confirmed from the ad-account side. A five-minute manual check in Ads Manager (not available to this engagement) would resolve it.ads_get_creatives pull, 1 Sep 2026UNKNOWNUNKNOWNlowmediaNo
GADS-04Google AdsGoogle Ads account ownership (client-owned vs. agency manager account) cannot be determined from GA4 or any credential this task holds; Meta's equivalent is confirmed clean, and this carries real transition risk if unconfirmed.Not independently checkable from GA4's data modelUNKNOWNUNKNOWNlowclientNo
META-08Meta AdsThe account's activity log records five named actors managing the account historically, none of whom appears in the current agency list (one entry: Node AI). Timing correlations to the JetAds pause and the March 2026 campaign creation are exact; which vendor each name belongs to is not established.meta-activities-full*.json, meta-agencies.json, 1 Sep 2026UNKNOWNHARD (timing, names) / INFERRED (vendor mapping)lowclientNo
GADS-02Google AdsGA4-visible Google Ads spend is a floor, not a lifetime total: the GA4-to-Ads link creation date is unrecoverable (googleAdsLinks Admin API resource returns 403 SERVICE_DISABLED for this credential). Spend is visible only from May 2026 onward; whether that is when spend started or only when the link began reporting cannot be distinguished.ga4-adslinks-admin-api.txt, 1 Sep 2026UNKNOWNHARD (access boundary)mediumunownedNo
ECON-04Unit economicsGoogle Ads-attributed cost per order cannot be computed with confidence: GA4's transactions metric is not confirmed to be the same event Google Ads bids toward, and conversion-action configuration is not readable from this task's credentials.21-google-ads.md GADS-03UNKNOWNUNKNOWNmediumunownedNo
ECON-07Unit economicsCohort behaviour beyond the headline 14.3% repeat rate cannot be computed from the current PII-free aggregate; buyer hashes are never retained against an order date, so no cohort curve exists without changing the aggregation script itself.scripts/analyze-orders.ts, orders-aggregate.mdUNKNOWNUNKNOWNmediumunownedNo

Totals: 58 source findings across the eight workstreams, presented as 57 register rows: META-02 is not given its own row because Reconciliation 3 folds it into TRACK-04, the same underlying fact, corrected, so it is merged rather than duplicated under two IDs. 8 rows carry a PRIOR-ART flag (5 fully excluded: SHOP-06, SHOP-07, SHOP-08, SHOP-09, SEO-03; 3 Partial, specific new fact only: SHOP-02, CRO-01, CRO-04). 24 findings are marked UNOWNED: SHOP-01, SHOP-04, META-01, GADS-01, GADS-02, TRACK-01, TRACK-04, TRACK-06, SEO-02, SEO-04, SEO-05, SEO-06, SEO-07, SEO-08, GEO-01, GEO-02, GEO-05, COMP-01, COMP-02, ECON-01, ECON-04, ECON-06, ECON-07, ECON-08. This is the largest single remit bucket in the register: SEO, GEO/AEO, and most of the tracking- and economics-diagnostic findings sit here because no signed contract in this engagement covers SEO, AI-search readiness, or measurement work. Nuuk's remit is product page CRO, add-ons, and email lifecycle; media execution belongs to whoever runs the ad accounts; client covers decisions only the owner can make (product status, pricing, inventory, identity, access). Everything else in that gap is UNOWNED.

---

The selection: top five for the client report

HARD or DERIVED tier only. Nothing INFERRED, nothing UNKNOWN, nothing PRIOR-ART (full or Partial). Each is defensible line by line against the client's own systems. Presented in class order (the same logic as the register: the funnel has to be open before spend is worth evaluating, and spend has to be measured correctly before it is worth optimising).

1. SEO-01 / SHOP-03: the flagship product cannot be found by anyone who doesn't already have the link

Finding. The $59.99 case that carries the store's own flagship SKU and top-level brand name (String Protech® Guitar String Protection Case) is set to UNLISTED status. Shopify's documented, automatic behaviour for that status adds a noindex,nofollow tag to the page and strips it from sitemap.xml. The product resolves normally on direct link and gets real traffic (102 sessions in 90 days), but has no path to new discovery through search or any AI system that follows the store's own sitemap.

Evidence. gql products query and live meta-tag/sitemap pull, both 1 Sep 2026, cross-confirmed against Shopify's own documented platform behaviour for UNLISTED products.

Why it matters commercially. This is not a ranking problem to be improved incrementally. It is a structural switch: while the product stays in this state, every dollar spent making it more findable (better titles, better content, better schema) has nothing to attach to, because the page itself is excluded from the index it would need to rank in.

What it would take to fix, conceptually. A decision on the product's listing status, made with visibility into why it was set that way in the first place (the store also holds a near-duplicate DRAFT record on the same SKU, so the status question and the duplicate-record question likely need to be resolved together, not separately).

2. ECON-02: no margin makes the current paid-acquisition math work

Finding. Break-even cost per paying order, expressed as a function of gross margin, tops out at $94.12 (the full average order value) even at a theoretical, not-real-for-a-physical-product 100% margin. The store's actual blended cost per paying order is approximately $296, more than 3x that ceiling. The margin required to make the current spend break even is over 314%.

Evidence. Arithmetic on the store's own 12-month order export and the independently cross-checked Meta and Google spend totals, both dated 1 Sep 2026.

Why it matters commercially. This is the number that makes every other finding in this register urgent rather than merely tidy. It does not depend on knowing the client's actual unit cost, which is why it is presented as a ceiling rather than a single figure: whatever the real margin turns out to be, it cannot close a gap this size on its own.

What it would take to fix, conceptually. The lever that has to move is spend efficiency or average order value, not margin. That points directly at the WASTES-class findings elsewhere in this register (money leaving on non-purchase-capable ad sets, wasted video-campaign spend) as the place to start, once the client's actual unit cost is known so the real target can be set.

3. TRACK-02: the measurement layer is missing roughly a quarter of real revenue

Finding. GA4's own purchase/ecommerce tracking misses real, revenue-generating Shopify orders across multiple months, verified at the individual transaction level, not just in monthly totals: 20 GA4 transactions and $1,353.38 against Shopify's 19 revenue-generating orders and $1,788.30 over the ten months checked, a 24.3% revenue undercount.

Evidence. Transaction-level GA4 pull cross-referenced against the Shopify order export, both dated 1 Sep 2026, with three separate months matching to the exact cent (ruling out a currency or conversion-rate explanation).

Why it matters commercially. Every decision that leans on GA4 revenue numbers, including the Google Ads cost/revenue picture, is working from an undercounted base. This is worth fixing independent of anything to do with Meta: it means the store's own measurement of itself understates its own performance.

What it would take to fix, conceptually. An audit of why real, paid orders are not producing a GA4 purchase event some months and not others, followed by whatever repair that audit points to.

4. META-03: over a third of lifetime Meta spend sits on ad sets that structurally cannot produce a purchase

Finding. $1,900.66 of the account's cross-checked $4,821.05 lifetime spend (39%) ran on ad sets whose optimization goal carries no purchase-capable event at all: POST_ENGAGEMENT (two ad sets), PROFILE_VISIT, and THRUPLAY. This is a platform-structural fact confirmed directly on each ad set's configuration, not an inference from results.

Evidence. Ad-set and ad-level insight pulls, cross-checked at two levels of granularity, 1 Sep 2026.

Why it matters commercially. This is money that was never able to buy a sale, by the platform's own design, independent of creative quality, targeting, or budget. It is the single largest, most directly attributable waste figure in the whole account.

What it would take to fix, conceptually. A decision on which objectives the ad account should be funding going forward, made with the optimization-goal-to-purchase-capability mapping in view before any budget is reallocated.

5. GEO-01: no independent source anywhere vouches for this brand

Finding. A live AI-assistant query for the brand plus the word "reviews" returned only the brand's own three pages; the assistant itself noted it could not find independent coverage and offered to search further. This was tested directly, today, not inferred from organic search rank.

Evidence. Live AI-assistant query, 1 Sep 2026, full transcript saved.

Why it matters commercially. A brand's own product page and patent claims are not evidence to an AI system deciding what to recommend; a citation from somewhere else is. As buyer research increasingly starts inside an AI assistant rather than a search results page, having nothing for that assistant to point to besides the brand's own words is a growing, not shrinking, gap.

What it would take to fix, conceptually. Earning presence somewhere outside the brand's own domain that an AI system's index can find and treat as corroboration, rather than continuing to rely solely on first-party claims.

---

What we could not establish

Every material UNKNOWN surfaced across the eight workstreams, recorded honestly rather than guessed at.

(CRO-02).** The [Venda] campaign and the cupom STRING10 remarketing ad sets serve creatives with no queryable destination URL on this engagement's read-only API access. Ad set IDs involved: campaign 6994075424008 ([Venda]) and ad sets 52538349915212, 52538348943212, 52538305228612. This needs a manual check inside Meta Ads Manager, which this engagement's credentials cannot reach; it would take roughly five minutes and would close CRO-02 outright.

in this register is a floor, not a lifetime total, because the GA4-to-Ads link creation date lives only in the GA4 Admin API's googleAdsLinks resource, which returns 403 SERVICE_DISABLED for this engagement's credential. Google spend is visible in GA4 only from May 2026 onward; whether that is when spend actually started, or only when the link began reporting, cannot be determined without direct Google Ads account access.

break-even table the business actually sits, is unknown. This gates the precise version of ECON-02 and the correct next-step spend target; nothing in this register guesses at it.

daily-quota error on every call for both the homepage and the flagship product page and did not recover on retry. These three metrics are UNKNOWN, not estimated from a proxy; server time-to-first-byte was captured instead and is explicitly not presented as a Core Web Vitals substitute.

business owns the Google Ads account outright, the way Meta's business confirmably does, or an agency manager account holds it. This carries real transition risk and is answerable in five minutes inside Google Ads > Admin > Access and security > Managers, a screen this engagement cannot reach.

actors in Meta's own activity log with exact timing correlations to known campaign-creation dates, neither of whom appears in the account's current agency list and neither of whom is named in any document this engagement holds.

figure reflects a $0-value purchase on 1 or 2 June 2026** (Reconciliation 5). Not directly tested by any workstream.

genuine overstock** (ECON-05). The arithmetic is HARD; the interpretation is INFERRED toward duplicate records, not confirmed.

The PII-free order aggregate never retains a buyer hash against an order date, so only the headline 14.3% repeat rate is available, not a trend.