Help

Everything you need to get value out of Trident Foresight — and honest answers when the model or the platform hits its limits.

Getting started

What does Trident Foresight actually do?▾
Trident Foresight watches any Shopify storefront for price cuts, stock-outs, restocks and new launches. It then predicts what a competitor is likely to do next using price cadence, inventory drag and sale-wave detection. When a prediction is high-confidence and you have a matched product in your own catalog, you get a one-tap defense: a suggested price change we can push to Shopify for you, gated by your guardrails.
60-second setup — what happens?▾
Install the app, pick 1–3 competitor domains, we poll them immediately for a baseline (~10–30 seconds each), then queue them for hourly polling. Your Home page fills with observed changes right away. Predictions need 3–7 days of price history before they start surfacing at ≥30% probability.
How often are competitors polled?▾
Free polls once per day at 06:00 UTC. Pro and Plus poll every hour. Failing competitors go into exponential backoff so a broken endpoint doesn't keep hammering their servers.
Why does the first poll show zero changes?▾
The first poll captures a baseline snapshot. Change events fire only when something differs from the previous snapshot — so events start landing from the second poll onward.

Predictions & defense

How does the prediction model work?▾
For each product we track, we compute two things: stability_days (days since the last price change) and cadence (typical days between changes for that product and competitor). The base probability comes from a logistic S-curve on stability ÷ cadence. Bonuses stack on top for high inventory drop (≥20% over 14d, suggesting stock clearance) and active sale waves (last 7 days of sales at 2× the 90-day baseline). Predictions surface at ≥30% probability; anything ≥70% is flagged as high-confidence and unlocks defense.
What is 'one-tap defense'? Does it change my prices automatically?▾
No — nothing writes to Shopify without you clicking Apply on a specific card. Every Defend button in the app (Home predictions, Action Center, Insights playbook, Matches rows) opens the same picker with three strategies: undercut cheapest by 1% (default), match cheapest, or set a custom target price. You see current → target and the resulting drop % before Apply. Max 15% drop per shot, enforced server-side. First-time users acknowledge a risk disclosure before the first write. Every apply is logged in reprice_jobs.
I'm already being undercut on Matches. How do I fix it without leaving Foresight?▾
On the Matches page, every SKU where you're not the cheapest gets a Defend price button next to the position badge. It opens the same picker as predictive defense — undercut by 1%, match, or custom — with the same guardrails. The server refuses anything that would breach your floor, exclusion list, or daily cap.
Does Foresight ever change prices automatically on a schedule?▾
No, and it never will. Automated per-product reprice rules that shipped in v0.16 were removed in 1.0.2 because they contradicted the product's core positioning. Every price change is a discrete merchant decision — either a predictive-defense click from Home or a reactive-defense click from Matches. If you want set-and-forget rules-based repricing, Foresight is the wrong tool for you.
What are guardrails?▾
Store-wide policy the defense flow enforces server-side. Configure in Settings → Defense guardrails: minimum price floor as % of current price, per-SKU exclusion list, and daily reprice cap. Guardrails always run — the client can't override, and violations block the Apply button with a visible reason.
Can I use Trident Foresight on my phone?▾
Yes. Open the app inside Shopify Admin on mobile, and you'll see an Installnudge — on Android/Chrome it adds an icon to your home screen and opens in its own window; on iOS, tap the Share button in Safari and choose “Add to Home Screen.” A service worker also caches your last page and the last-fetched data so a flaky signal shows stale data instead of a spinner. Enable push notifications in Settings → Push notifications to get anomaly alerts without opening Slack.
How do push notifications work?▾
Per-device opt-in in Settings → Push notifications. On enable we ask the browser for OS-level permission, subscribe to the browser's push service (Google FCM / Apple / Mozilla) with a VAPID public key, and store the subscription on our side keyed to your Shopify staff account. Anomaly detector fires alerts to every active subscription for your store. Tap a notification and the app opens directly to the offending competitor. Revoke on the same page or in your browser settings; failed / revoked subscriptions are pruned automatically.
Can I share a competitive-position report with a supplier without giving them app access?▾
Yes — Settings → Public share links (admin-only). One click creates a signed URL like /report/rep_… that renders a read-only snapshot: your position (cheapest/tied/ undercut counts), tracked competitors, recent activity. Never includes COGS, defences, forecasts, or team details. 30-day expiry; admins can revoke earlier from the same section. Recipients need no login — just the URL.
Can I defend a bunch of undercut SKUs in one click?▾
Yes — a Defend allbutton appears in the Matches page toolbar whenever at least one SKU is undercut. Click it, review the auto-computed undercut-1% target price per SKU, untick any you don't want, hit Apply. Server enforces a per-batch cap of 20 SKUs; individual SKUs still run through the same guardrails (floor, exclusion, daily cap, below-cost warning) — a failure on one never blocks the rest. Requires Operator role, same as single-SKU defence.
Do I get pushed an alert when a competitor does something unusual?▾
Yes. Every hour we compute a per-competitor cut-volume z-score against a 14-day rolling baseline; when today's cuts exceed 3σ above normal (with a minimum floor of 5 cuts and a stddev floor of 1 to avoid firing on tiny historically-flat competitors), a new insight card lands on Home and — if Slack is configured — a message fires immediately: “⚠ gymshark.com — 8,622 price cuts today, 12.4σ above normal.”Deduped per day; the same anomaly can't re-fire hourly. Critical severity kicks in at 6σ.
Can I A/B test two pricing strategies?▾
Yes — Analyze → Tests. Create a pricing test, assign SKUs to cohort A vs cohort B, then defend them however you want (undercut 1% for A, undercut 5% for B, for example). Each defence gets stamped with its cohort at apply-time. The Tests page rolls up per-cohort attribution: defences applied, revenue delta, margin delta, average velocity delta, and the grew/held/lost bucket counts. After 7 days the numbers mature. Cohort assignment is manual on purpose — you decide the test design, we score it.
Can I stop defences from ever going below cost?▾
Yes — Settings → Defence guardrails → Never sell below cost. When enabled, the server refuses any defence whose target price is below the SKU's cost_per_unit(set on Matches → “Set cost” chip). SKUs without a cost are unaffected — no false blocks on catalogs where COGS is only partly maintained. This is the hard version of the amber “Below cost” warning that already appears in the Defend modal.
Does the AI playbook know about my SKU's elasticity and cost?▾
Yes — the daily Claude prompt receives per-SKU elasticity (when fit R² ≥ 0.4) andcost_per_unit in the position blob. Instructions tell it to prefer targets that maximise expected margin using the demand curve, and to never recommend below cost. When elasticity is unreliable, it falls back to the default undercut-by-1% strategy.
Can I see true margin impact, not just revenue?▾
Yes — set your per-unit cost inline on the Matches page (“Set cost” chip on each merchant product row). Once set, the Defence modal shows margin/unit at the target price and warns if the target is below cost. The Defences page adds a Margin change (7d)KPI and per-defence margin delta alongside revenue delta. Costs are stored per SKU, snapshotted at defence apply-time so later cost edits don't rewrite historical attribution, and never sent to Shopify.
How do you know a 10% price drop will grow units by 14%?▾
Per-SKU price elasticity. For every product with enough history — at least 3 distinct price points, each with 3+ days of order data, and a fit R² ≥ 0.30 — we run a log-log regression on your own price/units data: ln(units) = α + β·ln(price). β is the elasticity. When you open the Defend modal on that SKU, we multiply the drop % by |β| to project the expected units uplift. It's a model estimate based on your own sales history — market shifts, promotions, seasonality all confound it. Real result may differ; treat as guidance, not certainty.
My only Admin left and I'm locked out of role management. What now?▾
If no Admin has opened Trident Foresight in the last 30 days, the Team page shows a red Claim Admin banner to any remaining staff user with app access. One click self-promotes you to Admin — logged in the audit trail as team.admin_claimed. The 30-day window is enforced server-side. If it's been fewer than 30 days but the Admin is genuinely gone, contact support and we can promote you manually.
Can I limit who on my team can change prices?▾
Yes — Settings → Team. Every Shopify staff member with access to the app gets a role: Viewer (read-only), Analyst (adds watchlist + exports), Operator (applies defences and manages competitors), Admin(everything, including changing other members' roles). The first user is Admin; subsequent users start as Viewer. Roles are enforced server-side, so a lower role can't bypass the gate via the API. The last Admin can't be demoted — promote someone else first.
Can I see my own price history alongside a competitor's?▾
Yes — click any competitor product and the price-history chart overlays your matched product's price (dashed emerald line) on top of the competitor's price (solid brand-color line). Merchant snapshots start populating from the moment you install; Shopify doesn't expose historical price data via its API, so earlier prices can't be back-filled.
Can I prove a competitor's price change to a supplier or regulator?▾
Yes. Every price-change event triggers a second best-effort fetch of the competitor product page HTML, gzipped and stored against the event. On any price row in Home's Recent changes strip, click the Evidence chip and your browser downloads evidence-{event_id}.html— the raw HTML the competitor served at the moment we detected the change, timestamped and self-contained. Retention is 90 days on the HTML; the underlying change_event stays 180 days. If capture failed (competitor blocked the fetch, page was down, response >500KB), the row still exists with the reason in capture_error so the timeline is complete.
How does auto-matching find competitor products for my SKUs?▾
Two complementary scores. Trigram similarity on Postgres pg_trgmcatches near-identical wording (“Vital Seamless Legging” ↔ “Vital Seamless Leggings”) at a 30% threshold. Semantic similarityon OpenAI title embeddings via pgvector catches pairs that mean the same thing but read differently (“Vital Seamless Tee” ↔ “Essential Ribbed Top”) at a 78% cosine threshold. A pair surfaces if either score clears; the stored similarity is the higher of the two. You can Pin correct auto-matches and reject wrong ones from the Matches page — pins survive rebuilds.
Did the defense actually work? How do I know?▾
The Defenses page (under Analyze) shows one row per applied reprice, scored 7 days after the change. Each row lands in an outcome bucket: Grew (velocity up ≥10% vs baseline), Held (within −20% to +10%), Lost(velocity down >20%), or Insufficient data. You also see the revenue delta — new-price × actual units vs old-price × expected units — so the trade-off between margin and volume is explicit. Attribution needs the read_orders scope; grant it in Settings and the first sync fills baselines within 24h.
How accurate is the model?▾
Backtested against your last 90 days of tracked data. See Analytics → Backtest calibrationfor your own numbers — coverage (what fraction of real drops we'd have flagged), high-confidence hit rate, and per-probability-bucket calibration. As live predictions accumulate, the Model accuracy card shows the real-world calibration alongside.
What does 'revenue at risk' mean?▾
If you've granted read_orders, we compute per-SKU weekly velocity from your actual Shopify orders. Combined with the expected drop magnitude and match confidence, that gives an estimated $ figure. Without read_orders we fall back to a 10-unit/week placeholder and label it estimated_default_velocity.

Integrations

How do I connect Slack?▾
Create an incoming webhook in Slack, paste the URL into Settings → Slack webhook, then hit Send Test. Alerts fire on matching events based on your Alert Rules.
What's the difference between Slack alerts and the daily digest?▾
Slack alerts fire immediately on matching events (subject to your rules and quiet hours). The digest is a single email each morning containing the Claude-written daily narrative plus a grouped event list — quieter, exec-ready. Skipped on days with no changes.
Can I send events to Klaviyo / Attentive / Zapier?▾
Yes — configure outgoing webhooks in Settings (Pro+). We POST a signed JSON payload to your URL for the topics you subscribe to (price_change, stock_out, prediction_high_confidence, defense_applied, etc.). Payload docs and a signature-verification snippet are in the Settings page under the webhook list.
Do you have a public API?▾
Yes — create an API token in Settings and use it as a Bearer token against /api/v1/*. See /api/v1/competitors,/api/v1/matches, /api/v1/changes. Rate-limited per token.

Data & limits

What are the plan limits?▾
Free: 1 competitor, daily polling, 30-day retention.
Pro ($49/mo): 5 competitors, hourly polling, 90-day retention, Slack + push alerts, semantic matching, predictive + reactive defence, attribution, elasticity, webhooks.
Plus ($149/mo): unlimited competitors, 180-day retention, RBAC, A/B pricing tests, margin-aware guardrails, evidence archive, public share links, email support.
14-day free trial on Pro and Plus — no charge until day 15, cancel any time from the Plan page or by uninstalling. Annual billing at a 15% discount is available; email dean@tridentbi.com.
How does the 14-day trial work?▾
When you upgrade to Pro or Plus, Shopify starts a 14-day trial on the subscription. You will not be charged for 14 days. On day 15, the standard monthly (or annual) charge appears on your Shopify invoice. Cancel any time during the trial from Plan → Cancel & downgrade, or by uninstalling the app — no charge. One trial per store per plan (Shopify enforces this).
My competitor shows status 'no_products_json'. Why?▾
Some stores disable their public /products.jsonendpoint, are password-protected, or geo-restrict access. There's nothing Trident Foresight can do here — the data simply isn't public and we don't use scrapers or headless browsers.
What can I track — just Shopify?▾
You can track any Shopify, WooCommerce, BigCommerce, or Magento storefront that exposes a public product feed. You can also track eBay sellers by username, or an eBay search phrase (Foresight watches the top listings for that query and alerts you when a new seller undercuts the market). All sources feed into the same Action Center, predictions and defense flow.
How do I add an eBay competitor?▾
On Home → Add competitor, switch the picker from “Storefront” to “eBay seller” and type the username, or to “eBay search” and type a phrase like wireless charger. Same plan limits apply — an eBay competitor counts as one against your competitor quota. You can also add competitors from any browser tab via the Chrome extension.
What's the Chrome extension?▾
A one-click way to add competitors from any browser tab — storefront, eBay seller, or eBay search results. Install from the Chrome Web Store, paste an API token from Settings → API tokens, and the extension auto-detects the current tab's type. The full walkthrough is in the user guide.
What's the AI daily playbook?▾
Below the Insights narrative sits a prescriptive playbook — 2 to 4 concrete price actions per day, tagged Defend / Hold / Raise, with a target price and estimated weekly impact. Click Review on any Defend card to jump straight into Matches with the Defend modal pre-opened for that SKU. Available on Pro and Plus. Regenerated once per store per UTC day.
What gets deleted when I uninstall?▾
48 hours after you uninstall, all of your shop's data is permanently deleted (competitors, products, snapshots, change events, predictions, guardrails, billing). See the privacy policy for details.
Do you sell or share my data?▾
No. Your competitor lists and observed data are visible only to your store. Anonymised aggregate statistics may inform model improvements. See the privacy policy for the full statement.

Still stuck?

Email support▾
Email dean@tridentbi.com with your *.myshopify.comdomain and we'll dig in. Support hours: business hours GMT, best-effort outside.