# CostRadar.ai — LLM Reference > Track, analyze, and optimize every dollar across Shopify, Amazon, WooCommerce, BigCommerce, Allegro, and eBay stores with AI-powered profitability insights. **Website:** https://costradar.ai **App:** https://costradar.ai (SPA; signed-in app at `/app/*`) **Documentation:** https://costradar.ai/docs **Support:** hello@costradar.ai **Audience:** Shopify, Amazon, WooCommerce, BigCommerce, Allegro & eBay merchants, DTC brands, Amazon sellers, finance teams, agencies, multi-store operators --- ## What CostRadar Is CostRadar.ai is the **Profitability OS** for e-commerce — a SaaS platform that syncs store costs (platform fees, apps/plugins, transaction fees, shipping, COGS, marketing spend) and turns revenue-focused analytics into **profit-focused decisions** with AI recommendations. **Core value:** Complete cost visibility + actionable savings (typical Premium users find 15–25% annual cost reduction opportunities via AI Insights). True net profit + an AI layer — not a Triple Whale-style attribution OS. **Stack (public):** React + TypeScript frontend; Supabase (Postgres, Auth, Edge Functions) backend; OpenAI for AI features. ### September 2026 — now live (honest) Refunded cash on Shopify/Woo/BC orders (`orders.refunded_amount`; Amazon blank until Finances) · Simulations **Advanced+** (cost/margin what-if, **not** incrementality) · **Profit Action Agent Approve** (end an app cost, archive a non-app recurring, or fire a webhook — **not** bid bots) · **Profit Agent** (Slack and Microsoft Teams are live from Settings → Automations, plus in-app AI Profit Agent — plain-English profit answers, weekday morning summary of true net / revenue / orders / one thing to look at, one alert at a time and a follow-up only if it gets worse, quiet hours and mute, Approve confirms first and does **not** pause ads, with editable playbooks, standing jobs that stay paused until you turn them on (the morning summary you already get stays on), and an Approve trail; greetings do **not** dump the P&L) · **WhatsApp** (Settings → Automations — link your number, then ask CostRadar) · **Agency Client** (read-only Pulse, agency mark, Close Pack share, invite — **not** custom-domain white-label) · Campaign Profit **last/first-click** presets · COGS **effective-from** + **bundle kits** + **country / order-value bands** · **ShipStation + ShipBob** order actuals (**not** Shippo) · Woo/BC **plugin subscription costs** via Smart Import · profit-aware Audiences segments · **creative POAS** by `ad_id` · **Native eBay** first-class store (Settings → Stores — see Wave 5 box) · eBay/Walmart **CSV onto another shop** · **wFirma** expense sync + Close Pack accounting checklist · Amazon Ads Connect (Advertising API approved 11 Aug 2026; live spend after you connect Amazon Ads) · Amazon Ads **search-term / keyword profit** vs break-even ACoS (**read-only**, **not** bid bots) · Amazon settlement ingest **V2-only** (`GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2`; XML/V1 removed **11 Nov 2026**; not requested via createReport) · Orders API **v2026-01-01** PROCEEDS/EXPENSE **flagged** (`AMAZON_ORDERS_V2026_ENABLED`, default off — Finances v0 remains TNP fee truth until live smoke; Orders v0 migrate-by **27 Mar 2027**; Finances v0 events removal **27 Aug 2027**) · Woo 11.1 **server refund totals** when `total_refunded` is present (older Woo still sums refund lines; CostRadar does not POST customer refunds). **Not live / do not claim:** Meta CAPI outbound / Sonar-style Signals · full MTA/MMM · bid bots · silent reimbursement auto-file · native Walmart OMS · eBay listing writes / Inventory write / Trading SOAP / `ad_report_task` campaign-stats · live Notification push until portal destination ENABLE · Shippo · full accounting / tax filing · custom-domain white-label · WhatsApp until it is turned on · pausing ads or changing bids · production Amazon Orders API v2026-01-01 until `AMAZON_ORDERS_V2026_ENABLED` is on **and** live SP-API smoke passes · Shopify Markets `auditTrail` / Events product payloads (not consumed; classic webhooks + shopMoney only). ### eBay Wave 5 — live vs not shipped Native eBay is a **first-class store** (`shops.platform = ebay`) — not a CSV tag on another shop, not an add-on in Ads/Costs/Automations. Connect from **Settings → Stores** only (never the Integrations gallery). **Live TNP (read-only toward eBay):** - Orders (Sell Fulfillment) - Marketplace fees (final value / insertion / order-linked shipping labels) → `allocated_costs` - Refunds / returns cash on **known orders** (`refunded_amount`, including Post-Order completed cash) - Billed Promoted Listings charges (Finances `AD_FEE` → marketing spend) **Not shipped (do not claim):** - Listing writes / Inventory write / Trading SOAP - Campaign-stats / `ad_report_task` / bid bots - Live Notification push until portal destination ENABLE CSV eBay/Walmart rows onto **another** connected shop still exist. Walmart stays CSV-only. Technical notes: **Store platforms** → **eBay-specific (Wave 5)**. Public compare matrix: https://costradar.ai/compare (verified 2026-09-13). --- ## Pricing (2026) | Plan | Price | Best for | |------|-------|----------| | **Free** | $0/mo | New stores, ≤100 orders/mo | | **Advanced** | $29.99/mo ($23.99/mo annual) | Growing stores optimizing margins | | **Premium** | $49.99/mo ($39.99/mo annual) | Established brands using AI & multi-store | - **Annual billing:** 20% off paid plans - **Free trial:** 14 days on Advanced & Premium - **Enterprise:** Custom pricing for very high order volume ### Plan limits (aligned with pricing table & runtime) | Feature | Free | Advanced | Premium | |---------|------|----------|---------| | Orders/month | 100 | Unlimited | Unlimited | | Data history | 7 days | Unlimited | Unlimited | | Connected stores | 1 | 1 | Unlimited | | Budgets | 1 | Unlimited | Unlimited | | Custom fields | 0 | 5 | Unlimited | | COGS | Manual only | Store auto-sync + quantity tiers | Store auto-sync + quantity tiers | | CSV/Excel export | ❌ | ✅ | ✅ | | Calendar views | Week only | All 5 | All 5 | | Interactive reports | ❌ | 20 reports | 20 reports + AI analysis | | Dashboard | Default layout (15 widgets) | Customizable | Full + AI widgets | | Marketing integrations | ❌ | ✅ | ✅ | | Zapier (8,500+ apps) | ❌ | ✅ | ✅ | | REST API & MCP (Cursor, Claude) | ❌ | ✅ core tools | ✅ all tools | | Orders & Profitability | 7-day preview | ✅ Full | ✅ Full | | Cost Intelligence (Breakdown) | 7-day preview | ✅ Full | ✅ Full | | Metrics & Command Palette (`/`) | ❌ | ✅ | ✅ | | Anomalies detection | ❌ | ✅ | ✅ | | Simulations (what-if) | ❌ | ✅ | ✅ | | Audiences (RFM segments) | ❌ | ✅ | ✅ | | LTV cohorts + CAC payback | ❌ | ✅ | ✅ | | Predicted LTV (cohort forecast) | ❌ | ✅ | ✅ | | Shipping auto-rules (merchant fulfillment cost) | ❌ | ✅ | ✅ | | Returns drag report (ads + shipping sunk, refund fees) | ❌ | ✅ | ✅ | | Amazon Settlements (payout / fee reconcile UI) | ✅ Amazon shop | ✅ Amazon shop | ✅ Amazon shop | | Amazon Reimbursements (detect/track + assisted draft) | ✅ Amazon shop | ✅ Amazon shop | ✅ Amazon shop | | Installable PWA + Today's Net glance | ✅ | ✅ | ✅ | | FX cost class (Amazon settlement FX, Portfolio P&L) | ❌ | ❌ | ✅ | | Inventory Intelligence | ❌ | ✅ | ✅ | | AI Insights / Chat / Briefing | ❌ | ❌ | ✅ | | Pulse multi-store dashboard | ❌ | ❌ | ✅ | | Smart Import (AI CSV) | ❌ | ❌ | ✅ | | Scheduled email reports | ❌ | ❌ | ✅ | **Free preview model:** Orders, Breakdown, and manual COGS work on Free within the 7-day window — enough to evaluate the product before upgrading. **Always state plan requirement** when users ask about feature availability. --- ## Differentiation roadmap D1–D7 (2026) CostRadar ships seven differentiation epics (POAS, savings loops, Close Pack, portfolio P&L, health score, inventory profitability, DTC benchmarks). Backend is live on production. CI/Netlify defaults for these `VITE_FEATURE_*` flags are **on** (`true` when unset) — treat D1–D7 as live unless a specific flag is documented otherwise. Amazon Ads Connect is a separate Advertising API path (approved Aug 2026); outbound Meta CAPI is **not** in this set and is not shipped. **Demo account:** `demo@costradar.ai` — double-tap **RR** in the app layout regenerates full sample data for all D1–D7 screens (campaigns, insights, shared costs, dead stock, benchmark chips). Internal endpoint: `POST /dev/generate-demo-data` (demo auth only). --- ## Product Modules ### Home Dashboard - **55 widgets** in library; new accounts get **15 pre-enabled widgets** - Free: default layout visible; Advanced-only widgets show upgrade overlay; customization (drag/drop, add/remove) = **Advanced+** - **Metrics Command Palette** (`/` shortcut): **Advanced+** - KPIs: costs, revenue, profit, margin, budgets, trends, subscriptions ### Costs - Auto-sync from Shopify/WooCommerce + manual entry, recurring costs, categories, tags, notes - Resumable sync for large order volumes - Inline editing: all plans; bulk operations & cost history audit trail: **Advanced+** - Custom fields: 0 / 5 / unlimited by plan - CSV bulk import with duplicate detection: **Advanced+**; Smart Import (AI categorization): **Premium** - **Amazon (same Costs product family in nav):** dedicated **Settlements** + **Reimbursements** modules (Amazon shop required) — see below ### Amazon Settlements (Amazon-only) - Dedicated UI `/app/settlements` — Financial Event Groups (settlement / payout windows) with fee breakdown and reconcile delta vs `orders.allocated_costs` - Settlement **report** ingest is **V2-only**: `GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2` (Amazon auto-schedules; listed via `getReports`). XML + Flat File V1 are **removed 11 Nov 2026** and are never requested. Flag `AMAZON_SETTLEMENT_REPORT_V2_ENABLED` (default on; 403 = honest skip) - Sync via Sync Now, initial sync backfill, Sunday cron, and `/amazon-finances/settlements*` - Marketing claim: Amazon settlement P&L / fee clarity inside the Profitability OS — not a DTC/Shopify module - Orders API v2026-01-01 PROCEEDS/EXPENSE is **not** the default TNP fee path (`AMAZON_ORDERS_V2026_ENABLED`, default off). Finances v0 remains fee truth until a live smoke; Finances v0 `listFinancialEvents*` removal is **27 Aug 2027** ### Amazon Reimbursements (Amazon-only · detect/track + assisted draft) - Dedicated UI `/app/reimbursements` — AdjustmentEvent + extra Finances lists (fees, retrocharges, removals, liquidation) plus a **refund-gap** heuristic for returns that never restocked - **60-day alerts:** inbound shortage and return-not-restocked use a 60-day claim window; the inbox banners claimable findings with **≤60 days left** (filter: 60-day alerts) - **Assisted draft GA:** narrative + evidence + confidence + claim-window + duplicate/false-positive guards; Copy + Open Seller Central + CSV export (`VITE_FEATURE_REIMBURSEMENT_ASSIST`, default on) - **Honesty:** merchant submits in Seller Central — **not** silent auto-file (≠ Sellerboard auto-file). P3.3 PARTIAL for report-based `GET_FBA_REIMBURSEMENTS_DATA` candidates needing Fulfillment + Pricing SPP roles - Links to **Returns drag** for ads + shipping sunk context; Amazon Ads Connect is Advertising API (approved Aug 2026) and is separate from Settlements / Reimbursements ### Cost Intelligence (Breakdown) - Monthly trends, category pie charts, top costs — **Free: 7-day preview**; Advanced+: unlimited history - AI Briefing on breakdown: **Premium** - Export CSV/PDF: **Advanced+** ### Calendar - 5 modes: Day, Week, Month, Quarter, Year - Free: **current week only**; Advanced+: all views + unlimited navigation - AI Calendar Briefing: **Premium** ### Budgets - Category-specific or total-cost budgets; visual progress on dashboard - Email alerts at custom threshold (default **90%**): **Advanced+** - Free: 1 budget max ### Metrics (Business Intelligence) - MRR, NRR, CLV:CAC, churn, profitability analytics — **Advanced+** (page locked on Free) - Advanced Profitability tab (channel ROI, unit economics): **Advanced+** - **CAC payback (months)** on Metrics Summary — first-order cohort contribution vs CAC (≠ CLV:CAC ratio): **Advanced+**, flag `VITE_FEATURE_LTV_COHORTS` ### Reports - **20+ interactive reports** across Financial, Cost Analysis, Shopify Operations, Budget & Planning, Business Intelligence — **Advanced+** - "Analyze with AI" on reports: **Premium** - Examples: Monthly P&L, Burn Rate, App Spend Analysis, Margin Waterfall, Customer LTV Profitability (first-order cohorts) ### Anomalies - Unusual spending detection — **Advanced+** - AI-powered resolution suggestions — **Premium** ### AI Features (Premium only) - **AI Insights:** Duplicate tools, unused subscriptions, billing optimizations, confidence scores, savings estimates - **AI Profit Agent:** Natural-language analysis of *your* cost/order data; charts, exports, follow-up context - **AI Briefing:** Daily/weekly/monthly executive summaries (in-app, email, PDF) - **AI Support Chat:** Product how-to help from knowledge base (Premium in-app). Optional **Share store data** includes a live snapshot of the selected store (or All stores); default is docs-only. ### Simulations - Slider-based what-if sandbox (traffic, CVR, AOV, COGS%, fees, ad spend) with live P&L — **Advanced+** - Cost/margin scenarios on your ledger — **not** incrementality tests, MMM, or bid automation ### Audiences - RFM segmentation, saved segments, platform sync (Meta, Google, Klaviyo, etc.), POAS alerts — **Advanced+** - **Profit-aware templates (Wave C #6):** Audiences → Profit — high AOV/low margin, refund-heavy, dormant high-LTV, active high TNP from ledger `net_profit` / `refunded_amount` (not RFM revenue). List + counts + Orders deep link. Not a CDP, no email send, not real-time personalization. Client role: hidden (outside Pulse). APIs `GET /audiences/profit-segments`, `GET /audiences/profit-segments/:key/members` - **LTV cohorts (P1.1, live):** Audiences → Cohorts — first-order retention heatmap + CAC payback; APIs `GET /audiences/cohorts`, `GET /metrics/cac-payback` - **Predicted LTV (P2.6, live):** same Cohorts tab — cohort-curve completion forecast (observed vs predicted periods) + thin grounded LTV agent Q&A; APIs `GET /audiences/ltv-forecast`, `POST /ai/ltv-agent/ask` - Method honesty: modelled from observed first-order cohorts — **not** guaranteed LTV, **not** email/CRM win-back automation, **not** a full Lifetimely Agent clone - Distinct from RFM: cohorts = month of first order, not Recency/Frequency/Monetary buckets - Amazon: cohorts / predictive LTV empty (`amazon_no_buyer_pii`); Shopify / Woo / BigCommerce supported - Exports omit PII by default; only platform-required identifiers sent - Requires `VITE_FEATURE_LTV_COHORTS` + `VITE_FEATURE_PREDICTIVE_LTV` (CI defaults `true`) ### Inventory Intelligence - FIFO batches, suppliers, forecasting, transactions — **Advanced+** - **Platform stock levels** in dedicated Inventory tabs (Advanced+): Shopify Stock, Amazon FBA Stock (fulfillable + reserved/inbound details), WooCommerce Stock, BigCommerce Stock ### Pulse (Multi-Store) - Consolidated KPIs, store leaderboard, cross-store budgets — **Premium only** - **Portfolio P&L (Premium, live on prod FE):** Per-store revenue/COGS/opex/net profit; shared cost allocation (`sharedCostsAllocated`); API `GET /pulse/portfolio-pnl` - **FX cost class (P1.5, live):** explicit FX impact line (`fxCostImpact`) on Portfolio P&L, alongside the existing approximate-totals conversion (`mixedCurrencyWarning`) — see FX cost class section below - Requires Premium shop + `VITE_FEATURE_PORTFOLIO_PNL` (CI/Netlify default `true`) ### Profit Health Score (all plans, live on prod FE) - Weighted 0–100 setup score (COGS, orders, marketing, categories, budget, anomalies) - **Profit at risk:** COGS gaps + remaining setup gaps × DTC net margin benchmark (`profitAtRiskMethod: benchmark_v1`) - Counts **marketing_integrations** (Meta/Google) as “marketing connected” - Top fixes only when subscores < 100 (no placeholder fixes at score 100) - API `GET /shops/:shopId/health-score?refresh=true`; widget `kpi-profit-health-score` - Requires `VITE_FEATURE_HEALTH_SCORE` (CI/Netlify default `true`) ### True Net Profit Confidence (all plans, live with Health Score) - Per-shop **0–100 order-line P&L completeness** for the last 30 days — not a second setup Health Score - Weights: **COGS 40%** (`orders.total_cogs > 0`) · payment/allocated fees 25% · merchant shipping 20% (actual or rule; `merchant_shipping_cost` not null) · ads connected 15% (same marketing providers as Health Score, including Amazon Ads) - Missing COGS on every order **caps the score at 60**. No orders → `score: null` and an honest empty state (never a fake 100) - Top gaps deep-link to Product Costs (`/app/products`), Orders, Stores (shipping rules), Integrations - API `GET /shops/:shopId/tnp-confidence?refresh=true`; widget `kpi-tnp-confidence`; Home Profit command center - Reuses `VITE_FEATURE_HEALTH_SCORE` — no extra flag ### Inventory Intelligence (Advanced+, live on prod FE) - FIFO batches, suppliers, forecasting, transactions - **Platform stock:** Shopify quantities, Amazon FBA (fulfillable + reserved/inbound/unfulfillable), WooCommerce stock levels, BigCommerce stock levels - **Inventory Profitability:** dead stock count, 90d velocity, margin per SKU — API `GET /inventory/profitability` - **Woo profit-weighted stock digest (live):** Inventory → Woo Stock ranks contribution/day vs days of cover (Woo on-hand ÷ units sold). Low-stock digest is winners about to stock out, not dead stock. **Not** a WMS, **not** Glew warehouse, **not** Metorik Engage, **not** auto-PO. API `GET /inventory/woo-stock-digest?shop_id=`. Demo: `/demo` → Coastal Living → Inventory → Woo Stock. - **Cash bridge** — API `GET /inventory/cash-bridge`; widget `kpi-inventory-cash-tied` - Requires `VITE_FEATURE_INVENTORY` (CI/Netlify default `true`; nav also plan-gated) ### Orders & Product Costs - **Free:** 7-day order history preview + manual COGS only; **up to 100 orders/month** sync cap (enforced on Shopify, Amazon, WooCommerce, BigCommerce, Allegro, eBay) - **Advanced+:** unlimited history & orders/month, COGS auto-sync, bulk CSV import, **quantity-based COGS rules** (tiered unit cost by line qty) with **effective-from / effective-to date windows** plus optional **country (ISO)** and **order-value** bands (missing country/revenue fails closed) - **Native COGS sync (Advanced+):** Shopify `unitCost` · WooCommerce COGS meta (`_wc_cog_cost`, `_alg_wc_cog_cost`, `cost_of_goods_sold`, …) · BigCommerce catalog `cost_price` — on initial sync, products cron, and Product Costs → Sync. Manual `source=manual` rows are never overwritten. - Order profitability, refund handling, variant COGS - **COGS precedence:** FIFO inventory batch (Shopify) → **bundle kit (sum of component COGS)** → dated quantity/flat rule (optional country + order-value bands) → flat `product_costs.cogs` → 0 - **Bundle kits:** Product Costs → Bundle COGS. Kit unit cost = Σ (component qty × component COGS). Not a geo landed-cost megaproject. API `GET|POST /product-costs/bundle-kits` - **API:** `GET|POST /product-costs/cogs-rules`, `GET|PATCH|DELETE /product-costs/cogs-rules/:ruleId`; Woo/BC also `POST /product-costs/sync-woocommerce` · `POST /product-costs/sync-bigcommerce` - **Line-item discounts & tax** stored per line (`line_discount` / `line_tax`) across Shopify, Amazon, WooCommerce, and BigCommerce - **PO receive → FIFO batch:** Inventory purchase orders marked `received` create `inventory_batches` for Shopify FIFO allocate ### Shipping auto-rules (P1.2, live) - Merchant fulfillment cost rules by weight, quantity, carrier, zone, **country (ISO)**, **order-value**, and platform — **Advanced+**, Settings → Stores → Shipping rules - Formulas: flat · per unit · per weight · % of order revenue; priority-ordered, lower number wins first match - Distinct from the **customer** shipping charge (`orders.shipping_cost`, unchanged) — writes `orders.merchant_shipping_cost` on order sync - **ShipStation actuals (Feature 7):** when connected, actual label cost maps onto `orders.merchant_shipping_cost` (`merchant_shipping_source=shipstation`) and wins over the rule estimate. Orders show Actual vs Est. Missing actuals keep the rule or stay blank. Not Shippo/ShipHero. API `POST /integrations/shipstation/sync` - **ShipBob actuals (Wave A #3):** PAT connect maps shipment `invoice_amount` onto the same merchant shipping field (`source=shipbob`). Actual wins over shipping-rule estimates and does **not** overwrite ShipStation actuals. Not label purchasing, rate shopping, a WMS clone, or Shippo. Demo pin: Premium Gadgets **#00012 Actual $48.60** (ShipStation **#00010** stays). API `POST /integrations/shipbob/connect` + `/sync` - **CSV channel (Wave D #8):** Orders → **CSV channel** imports eBay or Walmart rows onto a shop you already connected (`tags` include `csv-channel`, optional `sales_channel`). Pulse and true net profit include them. **Not** native marketplace OAuth. Native eBay is Settings → Stores (`shops.platform = ebay`). Walmart stays CSV-only. Not inventory sync or marketplace ads. Does **not** add `walmart` to `shops.platform`. API `GET|POST /orders/csv-import` - Wired into order sync for **all 4 platforms**: Shopify, Amazon (FBA/AFN = $0 merchant cost; FBM resolves via rules), WooCommerce, BigCommerce - **Weight/zone/country payload (P3.2 + gap-round #6):** sync extracts country (ISO), zone (country or COUNTRY-PROVINCE) + weight when present — Shopify `total_weight` grams→**kg**; Woo/BC catalog line weights; Amazon weight often unavailable. Country persists on `orders.shipping_country`. Missing payload → country/weight/zone/AOV bands skip that order; platform/carrier/qty/flat rules still work. Recalculate-after-edit uses qty/carrier/country/revenue. Not a geo landed-cost megaproject. - API: `GET|POST /shipping-rules`, `PATCH|DELETE /shipping-rules/:ruleId` - Requires `VITE_FEATURE_SHIPPING_RULES` (CI default `true`) ### Returns drag report (P1.4, live) - What a return costs beyond the refund: **ads sunk** + **shipping sunk** + refund **fees** — **Advanced+**, Reports gallery ("Returns Drag") + Metrics Summary widget + link from Reimbursements (Amazon) - **Refunded $** is persisted on `orders.refunded_amount` (shop/order currency) from Shopify `totalRefundedSet.shopMoney`, Woo `refunds[].total` (abs), BigCommerce `refunded_amount`, Amazon Finances refund events, Allegro `GET /payments/refunds` (customer-returns / cancelled-paid fallback). Orders list / expanded P&L show this as an audit column. **True net profit does not subtract it again** — Shopify/Woo/BC/Allegro already net `total_revenue` at sync. - Amazon: order insert leaves refunded $ NULL (never a fake $0; UI shows —) until Finances writes a real total; otherwise refund $ and admin fees are allocated from `amazon_asin_return_stats` (ASIN-level, P0); ad spend sunk from ASIN-day Sponsored Products spend - Shopify / WooCommerce / BigCommerce / Allegro: Returns Drag Refunds bucket prefers persisted cash; unsynced historical rows fall back to the negative gross-profit dip proxy (flagged in a limitation banner). Woo and Allegro partial refunds map to `partially_refunded`. Allegro ads sunk is shop-day Ads billing (NSP), not campaign-stats. - Shipping sunk = `orders.merchant_shipping_cost` (ShipStation or ShipBob actual when mapped, otherwise shipping auto-rules; $0 if neither) - Does **not** auto-file reimbursement claims — same honesty as Reimbursements (detect/track + assisted draft GA; merchant submits in Seller Central; ≠ Sellerboard auto-file) - API: `GET /analytics/returns-drag?shop_id=&start=&end=` — returns `{refunds, ads_sunk, shipping_sunk, fees, total_drag}` breakdown + per-order rows + `methods.refunds` (`order_refunded_amount` | `gross_profit_proxy` | `amazon_asin_return_stats` | `mixed`) + `limitation` field - Requires `VITE_FEATURE_RETURNS_DRAG` (CI default `true`) ### PWA / Today's Net glance (P1.3, live) - Installable Progressive Web App — **all plans**; service worker registered (`src/public/sw.js`, network-first, never caches `index.html`), manifest at `/manifest.json`, install prompt via `InstallPWAButton` (banner) + Settings → Preferences → Mobile App (manual button) - **Today's Net** (`/app/today` + Metrics Summary widget): same true-net-profit formula as monthly Metrics (revenue − COGS − shipping − ad spend − payment fees − opex − taxes), windowed to one UTC calendar day, vs. yesterday - Offline shell: if the network fails while the app is open, shows the last successfully cached number with a stale banner (localStorage-backed) — not a full offline cold-launch of the SPA - API: `GET /metrics/today-net?shop_id=&date=` — returns `{today, yesterday, vs_yesterday_pct, methodology, limitations}` - Limitations (surfaced in-product + docs): day boundary is UTC not merchant-local; recurring costs only count on their actual billing-day occurrence, so daily net can look lower on billing days - Not a native iOS App Store / Google Play Store app — install path is PWA "Add to Home Screen" only - Requires `VITE_FEATURE_PWA_GLANCE` (CI default `true`) ### FX cost class (P1.5 + P3.1, live) - FX gain/loss as an **explicit cost-class line**, not just Pulse's approximate totals conversion — **Premium**, Portfolio P&L (`PortfolioPnlTable`) - **Amazon:** SP-API settlement `OriginalTotal` vs `ConvertedTotal` — compare disbursement to what marketplace total is worth **today** (`source: amazon_settlement`) - **Shopify / WooCommerce / BigCommerce (P3.1):** when `orders.currency` ≠ shop currency, estimate peg-error FX assuming `total_revenue` is in order currency (`source: order_currency_mismatch`). Limitations: today's rate (not settlement-date); assumes revenue denominated in order currency; no Shopify Markets `presentmentMoney` capture yet (`fx_no_presentment_money_capture`) - Single-currency shops (or no mismatch): zero entries + limitation codes — never silent fake $0 exposure - API: `GET /fx/ledger?shop_id=&start=&end=` — per-shop detail `{entries, totals, limitations}` with `source` + `platform` tags; `GET /pulse/portfolio-pnl` adds `fxCostImpact`/`fxEntryCount` across Amazon + DTC shops (additive; `null` on failure — never blocks Portfolio P&L) - Requires `VITE_FEATURE_FX_COST_CLASS` (CI default `true`) for the Portfolio P&L line; the API itself has no flag ### Integrations Settings IA (Sep 2026): **Stores** sales channels (`/app/settings/shops`) · **Ads** marketing spend + pixel (`/app/settings/ads`) · **Costs** shipping + accounting (`/app/settings/costs`) · **Automations** Slack / Zapier / Cursor & Claude / API keys (`/app/settings/automations`). Legacy `/app/settings/integrations?tab=` redirects. Allegro and eBay connect from **Settings → Stores** only (`shops.platform`) — never Ads, Costs, Automations, or an Integrations gallery. - **Store:** Shopify (native OAuth), Amazon Seller Central (SP-API OAuth), WooCommerce (pairing flow), BigCommerce (OAuth authorize when Marketplace app is approved, API access token fallback today), Allegro (OAuth 2 + PKCE, Poland marketplace), eBay (Sell APIs OAuth, Stores-only) — all plans for connection - **Multi-platform parity:** Orders sync, sync-status, initial sync, and plan order-limit enforcement for Shopify, Amazon, WooCommerce, BigCommerce, Allegro, and eBay. Inventory quantity tabs are Shopify / Amazon FBA / Woo / BigCommerce (Allegro has no catalog stock tab). See **Store platforms** below. - **Marketing (Advanced+):** Meta Ads, Google Ads, Klaviyo, TikTok, Pinterest, Snapchat, Amazon Ads (Advertising API OAuth — approved Aug 2026; live spend after you connect Amazon Ads) - **Campaign Profit / POAS (Advanced+, live for Meta/Google/TikTok/Pinterest/Snapchat + Shopify Shop Campaigns):** Daily net profit per campaign; POAS = gross profit ÷ ad spend. Pixel/UTM **last-click 1d/7d/28d** and **first-click 7d** presets (per store) reallocate order profit against the same spend — not multi-touch MTA, MMM, or incrementality. A **Creatives** tab rolls the same winning touch to `ad_id` (or `utm_content`) with campaign spend **allocated** by attributed revenue share when ad-level insights are missing — not incrementality, not a creative studio. Shopify Shop Campaigns spend syncs via ShopifyQL `shop_campaign_insights` (needs `read_reports`; reconnect older installs). This is **Shop Campaigns**, not all Shopify Ads / Meta. **Amazon Ads + ASIN ACoS/TACoS + search-term profit:** OAuth `/integrations/amazon-ads/oauth-url`, spend sync, `asin-profit`, `search-term-profit`. Amazon uses ASIN grain, not Meta/Google `ad_id`. Search terms and keywords compare ACoS (spend ÷ attributed sales) to **break-even ACoS** (contribution ÷ revenue from ASIN/order economics) — **read-only**; CostRadar does not change bids, pause campaigns, or add negatives. Advertising API access approved 11 Aug 2026; live spend/ASIN/search-term rows after you connect Amazon Ads. Demo seed can show the UI path without a live Ads login. - **Profit Action Agent / Savings Tracker (Premium, live):** Persist AI insights; **Approve** (always confirm first) can end a linked app/subscription cost, **archive a non-app recurring cost** (shipping/ops), fire a structured Zapier/webhook event, or log a Shopify-admin / billing-portal checklist with a deep-link. **Dismiss** skips with no mutation. Audit log `GET /ai/profit-actions`. Client workspaces cannot Approve. Not a Lifetimely/Moby clone, **not bid bots**, and **not** ad-platform control (no pausing Meta/Google/Amazon ads; no silent Shopify cancels). **Passive verification:** weekly check compares spend before/after you implemented a saving and may suggest confirmed savings in the insight UI - **Profit Agent (Premium):** Answers profit questions in plain language in Slack, Microsoft Teams, WhatsApp, and AI Profit Agent, from the fees, ads, apps, product cost, and margin already in CostRadar. A hello stays a hello. Weekday mornings (or every morning, Mondays, or off): true net profit, revenue, orders, and one thing to look at. One “worth a look” alert at a time; a follow-up only if it gets worse. Quiet hours 10pm–7am, mute, and cadence are in Settings → Automations. Approve confirms first when an action exists; otherwise the message is the insight plus a link into CostRadar. CostRadar does not pause ads or change bids. Client and read-only agency workspaces cannot Approve. Slack, Microsoft Teams, and WhatsApp are live. Guide: `/docs#profit-agent`. - **Ad spend accrued vs billed (live):** Home widget `kpi-ad-spend-variance` compares Insights accrued spend (what TNP / Campaign Profit use) to billed invoices. Demo seeds ~8% tax/FX markup. **Not** a Meta Billing scrape, **not** CAPI, and CostRadar does **not** auto-adjust TNP. API `GET /integrations/marketing/spend-variance?shop_id=`. - **Pixel match rate (D1.3, live):** `GET /pixel/match-rate` + Metrics widget `kpi-pixel-match-rate` + Ads → Pixel panel — attribution quality for POAS / Campaign Profit - **Industry Benchmarks (Advanced+, live):** DTC median bands (`dtc_ecommerce`) for app/ad/shipping/margin; chips on AI Insights; Metrics Profitability overlay; API `GET /ai/benchmarks`; feeds D5 profit-at-risk margin - **TNP Confidence (live):** Per-shop 0–100 order-line P&L completeness (last 30 days): COGS 40 · payment/allocated fees 25 · merchant shipping 20 · ads connected 15. Empty shop → `score: null`, never fake 100. Missing COGS on every order caps at 60. API `GET /shops/:shopId/tnp-confidence`. Home Profit command center + widget `kpi-tnp-confidence`. Not a second Health Score. - **Shopify Payments chargebacks in TNP (live):** Lost/accepted Shopify Payments disputes hit True Net Profit as payment fees (principal unless the order is already refunded, plus typical $15 fee when Shopify omits a fee line). Open inquiries stay pending. Shopify Payments first — not Chargehound, not Stripe Radar, not Woo/Amazon. API `GET /shops/:shopId/shopify-disputes` · `POST /shops/:shopId/shopify-disputes/sync`. Home card + widget `kpi-shopify-disputes`. Optional OAuth scope `read_shopify_payments_disputes`. - **Payment gateway fee truth (live):** Shopify Payments processing fees write onto `orders.allocated_costs` from balance transactions (charge/refund) when scoped — actuals, not a 2.9% guess. Dispute types are skipped so chargebacks are not double-counted. Stripe/PayPal checkout apps and Woo/BC still use the rate table (Settings → Stores → Gateway fees). Not a Stripe/PayPal statement import. API `GET /shops/:shopId/payment-fees` · `POST /shops/:shopId/payment-fees/sync`. Home card + widget `kpi-payment-fees`. Optional OAuth scope `read_shopify_payments`. - **Amazon Ads search-term / keyword profit (live, read-only):** Campaign Profit on Amazon lists search terms and keywords with ACoS vs break-even ACoS (contribution ÷ revenue). Terms over break-even are flagged so you can act in Ads Manager. **Not bid bots** — CostRadar does not change bids, pause campaigns, or add negatives. API `GET /integrations/marketing/search-term-profit?shop_id=`. Demo: `/demo` → Amazon AE Gulf Gadgets → Campaign Profit → Search terms. - **Amazon ORG vs PPC vs promo units (live, read-only):** Campaign Profit ASIN tab splits order units into organic / PPC / promo. Organic is residual (`max(0, order − PPC − promo)`). PPC is Ads attributed units, not incrementality. Promo is a line promotion discount — not Lightning Deal membership and **not Sales and Traffic**. PPC and promo can overlap. **Not bid bots.** API `GET /integrations/marketing/asin-unit-mix?shop_id=`. Demo: `/demo` → Amazon AE Gulf Gadgets → Campaign Profit → ASIN profit. - **Monthly Close Pack (Premium, live):** Board-ready P&L bundle (HTML with CostRadar logo + shop name; multi-store when Pulse scope has multiple shops) plus an **accounting export checklist** (wFirma imported expenses first, then QBO/Xero mapping quality). **Period lock** (cost writes → 409 for that YYYY-MM), **variance checklist**, **payout bridge** (Shopify payouts table or Amazon settlement groups vs cash proxy — not Stripe Connect / bank feed), and **accountant CSV**. Not a full accounting suite, not VAT, not live journal push. Scheduled email; API `POST /reports/close-pack/generate` · `POST /reports/close-pack/lock` · `POST /reports/close-pack/accountant-export` - D1–D7 FE flags: `VITE_FEATURE_POAS_DASHBOARD`, `SAVINGS_TRACKER`, `CLOSE_PACK`, `PORTFOLIO_PNL`, `HEALTH_SCORE`, `INVENTORY`, `AI_BENCHMARKS` — default `true` in CI when unset - **First-Party Pixel:** Event-level attribution (page views, add-to-cart, purchases) — Advanced+. Shopify stores use a **Web Pixel** app extension (checkout `purchase` included); `theme.liquid` snippet remains the fallback for Woo/BigCommerce and older themes. **Outbound Meta CAPI / Signals is not shipped** — the pixel stays in CostRadar; we do not forward conversions to Meta. - **Accounting/shipping honesty:** wFirma syncs purchase expenses onto Costs (not a tax-filing / bookkeeping suite). ShipStation + ShipBob write order actuals (not Shippo, not a WMS). eBay/Walmart CSV is import onto a connected shop. Native eBay OAuth is Settings → Stores (`shops.platform = ebay`). Walmart is not a native store platform. - **Allegro (first-class marketplace, live TNP ingest):** Settings → Stores → Allegro (Amazon analog — **not** listed in Ads/Costs/Automations; connect only from Stores). Creates `shops.platform = allegro`. OAuth 2 Authorization Code + PKCE (`/integrations/allegro/oauth-url`, callback `https://costradar.ai/integrations/allegro/callback`). Encrypted tokens on **that Allegro shop** (`integrations.provider=allegro`). Wave 1 persist: checkout-forms → `orders`, commission + payment fees → `allocated_costs` / `allegro_order_fee_lines`, 6h platform-orders cron + Sync Now (fallback). Wave 2: poll `GET /order/events` every 2 min + HMAC inbound `POST /integrations/allegro/webhook` (Allegro has no push webhooks). Wave 3: Allegro Ads billing (`GET /billing/billing-entries` type NSP) → `costs.category=marketing` / TNP adSpend (same path as Amazon Ads; no public campaign-stats API). Wave 4: refunds (`GET /payments/refunds` + customer-returns) → `refunded_amount` + net revenue + Returns Drag; offer id / SKU → Product Costs / COGS rules; Settlements browse of billing periods. Not listing edits, bid changes, or shipment create. Sandbox hosts when `ALLEGRO_ENV=sandbox`. Docs: `docs/allegro-integration-plan.md` - **eBay (first-class marketplace, Wave 5 TNP ingest):** Settings → Stores → eBay (**not** Ads/Costs/Automations/Integrations gallery — Stores only). Creates `shops.platform = ebay`. See **eBay Wave 5 — live vs not shipped**. OAuth 2 Authorization Code, no PKCE; eBay `redirect_uri` is the RuName pointing at `https://costradar.ai/integrations/ebay/callback`. Encrypted tokens on **that eBay shop** (`integrations.provider=ebay`). Wave 1 persist: Sell Fulfillment orders → `orders`, Sell Finances marketplace fees (final value / insertion) → `allocated_costs` / `ebay_order_fee_lines`. Wave 2: buyer refunds from Fulfillment `paymentSummary.refunds` / line-item refunds and Finances `REFUND` → `orders.refunded_amount` with **net `total_revenue`** (TNP does not subtract refunded cash again; Returns Drag picks `refunded` / `partially_refunded`). Wave 3: Promoted Listings **billed charges** (Finances `AD_FEE`) → `costs.category=marketing`. Wave 4: listing/SKU identity from Fulfillment lines → Product Costs (merchant sets COGS); order-linked shipping labels → `allocated_costs`; Settlements payouts UI; event sync is Fulfillment `lastModifiedDate` polling. Wave 5: Commerce Notification API challenge + destination/subscription scaffolding (live push needs `EBAY_NOTIFICATION_VERIFICATION_TOKEN` + portal registration — not a fake webhook); Post-Order search cash only when a completed refund is linked to a known order (never fake $0); Inventory REST items/offers deepen COGS identity when `sell.inventory.readonly` is granted (Seller Hub Trading listings may be empty); Marketing campaign GET is names/status/budget metadata only (budget is not spend; CostRadar does not POST `ad_report_task`). Payouts are settlements of already-netted funds (status only, not extra TNP costs). 6h platform-orders cron + Sync Now + daily marketing-ads cron. CSV channel still imports eBay/Walmart rows onto another shop. Not Inventory write, Trading SOAP, or listing/fulfill writes. Sandbox hosts when `EBAY_ENV=sandbox`. Docs: `docs/ebay-integration-plan.md` - **Zapier (Advanced+):** Triggers (New Cost, Store, Budget); Actions (Create/Update Cost, Budget, Sync); 8,500+ apps for workflows beyond native connectors (Slack, Google Sheets, etc.) - **REST API (Advanced+):** API keys in Settings → Automations → API keys; Bearer auth; revenue, COGS, reports endpoints - **MCP — Model Context Protocol (Advanced+, live):** Hosted remote server for Cursor, Claude Desktop, and MCP clients. URL: `https://supabase.costradar.ai/functions/v1/costradar-mcp`. Auth: header `X-API-Key: cr_live_...` (same keys as REST). **42 tools:** read/write costs, orders, COGS, budgets, metrics, Pulse, reports, sync; Premium adds AI chat, inventory, audiences, POAS, simulations. **Resources:** `costradar://product/overview`, `costradar://shop/{shop_id}/summary`. Requires Advanced or Premium **billing_plan** on at least one shop. Setup: Settings → Automations → MCP; docs: `docs/mcp/SETUP.md` - **Accounting/shipping (native OAuth, Advanced+):** QuickBooks, Xero, ShipStation, Sendcloud via Integration Gallery — not Zapier-only. **wFirma** is the primary PL/EU expense sync (`POST /integrations/polish-accounting/sync`, costs `source=wfirma`). **ShipBob** connects via personal access token today (OAuth when listed). Also: iFirma, Supermetrics, Funnel.io (availability varies) - **Email & automation path:** Klaviyo (marketing cost sync) + Zapier (workflows) — **not** an in-app ESP / campaign builder - **Dropship / supplier connectors (P2.1 NO-GO — 2026-08-03):** No native CJ Dropshipping or Printful connectors. Set product COGS via Product Costs rules, CSV import, or Zapier Create/Update Cost — order net still uses `cogs-resolver`. Peers (TrueProfit, Profitario) win on those connectors; CostRadar wins on multi-platform Cost OS + flat pricing. Gate artifact: `docs/P2-DROPSHIP-GATE.md` - **What we do not ship (LOCKED REJECT — P2.2–P2.5):** CostRadar is a Profitability OS, not a marketing suite or BI warehouse. We do **not** ship: (1) in-product email marketing / Metorik-style Engage — use Klaviyo + Zapier; (2) Glew-style 250+ KPI commerce BI / Looker lite — use Pulse, Metrics, Portfolio P&L, and MCP; (3) Amazon review request / autoresponder bots — out of category (Amazon = fees, reimbursements detect/track, Ads); (4) self-hosted WordPress BI plugin mirror (Alpha Insights niche) — WooCommerce connects via cloud REST + CostRadar Connector pairing plugin, not an on-prem analytics plugin - **What we do not ship (P3.3 silent auto-file NO-GO · P3.4 LOCKED REJECT):** (1) Amazon reimbursement **silent auto-file** / Seller Central case creation bots — Reimbursements inbox is detect/track + **assisted draft** GA (copy narrative + Seller Central deep link + CSV export; merchant submits). Status: `detected` → `drafted` → `claimed` → `credited` / `lost` / `suppressed`. Quality gates: claim-window countdown, duplicate-claim guard, false-positive review. **Assisted ≠ auto-file** (P3.3 **PARTIAL** — live report candidates still need Amazon Fulfillment + Pricing SPP roles). Peers may win on claim automation; CostRadar will not copy ToS-risk bots; (2) native iOS App Store / Google Play binaries — mobile = installable **PWA** + Today's Net glance (`/app/today`); Capacitor scaffolding is unused and not a shipped store app - **What we do not ship (Sep 2026 gated / parked):** outbound Meta CAPI / Signals · full MTA/MMM · bid bots · native Walmart OMS · eBay listing writes / Inventory write / Trading SOAP / `ad_report_task` campaign-stats · live Notification push until portal destination ENABLE · Shippo · full accounting / tax filing · custom-domain white-label. Amazon Ads Connect is **not** in this parked list — Advertising API approved Aug 2026; remaining gate is merchant Connect Amazon Ads. ### Email Notifications - Budget alerts: all plans (in-app); email delivery **Advanced+** - Weekly summary, anomaly alerts: **Advanced+** - AI Insights digest: **Premium** - Monthly Close Pack (scheduled P&L email): **Premium** ### Team & Settings - Roles: **Admin** (full) vs **Member** (workspace collaborator) vs **Client** (agency read-only) - **Client workspace (MVP, live):** Owner/admin invites a Client from Settings → Team and optionally selects stores. Client sees **read-only Pulse** (and Close Pack preview when shared) for those stores only — never store B if invited to store A, never Amazon shops they were not assigned. No billing, no team admin, no Profit Action Agent Approve/Dismiss (cannot end costs). Lite chrome: optional **agency mark** (HTTPS URL or small upload; initials if unset) plus agency name; CostRadar upsell hidden. Explicit Close Pack share on the invite. **Resend** pending invites from the team list. **Not** custom domains, reseller billing, or a full white-label theme system. - Try it on demo: owner `/demo` (unchanged). Client view: `/demo/client` (separate `mock-token-client` session; does not replace the owner demo). - Data export (CSV/JSON): all plans from Settings — no lock-in - Billing: upgrade/downgrade in-app; Shopify-installed accounts follow Shopify billing policies --- ## Store platforms (Shopify / Amazon / WooCommerce / BigCommerce / Allegro / eBay) CostRadar treats **Shopify**, **Amazon Seller Central (SP-API)**, **WooCommerce**, **BigCommerce**, **Allegro**, and **eBay** as first-class store platforms with shared UX where possible. ### How to connect | Platform | Flow | Notes | |----------|------|-------| | **Shopify** | OAuth (App Store install or Settings → Stores) | Embedded app + session tokens supported | | **Amazon** | Settings → Stores → Amazon → pick marketplace → Seller Central consent | **1 shop = 1 marketplace.** 23 SP-API marketplaces (NA, EU, FE). List: `GET /amazon/marketplaces` | | **Allegro** | Settings → Stores → Allegro (OAuth 2 + PKCE). Not listed in Ads/Costs/Automations | **First-class `shops.platform = allegro`** (Amazon analog). Encrypted tokens on that shop. Wave 1 TNP: orders + commission/payment fees. Wave 2: `order.events` poll + HMAC inbound (Allegro has no push webhooks). Wave 3: Ads billing type NSP → marketing costs. Wave 4: refunds + COGS identity + Settlements billing UI. Callback: `https://costradar.ai/integrations/allegro/callback` | | **WooCommerce** | Settings → Stores → WooCommerce pairing + **CostRadar Connector** plugin | Secure pairing from WP admin; REST + webhooks | | **BigCommerce** | Settings → Stores → BigCommerce → OAuth authorize (primary) or API access token (advanced/fallback) | Not yet listed on the BigCommerce App Marketplace (Partner review pending) — OAuth code path is live, defaults to the API-token tab until the Marketplace app is approved. Stripe billing like Amazon/Woo | | **eBay** | Settings → Stores → eBay (Sell APIs OAuth). **Not** Ads/Costs/Automations/Integrations gallery | **First-class store** (`shops.platform = ebay`). See **eBay Wave 5 — live vs not shipped**. Encrypted tokens on that shop. Live TNP: Fulfillment orders + buyer refunds (`refunded_amount`, net revenue, plus Post-Order completed cash on known orders) + order-linked Finances fees (final value / insertion / shipping labels) → `allocated_costs` + Promoted Listings billed AD_FEE → marketing spend (campaign GET is names/budget only). Inventory REST deepens listing/SKU identity when scoped (not Inventory write). Notification destination is opt-in — not live push until portal ENABLE. Payouts are settlement status, not extra costs. CSV onto another shop still exists. Callback: `https://costradar.ai/integrations/ebay/callback` (RuName must point here). Stripe billing. | ### What syncs automatically | Data | Shopify | Amazon | WooCommerce | BigCommerce | Allegro | |------|---------|--------|-------------|-------------|---------| | Orders (90d on initial connect) | ✅ | ✅ | ✅ | ✅ | ✅ | | Line-item discounts / tax | ✅ | ✅ | ✅ | ✅ | ✅ discounts; VAT included in price | | Transaction / platform fees | ✅ ops costs path | ✅ Amazon fee rollup → `allocated_costs`/`net_profit` | ✅ gateway rate table → order net (configurable) | ✅ same gateway rate table → order net | ✅ commission + payment fees → `allocated_costs`; Ads billing (NSP) → `costs.marketing` | | Product COGS / catalog | ✅ auto-sync (Advanced+) | ✅ Catalog + Listings enrich + FBA inventory | ✅ | ✅ catalog + inventory levels | ✅ offer id / SKU identity + Product Costs / effective-from rules (no Allegro stock tab) | | Customers (LTV enrichment) | ✅ (Customers API; may need re-auth) | 🚫 (no buyer PII from Amazon) | ✅ | — | ✅ buyer email when Allegro returns it | | App / plugin subscriptions | ✅ (Shopify billing) | — | ✅ Smart Import (CSV/paste; not a complete billing API) | ✅ Smart Import (CSV/paste; not a complete billing API) | — (Stripe billing) | | Orders cron (≈ every 6h) | ✅ | ✅ | ✅ | ✅ | ✅ | | Realtime order ingest | ✅ webhooks | ✅ notifications (orders + inventory/listings) | ✅ HMAC webhooks (+ cron fallback) | ✅ webhooks (+ cron fallback) | ✅ `GET /order/events` poll every 2 min + HMAC inbound receiver; 6h pull / Sync Now fallback (Allegro has no push webhooks) | | Manual **Sync Now** | ✅ | ✅ (orders + products + FBA + settlements) | ✅ | ✅ (orders + catalog + inventory) | ✅ (orders + refunds + commission/payment fees + Ads billing + offer identity) | **Initial sync:** After OAuth/pairing/API connect, frontend triggers `POST /shops/initial-sync` (orders, COGS, platform-specific extras). Progress via `GET /shops/sync-status`. **Sync status (Settings):** Per-platform last sync + order count — same shape for Shopify, Amazon, WooCommerce, BigCommerce, Allegro, eBay. Allegro also returns `feeCoverage` and `adsInTnp` (Wave 3 Ads billing type NSP is in TNP as marketing ad spend). Wave 4 adds `refunded_amount` / Returns Drag, offer-id Product Costs, and Settlements billing-ledger browse. ### Inventory by platform | Feature | Shopify | Amazon | WooCommerce | BigCommerce | |---------|---------|--------|-------------|-------------| | FIFO batches / suppliers | ✅ Advanced+ | — | — | — | | **Stock quantity tabs** | ✅ Inventory → Shopify Stock (needs `read_inventory`; re-auth if older install) | ✅ Inventory → FBA Stock (fulfillable + reserved/inbound) | ✅ Inventory → WooCommerce Stock | ✅ Inventory → BC Stock | ### Amazon-specific (merchant FAQ) - **Marketplaces:** 23 regions including US, CA, MX, BR, UK, DE, FR, IT, ES, NL, PL, SE, IE, IN, JP, AU, SG, AE, SA, EG, TR, BE, ZA. - **Catalog:** Listings Items + Catalog enrich titles, images, brand, and product type; manual COGS never overwritten. - **Fees:** FBA, referral, and other Amazon fee totals roll up into order allocated costs for true net profit. Per-fee-type lines persist (`amazon_order_fee_lines`) and show when you expand an Amazon order. Default source is Finances v0. Orders API v2026-01-01 `includedData=PROCEEDS,EXPENSE` is additive behind `AMAZON_ORDERS_V2026_ENABLED` (default off) and must not double-count Finances or settlement reports. - **Settlements:** Financial event groups sync via API (`/amazon-finances/settlements*`), Sync Now, initial sync backfill, and cron. Dedicated **Settlements** UI lists groups and reconcile deltas vs order fees. Report ingest is **only** `GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2` (XML / Flat File V1 removed **11 Nov 2026**; Amazon auto-schedules V2 — CostRadar does not `createReport` settlement types). - **Reimbursements (detect/track + assisted draft GA):** AdjustmentEventList plus extra Finances lists (ServiceFee / Retrocharge / Removal / Liquidation) and a **refund-gap** heuristic for customer returns that never restocked. Status workflow `detected` → `drafted` → `claimed` → `credited` / `lost` / `suppressed`. Inbound shortage and return-not-restocked use a **60-day** claim window; the inbox banners **≤60 days left**. Assisted draft: narrative + evidence + confidence + claim-window countdown + duplicate/false-positive guards; Copy + Open Seller Central + CSV export (`VITE_FEATURE_REIMBURSEMENT_ASSIST`, default on). UI: `/app/reimbursements`. ASIN refund rate + refund admin fees via `/amazon-finances/refund-rates`. **Does not auto-file Seller Central cases** (assisted ≠ Sellerboard-style auto-file). Report-based claimable candidates still need Amazon Fulfillment + Pricing SPP roles (M2 residual). Links to the **Returns drag** report for ads + shipping sunk context. - **Without Seller Central yet:** Amazon Appstore listing and sandbox OAuth paths exist for partners; production order sync requires a connected seller account or approved sandbox/beta setup. - **Compare:** https://costradar.ai/compare/amazon ### WooCommerce-specific - **Plugin:** CostRadar Connector (WordPress.org) — pairing, order sync, cart events, stock levels. - **Profit-weighted stock digest:** Inventory → Woo Stock uses live Woo quantities plus order contribution to rank SKUs by days of cover. High-margin winners about to stock out rise first. Not a WMS, not Glew, not auto purchase orders. - **Plugin / SaaS costs:** Guided Smart Import on Costs (CSV or paste) writes recurring Apps & Software rows into the cost list and true net profit, like Shopify app subscriptions. Woo REST does not expose plugin billing; a best-effort `system_status` detect can suggest known paid plugins. CostRadar does not uninstall plugins or cancel vendor subscriptions. - **Webhooks:** Order created/updated HMAC webhooks for near-realtime ingest; cron remains fallback. Use Read/Write REST keys when registering webhooks via API. - **Gateway fees → order net:** Configurable payment processor rates (Settings → Stores → Gateway fees; default Stripe-like **2.9% + $0.30**, PayPal **3.49% + $0.30**) write `orders.allocated_costs` + `orders.net_profit` on sync. Not a live Stripe/PayPal statement import — keep rates aligned with your gateway. Customer shipping charge stays on the order; merchant fulfillment cost resolves from **shipping auto-rules** when configured (see Shipping auto-rules above). Refund cash prefers Woo 11.1 `total_refunded` when present; older stores still sum `refunds[].total`. CostRadar does not POST customer refunds; a write path would send `compute_totals: true` / `/refunds/preview` with a 404 fallback. - **Compare:** https://costradar.ai/compare/woocommerce ### BigCommerce-specific - **Connect:** Two real, live paths in Settings → Stores → BigCommerce — **Connect via OAuth** (Single-Click app authorize, primary when available) or **Advanced: API token** (store hash + API account access token, always available). `GET /bigcommerce/config` tells the connect wizard which to default to. - **Marketplace listing:** OAuth code (`connect` / `auth` callback / `load` / `uninstall`) is fully implemented and unit-tested, but the app is **not yet listed on the BigCommerce App Marketplace** — Partner Portal registration is a pending external approval step (same honesty pattern as Amazon Ads Partner). Until approved, the connect wizard defaults to the API-token tab; the OAuth tab is visible but shows a "pending review" note. Asset checklist: `docs/marketplace/bigcommerce/README.md`. - **Uninstall / token revoke:** Merchant-initiated disconnect (`POST /bigcommerce/disconnect`) and BigCommerce-initiated app uninstall (`GET /bigcommerce/uninstall`, signed-payload verified) both revoke webhooks and mark the shop disconnected. - **Billing:** Stripe (same path as Amazon / WooCommerce) — not Shopify App Billing, and not BigCommerce Marketplace billing. - **Plugin / SaaS costs:** Same guided Smart Import as WooCommerce (Costs → Plugin subscriptions). BigCommerce does not expose app billing amounts; paste or CSV lands in Apps & Software / true net profit. Does not uninstall apps. - **Sync:** Orders, catalog/product costs, inventory levels; webhooks + cron fallback; routes under `/bigcommerce/*`, `/bigcommerce-orders/*`, `/bigcommerce-inventory/*`. - **Gateway fees → order net:** Same rate table + `allocated_costs` / `net_profit` path as WooCommerce; monthly `business_metrics` rebuild after order sync. - **Compare:** https://costradar.ai/compare/bigcommerce ### eBay-specific (Wave 5) Scannable live vs not-shipped: **eBay Wave 5 — live vs not shipped** (near the top). Native eBay, first-class store — never “battle-tested at scale.” - **Connect:** Settings → Stores → eBay only. Not Ads, Costs, Automations, or the Integrations gallery. OAuth Authorization Code (confidential; no PKCE). eBay `redirect_uri` is the RuName; SPA callback is `https://costradar.ai/integrations/ebay/callback`. - **Shop:** `shops.platform = ebay`. Tokens on `integrations.provider = ebay` for that shop. Domain `ebay:{userId}`. Stripe billing. - **TNP:** Sell Fulfillment orders → `orders` (`shopify_order_id` = `ebay:{shopId}:{orderId}`). Sell Finances marketplace fees (final value / insertion / order-linked shipping labels) → `ebay_order_fee_lines` / `orders.allocated_costs`. Buyer refunds from Fulfillment `paymentSummary.refunds` / line-item refunds, Finances `REFUND`, and Post-Order completed refunds on known orders → `refunded_amount` with net `total_revenue` (Allegro honesty; never fake $0). Promoted Listings billed charges (Finances `AD_FEE`) → `costs.category=marketing`. Campaign GET is names/status/budget metadata only (not campaign-stats; CostRadar does not POST `ad_report_task`). Listing/SKU identity from Fulfillment lines plus Inventory REST items/offers when scoped → Product Costs (merchant sets COGS). Payouts are settlement **status** (transfers of already-netted funds), not extra costs. - **Lookback:** Fulfillment filter max 90 days. Cron `platform-orders-sync` (~6h) + Sync Now + daily `marketing-ads-sync-cron`. Event path is lastModifiedDate poll. Commerce Notification API challenge + destination scaffolding is implemented; live push needs `EBAY_NOTIFICATION_VERIFICATION_TOKEN` and portal destination ENABLE. - **CSV:** Orders → CSV channel can still import eBay/Walmart rows onto **another** connected shop. Native eBay is this Stores shop. Walmart stays CSV-only. - **Still not shipped:** listing writes / Inventory write / Trading SOAP, campaign-stats / `ad_report_task` / bid bots, live Notification push until portal destination ENABLE, native Walmart OMS. Partner-gated Notification topics / Inventory / Marketing / Post-Order scopes leave a gap watermark — CostRadar does not invent data. ### Shopify-only (by design) - Embedded Shopify billing / app subscription sync - First-party Pixel + `shopify-webhook` order matching (Shopify storefront today). Shopify Web Pixel is the primary install path; Liquid snippet is fallback - Customers API sync for LTV enrichment (needs `read_customers`; re-auth if older install) ### Activation map: from first useful insights to a weekly habit, by seller type In-app: **https://costradar.ai/docs#activation** (aliases: `#journey`, `#aha`, `#habit`). Seller-type (persona) anchors: `#activation-amazon`, `#activation-shopify`, `#activation-woocommerce`, `#activation-bigcommerce`, `#activation-multi`, `#activation-ads`, `#activation-agency`. Counts: Amazon 6, Shopify 6, WooCommerce 5, BigCommerce 5, multi-store 5, ads-heavy 5, agency 5. This page is the activation command center for a brand-new merchant: many first-click insights per seller type, not one linear “connect then done” story. Connecting a store is only setup. An **aha moment** is the first moment it clicks — for example Home showing **True Net Profit** (money left after product cost, fees, ads, and other costs), a “winning” **SKU** (one product listing) that actually loses money, missing **COGS** (what you paid for the product / landed cost), Amazon fees that have not arrived yet, a payout that is not the same as Home revenue, ads that stay at 0 until you connect ad accounts under Settings → Ads, or Pulse showing one store fine while the group of stores is not. A **habit** is the recurring check on Home, Pulse, Orders, Products, or Settlements. Support Chat answers from the docs (optional Share store data for a snapshot of this store). AI Profit Agent analyzes this store’s numbers (Premium). Write for a non-technical merchant: full sentences, **store** not shop, screen names as “Open Home” / “Open Products”. Do not use JTBD, telegram fragments, or unexplained slang (cadence, rollup, gateway table, watermark, PII, sync KPI). Spell FBA (Amazon stores and ships) and FBM (you ship yourself) on first mention. Avoid GMV; say sales total. ROAS = return on ad spend. Formulas stay on the merchant guide. Do not duplicate formulas here — point merchants to **https://costradar.ai/docs#merchant-guide**. ### How to read the numbers (merchant tutorial) In-app: **https://costradar.ai/docs#merchant-guide** (also `#tutorial`). Teach interpretation, not only clicks. **True net profit (Home / Pulse / Metrics / Today's Net):** `revenue − COGS − merchant shipping − ad spend − payment/platform fees − operating expenses − taxes`. **Gross profit (Orders tiles, order rows):** `revenue − COGS` only. Missing COGS ⇒ margin looks ~100%. **Which orders count on Home:** Shopify / Woo / BigCommerce = `paid` + `partially_refunded`. Amazon = those plus `pending` (Unshipped still has item price), excluding refunded, cancelled, returned-to-seller, and rejected-by-buyer. Month buckets are **UTC**. **Orders page tiles** follow the status filter + date range. **All statuses includes refunds** — that is why Orders can be a few rows higher than Home. **COGS:** Shopify `unitCost` / Woo meta / BigCommerce `cost_price` (Advanced+). **Amazon does not send supplier cost** — catalog syncs; merchant must enter landed cost. Manual `source=manual` is never overwritten. **Fees:** Amazon Finances → `orders.allocated_costs` (recent orders often 0 until events post). Woo/BC = configured gateway rate table. Do not also log the same Amazon referral/FBA as a Costs row. **Ads:** only connected ad accounts + manual Marketing costs. Unconnected ads ⇒ P&L ads = 0. **Settlements ≠ monthly Home revenue.** Settlement groups are payout windows. **Inventory:** platform stock tabs (Advanced+). Empty Amazon FBA tab = missing role, FBM-only, or sync not finished — not a revenue bug. --- ### Plan gates (unchanged) - **Pulse / changes-summary:** Premium only (403 on Free/Advanced is expected). - **Inventory Intelligence, Audiences, Simulations:** Advanced+. - **AI Insights / Chat:** Premium. --- ## Common FAQ (assistant-ready) **Sync frequency:** Free = daily auto-sync; paid = daily auto-sync + on-demand **Sync Now** (Shopify, Amazon, WooCommerce, BigCommerce, Allegro, eBay). Orders background cron runs about every 6 hours per connected store. Shopify, WooCommerce, and BigCommerce also support near-realtime order webhooks; Amazon uses SP-API notifications; Allegro polls `GET /order/events` every 2 minutes. Allegro Ads billing also runs on `marketing-ads-sync-cron` (02:00 UTC). **Edit synced costs?** Platform-imported costs are read-only — fix at source (Shopify/Amazon/WooCommerce/BigCommerce/Allegro/eBay/app provider). **Cancel subscription?** Downgrade to Free at period end; data retained, paid features locked. **Multiple stores on Free?** No — Premium for unlimited stores + Pulse. Manual costs from other sources always OK. **Export data?** Full Settings export all plans; CSV/Excel from Costs/Reports = Advanced+. **Security:** AES-256 at rest, TLS 1.3 in transit; GDPR/CCPA; Postgres RLS. Legal: https://costradar.ai/privacy-policy **Refund policy:** Depends on signup channel — Shopify billing vs direct; contact hello@costradar.ai. --- ## Assistant Guidelines 1. **Check plan** before confirming feature access. 2. **Contact emails:** **hello@costradar.ai** for support/sales. **partnerships@costradar.ai** for outbound partner program reply-to only — not in scraped partner data. 3. **Do not share** private API endpoints, admin-only steps, or internal implementation details — point to https://costradar.ai/docs or hello@costradar.ai. 3. **Onboarding path:** Connect the store and wait until orders finish loading. Then collect first-click insights on the **Activation map** (`/docs#activation`, by seller type). Review Home. On Premium, check Profit Health Score. Set budgets. On Premium, run AI Insights; on Advanced+, Simulations. Formulas live on `/docs#merchant-guide`. 4. **Differentiate AI Profit Agent** (analyzes merchant data) vs **AI Support Chat** (product help; optional Share store data for the selected store). 5. **Demo / sales:** `demo@costradar.ai` + double-tap RR = full D1–D7 sample data for walkthroughs. ### Quick templates - "That feature exists on [Plan]. Which plan are you on?" - "Export segments without PII by default — only platform IDs sent." - "Quick wins: AI Insights (Premium) for subscription bloat, then Simulations to model P&L impact." --- ## Keywords shopify cost tracking, amazon seller profitability, woocommerce cost tracking, ecommerce profitability, COGS management, shopify transaction fees, amazon FBA fees, multi-store analytics, ecommerce AI insights, profit margin calculator, zapier ecommerce, meta ads cost sync, google ads ecommerce, klaviyo costs, DTC financial analytics, subscription audit, POAS tracking --- ## Insights / Blog (agent-readable guides) CostRadar Insights is a library of citable, single-topic ecommerce profitability guides — definitions, fee/cost breakdowns, and operating frameworks for Shopify, Amazon, and WooCommerce merchants. Use this section to discover and cite specific articles; use the sections above for product/pricing/feature facts, and https://costradar.ai/docs for in-app how-to documentation. **How to fetch a post:** - Index (all published posts, HTML): https://costradar.ai/blog - One article (HTML, human-readable): https://costradar.ai/blog/{slug} - Same article (raw Markdown, no HTML chrome — preferred for agents/LLMs): https://costradar.ai/blog/{slug}.md - Sitemap (all Insights URLs with lastmod): https://costradar.ai/sitemap.xml **Publish schedule:** Posts are dated (`date:` frontmatter) and only listed here, in the sitemap, and as raw `.md` once `date <= today (UTC)`. Future-dated posts are intentionally withheld — do not guess or construct URLs for slugs not listed below; they will 404 until their publish date. New posts unlock automatically every Monday. **Status:** 38 of 50 scheduled posts published as of 2026-09-25 (UTC). **Citing these guides:** Each post is single-topic and safe to cite directly by URL and title. Prefer the `.md` URL when quoting or summarizing content, since it excludes navigation/site chrome. Definitions and formulas near the top of each post (e.g. "true net profit = …") are the most stable, citable claims. ### Published posts (newest first) - **AI Cost Intelligence for Ecommerce: Use Cases That Matter** (2026-09-21) — AI helps when it finds duplicate spend, forecasts overruns, and explains margin moves—not when it restates charts. · HTML: https://costradar.ai/blog/ai-cost-intelligence-ecommerce · Markdown: https://costradar.ai/blog/ai-cost-intelligence-ecommerce.md - **Anomaly Detection for Ecommerce Costs: What “Weird” Looks Like** (2026-09-14) — Fee spikes, app renewals, and ad account glitches show up as anomalies. How to catch them in 24-48 hours. · HTML: https://costradar.ai/blog/anomaly-detection-ecommerce-costs · Markdown: https://costradar.ai/blog/anomaly-detection-ecommerce-costs.md - **Budgeting When Ad Spend Is the Biggest Variable Cost** (2026-09-07) — Traditional budgets break when Meta and Google move weekly. A contribution-aware budgeting cadence. · HTML: https://costradar.ai/blog/budgeting-for-variable-ad-spend · Markdown: https://costradar.ai/blog/budgeting-for-variable-ad-spend.md - **Email & SMS: From Channel Cost to Profit Contribution** (2026-08-31) — ESP and SMS fees are small until you add discounts and list fatigue. Measure profit contribution, not opens. · HTML: https://costradar.ai/blog/email-sms-cost-to-profit · Markdown: https://costradar.ai/blog/email-sms-cost-to-profit.md - **Agency Retainers and Ecommerce ROI: A Cost Lens** (2026-08-24) — Retainers are fixed costs that must buy contribution margin or strategic capacity. How to evaluate them. · HTML: https://costradar.ai/blog/agency-retainer-roi-ecommerce · Markdown: https://costradar.ai/blog/agency-retainer-roi-ecommerce.md - **Incrementality vs Last-Click: What Cost Teams Should Demand** (2026-08-17) — Last-click attribution mis-prices channels. What finance and growth should agree on instead. · HTML: https://costradar.ai/blog/incrementality-vs-last-click-cost · Markdown: https://costradar.ai/blog/incrementality-vs-last-click-cost.md - **Google Ads for Ecommerce: Profitability Before Scale** (2026-08-10) — Brand search looks efficient; shopping scales chaos. A profit-first Google Ads operating model. · HTML: https://costradar.ai/blog/google-ads-ecommerce-profitability · Markdown: https://costradar.ai/blog/google-ads-ecommerce-profitability.md - **Meta Ads and Contribution Margin: Beyond CPA Targets** (2026-08-03) — CPA targets fail when product mix shifts. Build Meta budgets from contribution margin by SKU and offer. · HTML: https://costradar.ai/blog/meta-ads-contribution-margin · Markdown: https://costradar.ai/blog/meta-ads-contribution-margin.md - **Currency and FX Effects on Ecommerce True Net Profit** (2026-07-27) — Multi-currency catalogs create silent margin swings. How to see FX as a cost class. · HTML: https://costradar.ai/blog/currency-fx-ecommerce-profit · Markdown: https://costradar.ai/blog/currency-fx-ecommerce-profit.md - **Marketplace vs DTC Economics: Same SKU, Different P&L** (2026-07-20) — The same product on Amazon and your DTC site can have opposite profit outcomes. Model both. · HTML: https://costradar.ai/blog/marketplace-vs-dtc-economics · Markdown: https://costradar.ai/blog/marketplace-vs-dtc-economics.md - **Channel Mix Optimization Using Contribution Margin** (2026-07-13) — Shift budget toward channels with durable contribution margin, not just the highest revenue week. · HTML: https://costradar.ai/blog/channel-mix-optimization-margin · Markdown: https://costradar.ai/blog/channel-mix-optimization-margin.md - **Multi-Store P&L for Agencies and Portfolio Brands** (2026-07-06) — Agencies and multi-brand operators need rollup profitability without mixing store economics. Patterns that work. · HTML: https://costradar.ai/blog/multi-store-pnl-agencies · Markdown: https://costradar.ai/blog/multi-store-pnl-agencies.md - **Multi-Channel Profitability: Shopify + Amazon + WooCommerce + BigCommerce** (2026-06-29) — One brand, three platforms, incompatible dashboards. How to build a unified true net profit view. · HTML: https://costradar.ai/blog/multi-channel-profitability-shopify-amazon-woo · Markdown: https://costradar.ai/blog/multi-channel-profitability-shopify-amazon-woo.md - **POAS: Profit on Ad Spend as a Better North Star** (2026-06-22) — POAS ties ads to profit, not revenue. Definition, formula, and when ecommerce teams should switch. · HTML: https://costradar.ai/blog/poas-profit-on-ad-spend · Markdown: https://costradar.ai/blog/poas-profit-on-ad-spend.md - **The ROAS-Without-Margin Trap** (2026-06-15) — ROAS can look world-class while contribution margin is negative. How to rebuild paid social targets from margin up. · HTML: https://costradar.ai/blog/roas-without-margin-trap · Markdown: https://costradar.ai/blog/roas-without-margin-trap.md - **Vanity Metrics That Waste Ecommerce Finance Attention** (2026-06-08) — Sessions, followers, and ROAS-without-margin distract from contribution. Which metrics to demote. · HTML: https://costradar.ai/blog/vanity-metrics-ecommerce-finance · Markdown: https://costradar.ai/blog/vanity-metrics-ecommerce-finance.md - **Gross Sales vs Net Sales: The Ecommerce Definition Guide** (2026-06-01) — Discounts, returns, and taxes change “sales” definitions. Align teams on net sales before arguing about profit. · HTML: https://costradar.ai/blog/gross-sales-vs-net-sales · Markdown: https://costradar.ai/blog/gross-sales-vs-net-sales.md - **Why Revenue Dashboards Lie to Ecommerce Operators** (2026-05-25) — Revenue is easy to celebrate and easy to misread. How gross sales dashboards create false confidence. · HTML: https://costradar.ai/blog/why-revenue-dashboards-lie · Markdown: https://costradar.ai/blog/why-revenue-dashboards-lie.md - **WooCommerce Subscription Plugins: ROI Beyond MRR** (2026-05-18) — Subscription plugins grow MRR—and also refund complexity, support load, and payment failure costs. Measure net. · HTML: https://costradar.ai/blog/woo-subscription-plugin-roi · Markdown: https://costradar.ai/blog/woo-subscription-plugin-roi.md - **WooCommerce vs Shopify: Cost Structure Compared** (2026-05-11) — A structural cost comparison—platform fees, plugins/apps, people, and risk—for merchants choosing or consolidating stacks. · HTML: https://costradar.ai/blog/woocommerce-vs-shopify-cost-structure · Markdown: https://costradar.ai/blog/woocommerce-vs-shopify-cost-structure.md - **The True Cost of WooCommerce Hosting and Performance** (2026-05-04) — Hosting, CDN, and performance engineering are part of WooCommerce COGS-adjacent spend. When “cheap hosting” is expensive. · HTML: https://costradar.ai/blog/woocommerce-hosting-true-cost · Markdown: https://costradar.ai/blog/woocommerce-hosting-true-cost.md - **WooCommerce Payment Gateway Fees and Margin Math** (2026-04-27) — Stripe, PayPal, and local gateways change contribution margin. How Woo stores should model all-in payment cost. · HTML: https://costradar.ai/blog/woocommerce-payment-gateway-fees · Markdown: https://costradar.ai/blog/woocommerce-payment-gateway-fees.md - **WooCommerce Plugin Sprawl: The Hidden Cost Stack** (2026-04-20) — WooCommerce flexibility invites plugin sprawl. How to measure the true cost of your WordPress commerce stack. · HTML: https://costradar.ai/blog/woocommerce-plugin-sprawl-cost · Markdown: https://costradar.ai/blog/woocommerce-plugin-sprawl-cost.md - **FBA vs FBM: A Cost Decision Framework** (2026-04-13) — Compare FBA and FBM using contribution margin, cash conversion, and operational risk—not slogans. · HTML: https://costradar.ai/blog/fba-vs-fbm-cost-decision · Markdown: https://costradar.ai/blog/fba-vs-fbm-cost-decision.md - **Seller Profit Metrics Explained (Without Vendor Lock-In)** (2026-04-06) — ROI, margin, and profit-per-unit definitions sellers see across Amazon tools—clarified for decision quality. · HTML: https://costradar.ai/blog/sellerboard-style-metrics-explained · Markdown: https://costradar.ai/blog/sellerboard-style-metrics-explained.md - **Landed Cost for Amazon International Expansion** (2026-03-30) — Duties, freight, and marketplace fees reshape contribution margin when you expand Amazon beyond one marketplace. · HTML: https://costradar.ai/blog/amazon-landed-cost-international · Markdown: https://costradar.ai/blog/amazon-landed-cost-international.md - **Amazon Refunds and Fee Reconciliation for True Profit** (2026-03-23) — Refunds, reimbursements, and fee discrepancies change Amazon P&L. A reconciliation mindset for accurate seller profit. · HTML: https://costradar.ai/blog/amazon-refunds-and-fee-recon · Markdown: https://costradar.ai/blog/amazon-refunds-and-fee-recon.md - **Amazon Storage Fees and Seasonality: Protecting Q4 Margin** (2026-03-16) — Long-term and peak storage fees can erase Q4 wins. How sellers forecast storage drag before peak inventory decisions. · HTML: https://costradar.ai/blog/amazon-storage-fees-seasonality · Markdown: https://costradar.ai/blog/amazon-storage-fees-seasonality.md - **Amazon PPC vs Organic: Measuring Profit, Not Just ACoS** (2026-03-09) — ACoS and TACOS are incomplete without contribution margin. How Amazon sellers judge whether ads create profit or rent sales. · HTML: https://costradar.ai/blog/amazon-ppc-vs-organic-profit · Markdown: https://costradar.ai/blog/amazon-ppc-vs-organic-profit.md - **Amazon FBA Fees and Contribution Margin: A Practical Model** (2026-03-02) — FBA referral, fulfillment, and storage fees turn Amazon revenue into a different economics game. How to compute contribution margin sellers can trust. · HTML: https://costradar.ai/blog/amazon-fba-contribution-margin · Markdown: https://costradar.ai/blog/amazon-fba-contribution-margin.md - **How Returns Quietly Destroy Shopify True Net Profit** (2026-02-23) — Returns reverse revenue but not always the ads, shipping, and handling already spent. How to measure return drag on true net profit. · HTML: https://costradar.ai/blog/shopify-returns-profit-impact · Markdown: https://costradar.ai/blog/shopify-returns-profit-impact.md - **Shopify Plus Cost Structure: When the Upgrade Pays for Itself** (2026-02-16) — Shopify Plus is not just a badge—it changes fees, apps, and operating leverage. A cost-structure lens for the upgrade decision. · HTML: https://costradar.ai/blog/shopify-plus-cost-structure · Markdown: https://costradar.ai/blog/shopify-plus-cost-structure.md - **COGS Accuracy: Why Wrong Product Costs Break Every Profit Metric** (2026-02-09) — If COGS is wrong, gross margin, contribution margin, and true net profit are all fiction. How ecommerce teams keep landed cost current. · HTML: https://costradar.ai/blog/cogs-accuracy-ecommerce · Markdown: https://costradar.ai/blog/cogs-accuracy-ecommerce.md - **How to Run a Shopify Subscription Bloat Audit in One Afternoon** (2026-02-02) — A practical checklist to find unused Shopify apps, overlapping tools, and step-fixed SaaS that no longer earns its keep. · HTML: https://costradar.ai/blog/shopify-subscription-bloat-audit · Markdown: https://costradar.ai/blog/shopify-subscription-bloat-audit.md - **The True Cost of Shopify Payments (Beyond the Sticker Rate)** (2026-01-26) — Payment processing is a variable cost of every order. How to model Shopify Payments, currency conversion, and chargebacks in contribution margin. · HTML: https://costradar.ai/blog/shopify-payments-true-cost · Markdown: https://costradar.ai/blog/shopify-payments-true-cost.md - **Hidden Shopify App and Fee Costs That Erode Margin** (2026-01-19) — Shopify app stacks, payment fees, and subscription overlap quietly erase margin. How to audit the true cost of your Shopify operating system. · HTML: https://costradar.ai/blog/hidden-shopify-app-and-fee-costs · Markdown: https://costradar.ai/blog/hidden-shopify-app-and-fee-costs.md - **Contribution Margin vs Gross Margin for Online Stores** (2026-01-12) — Gross margin ignores variable selling costs. Contribution margin includes fees, shipping, and often ads—making it the better lever for ecommerce decisions. · HTML: https://costradar.ai/blog/contribution-margin-vs-gross-margin · Markdown: https://costradar.ai/blog/contribution-margin-vs-gross-margin.md - **True Net Profit in E-commerce: Definition and Why It Matters** (2026-01-05) — True net profit is revenue minus COGS, fees, apps, ads, shipping, and operating costs—not just gross margin. A clear definition for ecommerce merchants. · HTML: https://costradar.ai/blog/true-net-profit-ecommerce · Markdown: https://costradar.ai/blog/true-net-profit-ecommerce.md ## Competitor Comparisons (verified 2026-09-13; Allegro peers 2026-09-18) 25 public comparison pages — pricing from Shopify App Store, Amazon vendor sites, Woo plugins, BigCommerce, and live Allegro-market vendor sites (PLN). Feature matrix includes the September 2026 gap-round + next-wave. **Now live on CostRadar (shown as present / honesty caption, not a silent green check where scoped):** refunded cash on Shopify/Woo/BC/Allegro/eBay orders · Simulations Advanced+ · Profit Action Agent Approve · Profit Agent in Slack, Microsoft Teams, and WhatsApp (plain-English answers, weekday morning summary, one alert at a time, quiet hours, confirm-first Approve) · Agency Client (Pulse, logo, Close Pack share) · Campaign Profit last/first-click presets · COGS effective-from + bundle kits + country/order-value bands · ShipStation + ShipBob order actuals · Woo/BC plugin subscription costs + Smart Import · profit-aware Audiences segments · creative-level POAS (`ad_id`) · native eBay Wave 5 (Stores OAuth + orders/fees/refunds including Post-Order completed cash on known orders + Promoted Listings billed charges + listing/SKU COGS identity + Inventory REST when scoped + shipping labels + Settlements payouts + Notification destination scaffolding) · eBay/Walmart CSV onto a shop · wFirma into costs + Close Pack accounting checklist · Amazon Ads Connect (Advertising API approved Aug 2026; live spend after you connect Amazon Ads) · Amazon Ads search-term / keyword profit vs break-even ACoS (read-only, **not bid bots**) · ad spend accrued vs billed variance (TNP stays accrued; **not** Meta Billing scrape / CAPI). **Still gated / not shipped (do not mark as live vs peers):** Meta CAPI outbound / Sonar-style Signals · full MTA/MMM · bid bots · silent reimbursement auto-file · native Walmart OMS · eBay listing writes / Inventory write / Trading SOAP / `ad_report_task` campaign-stats · live Notification push until portal destination ENABLE · Shippo · full accounting / tax filing · custom-domain white-label · Allegro listing edits / bid bots · WhatsApp · pausing ads or changing bids. **Shopify profit trackers:** TrueProfit, BeProfit, Lifetimely, Profitario, Juicy, NeoProfit, SimplyCost **Shopify attribution/BI:** Triple Whale, Polar Analytics, Finaloop **Amazon seller tools:** Sellerboard, HelloProfit, ManageByStats, SoStocked **WooCommerce SaaS:** Metorik, Conjura **WooCommerce plugins:** Alpha Insights, WooReports Pro **BigCommerce SaaS:** Glew (+ Conjura cross-list) **BigCommerce native:** BigCommerce Analytics / Ecommerce Insights **Allegro profit dashboards:** Profiro, NoviProfit, AlleSpark, ProfitOS **Allegro sales ops + offer profitability:** AleAsystent (CX/autoresponder; rentowność ofert on SPRZEDAŻ+) Hub: https://costradar.ai/compare · Amazon: https://costradar.ai/compare/amazon · Woo: https://costradar.ai/compare/woocommerce · BigCommerce: https://costradar.ai/compare/bigcommerce · Allegro: https://costradar.ai/compare/allegro Allegro-native tools often win on deep Allegro-only offer/SKU margin, ABC, Ads file workflows, in-browser COGS privacy, or Super Sprzedawca CX. CostRadar is the multi-platform True Net Profit OS (Allegro orders/fees/events + Ads billing → adSpend, plus Shopify/Amazon/Woo/BC). BaseLinker is an OMS, not a TNP peer — not listed. - Profiro: https://costradar.ai/compare/allegro/profiro - NoviProfit: https://costradar.ai/compare/allegro/noviprofit - AlleSpark: https://costradar.ai/compare/allegro/allespark - ProfitOS: https://costradar.ai/compare/allegro/profitos - AleAsystent: https://costradar.ai/compare/allegro/aleasystent --- *Last updated: 2026-09-25 — Profit Agent in Slack, Microsoft Teams, and WhatsApp is live (plain-English answers, weekday morning summary, one alert at a time, quiet hours, confirm-first Approve; does not pause ads). App entry is https://costradar.ai (SPA). Amazon Ads search-term / keyword profit is live (read-only, not bid bots). Meta CAPI remains not shipped.*