Nuso / Docs
Pricing Blog Open App

Welcome to Nuso

Nuso is an all-in-one analytics and AI platform built for Shopify brands. Connect your store and get instant access to real-time dashboards, customer insights, AI-powered creative tools, marketing mix modelling and automated reports.

Overview Dashboard
Screenshot: The main Nuso dashboard showing KPI cards, revenue chart and top products

What you can do with Nuso

  • Real-time revenue, order and customer dashboards with date comparisons
  • Product and collection performance — sales, returns, size curves
  • Customer lifetime value, segmentation and repeat purchase analysis
  • P&L statements, margin bridge and financial breakdowns
  • AI Studio — product photography, background removal, virtual models, video
  • Toby — your AI analyst that answers questions about your data in plain English
  • Custom drag-and-drop report builder with premade templates
  • Automated email reports — daily, weekly or hourly delivery
  • Marketing Mix Modelling to measure true channel effectiveness
  • Google Ads, Meta and TikTok ad integrations with campaign drill-down
  • Inventory planning and rebuy recommendations
  • Product bundling tools
  • Team management with three role levels (Viewer, Editor, Admin)
  • SQL data warehouse for custom queries and CSV export

Quick start

Account setup

Get your Nuso account up and running in under five minutes.

Creating your account

There are two ways to get started:

  1. Self-service signup — Visit app.nuso.co.uk/signup and follow the three-step wizard.
  2. Invitation — If your organisation already uses Nuso, you'll receive an invite link from your admin. The link looks like app.nuso.co.uk/onboarding?invite=TOKEN.

The onboarding wizard

1

Organisation details

Enter your organisation name (this is what your team will see in the dashboard). You can also upload a logo — it appears in the sidebar and email reports. Both can be changed later in Settings.

2

Admin account

Set up your personal login with name, email and password. Your password must be at least 8 characters — we recommend including uppercase, numbers and special characters. A strength indicator shows you how strong it is. You'll be the first Admin user and can invite your team later.

3

Connect Shopify

Paste your Shopify store URL (e.g. my-store.myshopify.com) and your Admin API access token. Click Test Connection to verify — we'll check all required API scopes are enabled. Then click Connect & Import Data to finish.

Onboarding Wizard — Step 3
Screenshot: The Shopify connection step showing store URL field, token field and "Test Connection" button
ⓘ
Your 7-day free trial starts as soon as you complete onboarding. You'll have full access to all features during the trial — no credit card required. After the trial, an active subscription is needed.

What happens after setup

  1. Your organisation's database schema is created automatically
  2. Nuso begins importing your last 2 years of historical data (orders, products, customers)
  3. You're logged in and redirected to the Overview dashboard
  4. Data import runs in the background — most stores finish within 2–5 minutes

Accepting an invitation

If you've been invited to an existing organisation by an admin, the flow is the same three-step wizard but your org details are pre-filled. Your account will be linked to the organisation with the role your admin assigned (Viewer, Editor or Admin). See Roles & permissions for what each role can do.

Connecting Shopify

Nuso connects to your Shopify store via a custom app. This gives us read-only access to your orders, products, customers and inventory.

🔒 Prerequisites
  • You need Shopify admin access (store owner or staff with "Apps" permission)
  • Your Shopify plan must support custom apps (available on all paid plans)
  • You need Admin role in Nuso to configure integrations
Admin only

Step 1: Create a custom app in Shopify

  1. Log in to your Shopify admin at your-store.myshopify.com/admin
  2. Go to Settings (bottom-left) → Apps and sales channels
  3. Click Develop apps (top-right). If you see "Allow custom app development", click it first.
  4. Click Create an app
  5. Give it a name like "Nuso Analytics" and click Create app
Shopify Admin — Create Custom App
Screenshot: Shopify Settings > Apps and sales channels > Develop apps > Create an app dialog

Step 2: Configure API scopes

In your new custom app, click Configuration then Configure next to "Admin API integration". Enable these scopes:

ScopeWhat Nuso uses it forRequired?
read_ordersOrder history, revenue, refunds, line items, fulfilment statusRequired
read_productsProduct catalogue, variants, pricing, images, tagsRequired
read_customersCustomer data for LTV, segmentation and repeat purchase analysisRequired
read_analyticsStore-level analytics and traffic dataRequired
read_inventoryStock levels across locations for inventory trackingRequired
read_fulfillmentsFulfilment and shipping status for ordersRequired
read_marketsShopify Markets, catalogs and price lists for the Market Catalogs pageOptional
read_publicationsWhich products are published in each market, for the Market Catalogs pageOptional
⚠
All six scopes are required. If any are missing, the connection test will warn you and some features won't work correctly.

Step 3: Install and copy the token

  1. Click Save after configuring scopes
  2. Go to the API credentials tab
  3. Click Install app and confirm
  4. Copy the Admin API access token that appears
⚠
Important: The access token is only shown once. Copy it immediately and store it somewhere safe. If you lose it, you'll need to uninstall and reinstall the custom app to generate a new one.

Step 4: Paste into Nuso

  1. In Nuso, go to Settings (click the gear icon in the sidebar)
  2. Under Shopify, paste your store URL (e.g. my-store.myshopify.com)
  3. Paste the Admin API access token
  4. Click Test Connection — you'll see a green confirmation if everything is correct
  5. Click Connect & Import Data
Nuso Settings — Shopify Connection
Screenshot: Settings page showing store URL input, token input, "Test Connection" button and connection status
✓
Once connected, Nuso imports your last 2 years of data in batches. This typically takes 2–5 minutes. You'll see a progress indicator. After import, data syncs automatically every few minutes.

Troubleshooting

Token not working

The access token is only displayed once when you install the app. If you've lost it, go to Shopify → Settings → Apps → Develop apps → your app → uninstall, then reinstall it to generate a new token.

Missing data after connecting

Check that all six API scopes are enabled. If you added scopes after initial setup, you may need to uninstall and reinstall the custom app in Shopify for changes to take effect.

Store URL format

Always use your .myshopify.com domain (e.g. my-store.myshopify.com), not your custom domain (e.g. www.mystore.com). The custom domain won't work for API access.

"Test Connection" shows missing scopes

Go back to Shopify → your custom app → Configuration → Admin API integration and ensure all six scopes are checked. Save, then test again in Nuso.

Your first dashboard

Once your Shopify store is connected, here's what to expect and how to navigate the app.

🔒 Prerequisites

Initial data sync

After connecting Shopify, Nuso imports up to 2 years of orders, products and customers in the background. You'll see a progress banner at the top of the page. Most stores complete within 2–5 minutes. You can start exploring the app while it imports — data will populate as it arrives.

Navigating the sidebar

The left sidebar is your main navigation. It's organised into sections:

App Sidebar
Screenshot: The full sidebar showing all navigation sections — Analytics, Planning, Reports, AI Studio, Marketing, Settings
SectionPagesWhat it's for
AnalyticsToday, Overview, Orders, Customers, Products, Collections, Stock Levels, FinanceAll your store data dashboards
PlanningRebuy Planner, BundlesInventory replenishment and product bundling
ReportsCustom Reports, SchedulesBuild dashboards and automate email delivery
AI StudioStudio tools, Toby AIAI image/video generation and data assistant
MarketingAd Platforms, MMM, MERAd performance and attribution modelling
SettingsIntegrations, Users, Billing, WarehouseConfiguration and administration

Using the date picker

Most analytics pages include a date picker in the top-right corner. You can:

  • Select preset ranges: Today, Yesterday, Last 7 Days, Last 30 Days, MTD (Month to Date), QTD, YTD
  • Choose a custom range by clicking on the calendar
  • Enable comparison mode to overlay data from the previous period or same period last year

The selected date range applies to all metrics, charts and tables on the current page.

Profile and settings menu

Click your avatar (or initials) in the bottom-left of the sidebar to access:

  • Integrations — Shopify, Google Ads, Meta, TikTok connections (Admin only)
  • Billing — Subscription, credits, invoices (Admin only)
  • Users — Team management (Admin only)
  • Help & Docs — Opens this documentation
  • Log out
✓
Nuso syncs new orders automatically every few minutes. You don't need to manually refresh — new sales appear as they come in.

Today

A real-time snapshot of your store's performance for the current day.

🔒 Prerequisites
Viewer Editor Admin

What you'll see

The Today page gives you an at-a-glance view of how your store is performing right now. At the top, you'll see KPI cards for:

  • Revenue — Total sales for today, compared to yesterday and the same day last week
  • Orders — Number of orders placed today with trend arrows
  • AOV — Average order value for today
  • Customers — Unique customers who placed orders
Today Page — KPI Cards
Screenshot: Top of Today page showing four KPI cards with green/red trend indicators

Hourly breakdown

Below the KPIs, a chart shows revenue and order count by hour throughout the day. This helps you identify peak selling times and spot unusual patterns.

Top products

A table lists the best-selling products today ranked by revenue. Each row shows the product name, units sold, revenue generated and current stock level.

✓
This page auto-refreshes — leave it open on a screen and it stays up to date throughout the day.

Overview

Your main analytics dashboard with full date range controls and period comparisons.

🔒 Prerequisites
Viewer Editor Admin

KPI cards

Four cards across the top show your headline numbers for the selected date range: Total Revenue, Total Orders, Average Order Value and Unique Customers. Each card includes a comparison percentage against the previous period when comparison mode is enabled.

Revenue trend chart

A line or bar chart shows daily revenue over the selected period. When comparison mode is active, the comparison period overlays in a lighter colour so you can visually compare performance.

Overview — Revenue Chart with Comparison
Screenshot: Revenue trend chart showing current period (solid line) vs previous period (dashed line)

Top products table

A sortable table ranks your products by revenue for the selected period. Columns include product name, units sold, revenue, average selling price and percentage of total revenue. Click any column header to sort.

How to use comparison mode

  1. Open the date picker (top-right)
  2. Select your date range (e.g. Last 30 Days)
  3. Toggle Compare on
  4. Choose comparison type: Previous period or Same period last year
  5. KPIs and charts will update to show both periods

Orders

Browse, search and analyse your complete order history.

🔒 Prerequisites
Viewer Editor Admin

Order list

The Orders page shows a searchable, sortable table of all orders within the selected date range. Each row displays:

  • Order number — Shopify order reference (e.g. #1042)
  • Date — When the order was placed
  • Customer — Name and email
  • Total — Order value in your currency
  • Items — Number of line items
  • Status — Payment and fulfilment status badges
Orders Page
Screenshot: Orders table showing columns for order number, customer, total, items and status badges

Searching and filtering

Type in the search bar to find orders by order number, customer name or email. Results filter in real-time. Use the date picker to narrow down the time range.

Order details

Click any order row to expand and see full details: line items with images, quantities, prices, discount codes applied, shipping address, and payment method.

Customers

Understand your customer base with segmentation, lifetime value and repeat purchase analysis.

🔒 Prerequisites
Viewer Editor Admin

Customer segments

Nuso automatically segments customers based on purchase behaviour:

  • New customers — First-time buyers in the selected period
  • Returning customers — Customers who've purchased more than once
  • At risk — Previously active customers who haven't purchased recently

Segment counts update based on the date range you select.

Lifetime value (LTV)

Key LTV metrics include:

  • Average LTV — Mean total spend per customer
  • Average orders per customer — Purchase frequency
  • Repeat purchase rate — Percentage of customers who bought more than once
  • Average days between orders — How often repeat customers come back

Customer table

Browse all customers with columns for name, email, total orders, total spend, first order date, last order date. Click any column to sort. Click a customer to see their complete order history.

Customers Page — LTV Metrics and Table
Screenshot: Customer analytics showing segment cards, LTV metrics and the customer table

Products

Catalogue overview with sales performance for every product.

🔒 Prerequisites
Viewer Editor Admin

Product table

Lists your entire product catalogue with columns for image, title, revenue, units sold, current stock, product type and vendor. All columns are sortable — click any header to sort ascending/descending.

Filtering

Use the dropdown filters to narrow down by:

  • Product type — The Shopify product type field
  • Tags — Any tags assigned in Shopify
  • Search — Type to filter by product title

What the data tells you

Sort by revenue to find your top sellers. Sort by stock to find items running low. Compare units sold vs. stock to spot products that need reordering. Use this alongside the Rebuy Planner for restocking recommendations.

Collections

Analyse performance at the collection level.

🔒 Prerequisites
Viewer Editor Admin

Collection performance

See revenue, orders and AOV broken down by Shopify collection. This helps identify your strongest product categories and spot underperformers that might need attention.

Sales metrics cover the last 12 months. Every collection with at least one active product is listed — a newly launched collection appears immediately with its product count and stock, and zeros for sales until orders come in. Product count and stock include all active products in the collection plus any products that sold in the last 12 months.

Size curve analysis

For fashion and apparel brands, the collections page includes size curve analysis. See which sizes sell most within each collection to optimise your buying and reduce dead stock in unpopular sizes.

Returns tracking

Track return rates by collection to identify quality issues or sizing problems in specific product lines.

Market Catalogs

Which products are available in each Shopify market, at what price, how those prices are set, and the margin they make.

🔒 Prerequisites

Pulling the catalog

Click Pull from Shopify. Nuso reads your markets, then one Shopify bulk operation fetches every active variant's availability and price in each market. A few thousand products takes a minute or two. The last three pulls are kept.

Tabs

Markets — FX & pricing rules per market currency, plus a card per market (catalog, price list, storefront, products available). Products × Markets — every product's price or margin in each market, filterable by where it is or isn't available. Pricing — conversion multipliers, price endings and off-pattern prices. Margin — gross margin per market and the lowest-margin products. Issues — markets without a catalog, in-stock products available nowhere, and products that sold recently in a market they're no longer available in.

Metric definitions

MetricDefinitionTax
Available in a marketShopify's publishedInContext for a country in that market: the product is live in that market's catalog. Markets without a catalog fall back to the Online Store, so every published product is available there.—
Checked via (probe country)Prices and availability are read for one country per currency a market sells in (the best-selling country in that currency). A local-currency market such as International has one per currency; the page shows each market's best-selling currency unless All currencies is on.—
Local priceShopify's contextualPricing for that country: the exact price and compare-at price a shopper there sees, after conversion, rounding, adjustments and fixed prices.As charged in that market (includes tax where the market's prices include it)
Store FXShopify's conversion setting for the market's currency: automatic (Shopify's live rate) or a manual rate set on the market. Read live from Shopify on page load (cached 5 minutes).—
Market spot rateECB daily reference rate from the base currency (via frankfurter.dev). Shown as — for currencies the ECB doesn't publish.—
Catalogue rateMedian of local price ÷ base price across every active variant priced in that country. Includes rounding and any price list adjustment.As priced
vs market spotCatalogue rate ÷ market spot rate − 1: how far prices sit above the exchange rate (conversion fee, rounding, adjustments).—
RoundingInferred from price endings: one ending on ≥80% of prices (e.g. “Ends in .95”, “Whole numbers”), otherwise “Mixed endings”. Shopify's own rounding setting is shown underneath when available.—
AdjustmentThe % uplift or discount on the market catalog's price list, applied to converted prices. “No price list” = conversion only; “No catalog” = the market has no catalog.—
FixedVariants with an explicit price on the market's price list (read directly from Shopify), so they don't follow FX.—
≠ FXVariants without a fixed price whose local ÷ base ratio is more than 6% away from that country's catalogue rate.—
Net price (margin)Local price ÷ (1 + tax rate) when that market's prices include tax, then ÷ FX rate to the base currency. Tax treatment and rate: median of the last 180 days of paid orders for the countries covered (≥10 orders), else the standard VAT rate. FX: the checkout rate customers paid (presentment ÷ shop GMV, last 90 days), else market spot rate, else catalogue rate.Excludes tax
Margin (market)(Net price − Shopify cost per item) ÷ net price, per variant. Product figure = median across costed variants; market Avg margin = mean across available, costed variants; Sales-weighted weights each product's margin by its 90-day units in that market's countries. Excludes shipping, duties and payment fees. Variants without a cost are left out (see Costed).Excludes tax
vs base (pts)Market avg margin − base-currency market avg margin, in percentage points.Excludes tax

Stock levels

Track inventory across all products and variants with drill-down detail.

🔒 Prerequisites
Viewer Editor Admin

Inventory overview

A hierarchical view of your inventory. Each product row shows total stock across all variants. Click the expand arrow to see variant-level breakdown (e.g. size S: 12, M: 8, L: 3).

Low stock alerts

Products and variants with critically low stock are highlighted with a warning indicator. This gives you an early warning before items sell out.

Stock Levels — Expandable Rows
Screenshot: Inventory table with an expanded product showing variant-level stock counts

Finance & P&L

Profit and loss statements, margin analysis and financial breakdowns.

🔒 Prerequisites
Viewer Editor Admin

P&L statement

Generates a profit and loss statement for any date range. Line items include gross revenue, discounts, net revenue, cost of goods (if configured), gross margin, shipping costs, and net profit.

Margin bridge

A waterfall chart that visualises how gross revenue flows through each cost category to arrive at net profit. This makes it easy to see at a glance where margin is being eroded — whether it's discounts, COGS, shipping or marketing spend.

Period comparison

Enable comparison mode to view P&L side-by-side across two periods. This shows you whether margins are improving or declining over time.

Rebuy planner

Inventory planning and restocking recommendations based on sales velocity.

🔒 Prerequisites
  • Shopify store connected with read_inventory and read_orders scopes
  • Sufficient order history for velocity calculations (ideally 30+ days)
Viewer Editor Admin

How it works

The Rebuy Planner analyses your sales velocity (units sold per day) for each product and variant, then calculates how many days of stock you have remaining. It flags items that need reordering based on your lead time.

Key columns

  • Velocity — Average units sold per day
  • Days of stock — How many days until stock runs out at current velocity
  • Suggested order — Recommended reorder quantity based on your restock cycle

Bundles

Create and manage product bundles to increase average order value.

🔒 Prerequisites
Editor Admin

What you can do

The Bundles page helps you identify products that are frequently bought together and create bundle offers. Use purchase pattern data to make data-driven bundling decisions that increase AOV.

Custom reports

Build your own dashboards with a drag-and-drop report builder.

🔒 Prerequisites
View only Create & edit Create & edit

Creating a report

  1. Go to Reports in the sidebar
  2. Click New Report or select a premade template
  3. Give your report a name
  4. Drag widgets from the toolbar onto the canvas
  5. Configure each widget (select metric, chart type, date range)
  6. Click Save
Report Builder — Drag & Drop
Screenshot: Report editor showing the widget toolbar on the left, canvas in the centre, and widget configuration panel on the right

Widget types

WidgetDescriptionBest for
KPI cardSingle metric with comparison percentageRevenue, orders, AOV headlines
Line chartTrend data plotted over timeRevenue trends, order volume
Bar chartCategory comparison barsProduct comparisons, channel split
TableTabular data with sortable columnsTop products, customer lists

Premade templates

Start from a template instead of a blank canvas:

  • Executive Summary — High-level KPIs and trends
  • Sales Performance — Revenue, orders, AOV deep-dive
  • Product Analysis — Top/bottom products, category breakdown
  • Customer Insights — LTV, segments, repeat rates
  • Marketing Overview — Ad spend, ROAS, channel performance
  • Performance Summary — WTD/MTD/YTD with WoW and YoY comparisons

Visibility & sharing

  • Private — Only visible to you
  • Shared — Visible to all team members in your organisation

Toggle visibility when creating or editing a report. Shared reports appear in everyone's report list.

Scheduled emails

Automate report delivery to your team's inbox on a schedule.

🔒 Prerequisites
Editor Admin

Creating a schedule

  1. Go to Schedules in the sidebar
  2. Click New Schedule — a slide panel opens from the right
  3. Fill in the form:
FieldDescription
Schedule NameA label for this schedule (e.g. "Weekly Sales Digest")
ReportSelect which saved report to send
Subject LineOptional — leave blank for auto-generated
FrequencyHourly, Daily or Weekly
TimingFor hourly: minutes past the hour (:00, :15, :30, :45). For daily/weekly: specific time (e.g. 09:00). For weekly: also choose the day.
RecipientsAdd email addresses individually, or click "Add all org users" to include your entire team
Schedule Editor — Slide Panel
Screenshot: The slide-in panel showing schedule name, report selector, frequency toggle (Hourly/Daily/Weekly), time picker and recipient pills

What gets sent

Each scheduled email is a mobile-friendly HTML report containing:

  • Today vs Yesterday — Hero section with revenue, orders and AOV comparison
  • Hourly breakdown — Visual bars showing revenue distribution across hours
  • WTD / MTD / YTD tables — Key metrics with week-over-week and year-over-year percentage changes

Managing schedules

From the schedules list page you can:

  • Toggle active/paused — Click the green/grey status dot to pause or enable
  • Preview — Click the eye icon to see exactly what the email will look like (opens in a new tab)
  • Send Now — Click the play icon to trigger an immediate send for testing
  • Edit — Click the pencil icon to modify settings
  • Delete — Click the trash icon (requires confirmation)
ⓘ
The scheduler checks for due emails every 60 seconds. There's a 30-minute deduplication window to prevent double sends if the server restarts.

AI Studio

Generate professional product photography, backgrounds, virtual models and video — all powered by AI.

🔒 Prerequisites
Viewer Editor Admin

Available tools

AI Studio offers 11 creative tools, each designed for a specific task:

ToolWhat it doesCredit cost
Studio WhitePlace products on clean white or gradient backgrounds5 credits (x quality)
Remove BackgroundIsolate products with transparent or solid colour backdrop5 credits (x quality)
Product SwapReplace a product in an existing scene5 credits (x quality)
Flat LayGenerate overhead flat-lay compositions5 credits (x quality)
LifestylePlace products in realistic lifestyle settings5 credits (x quality)
Beauty ShotCosmetics and beauty product photography5 credits (x quality)
Add ModelAdd virtual models wearing or holding products10 credits (x quality)
Change ColourRecolour products for variant mockups5 credits (x quality)
CustomWrite any prompt for custom creative output5 credits (x quality)
Ad CreativesGenerate social media ad images with copy10 credits (x quality)
Product VideoCreate short videos from a single image15 credits (fixed)

Quality settings & credit multipliers

Image tools let you choose output resolution. Higher quality costs more credits:

  • 1080p — Standard (1x credit cost)
  • 2K — High quality (2x credit cost). E.g. a Studio White shot costs 10 credits.
  • 4K — Ultra quality (3x credit cost). E.g. a Studio White shot costs 15 credits.

Workflow

  1. Select a tool from the AI Studio home screen
  2. Upload a product image (or select from your Shopify catalogue)
  3. Configure options — angle, background, prompt, quality
  4. Click Generate
  5. Wait a few seconds (videos take longer, up to 2 minutes)
  6. Download the result or generate another variation
AI Studio — Tool Selection
Screenshot: AI Studio home screen showing cards for each tool — Studio White, Remove BG, Product Swap, etc.

AI Credits

Credits are the currency for all AI operations in Nuso.

Credit cost reference

OperationBase costNotes
Studio image (most tools)5 creditsMultiplied by quality: 1080p x1, 2K x2, 4K x3
Ad creative10 creditsMultiplied by quality setting
Virtual model10 creditsMultiplied by quality setting
Product video15 creditsFixed cost regardless of quality
Alt text (SEO)1 creditPer image
Text generation1 creditPer generation
Toby AI assistant0.2+ creditsMinimum 0.2 per message. 1 credit = 5,000 tokens processed

Getting credits

Monthly credit subscriptions

Subscribe to a recurring credit plan. Credits are topped up automatically on each billing date:

  • 100 credits/month
  • 500 credits/month
  • 1,000 credits/month

You can upgrade between tiers at any time from the Billing page. The change is prorated — you'll only pay the difference.

One-time top-ups

Need credits right now? Buy a one-time pack that's added to your balance immediately:

  • 50 credits
  • 150 credits
  • 350 credits

Credit warnings

You'll be notified as your balance drops:

Balance remainingNotification
75% of monthly allowanceIn-app notification
50%In-app notification
25%In-app notification
20% or belowIn-app notification + email alert (once per 24h)
10%In-app notification
0%Operations blocked until credits are added

Checking your balance

Your current credit balance is visible on the Billing page. Admins can purchase more credits or change the subscription tier from there.

ⓘ
Credit purchases and subscription changes are Admin-only. If you need more credits, ask an admin on your team to top up from the Billing page.

Image & video tools

Detailed guide for each AI Studio tool.

🔒 Prerequisites
  • AI Credits in your balance
  • A product image to work with (upload or select from Shopify)

Studio White

Creates clean, e-commerce-ready product shots on white or gradient backgrounds. Best for main product listing images.

  1. Select Studio White from AI Studio
  2. Upload your product image or select from your Shopify catalogue
  3. Choose angle: front, 3/4, overhead, or custom
  4. Select background: pure white, light grey, gradient
  5. Choose quality (1080p / 2K / 4K)
  6. Click Generate

Remove Background

Removes the background from any product image. Output is either a transparent PNG or your choice of solid colour.

  1. Select Remove BG
  2. Upload your image
  3. Choose output: transparent or solid colour
  4. Click Generate

Product Swap

Have a great lifestyle scene but want your product in it instead? Upload the scene image and your product image — the AI replaces the product while preserving lighting, shadows and perspective.

Lifestyle & Flat Lay

Generate realistic lifestyle shots or overhead flat-lay compositions. Describe the setting you want (e.g. "on a marble kitchen counter with morning sunlight") and the AI creates the scene around your product.

Virtual Models

Add AI-generated models wearing or holding your products. Specify model characteristics and poses to match your brand aesthetic. Costs 10 credits base (before quality multiplier).

Product Video

Turn a single product image into a short animated video. Great for social media stories and product pages. Videos cost 15 credits (fixed) and take up to 2 minutes to generate.

Custom Prompts

Write any creative prompt for unique outputs that don't fit the preset tools. For example: "My product placed on a mossy rock in a forest with soft golden hour lighting". Full creative control.

Ad Creatives

Generate social media ad images with your product. Designed for Instagram, Facebook and TikTok ad formats. Costs 10 credits base.

Toby AI assistant

Ask Toby anything about your store data and get instant, data-backed answers.

🔒 Prerequisites
Viewer Editor Admin

What Toby knows

Toby has access to your real store data and can answer questions like:

  • "What was my best-selling product last month?"
  • "How does this week compare to the same week last year?"
  • "Which customers have the highest lifetime value?"
  • "What's my average order value trend over the last 90 days?"
  • "Are any products running low on stock?"
  • "What did my MMM results show about Google Ads effectiveness?"

How it works

When you ask Toby a question, it pulls context from your orders, products, customers, stock levels and MMM results. Every response is grounded in your actual data — Toby doesn't guess or make up numbers.

Tips for better answers

  • Be specific — "What was my revenue last week compared to the week before?" works better than "How's the business?"
  • Mention time periods — "In January" or "last 30 days" helps Toby pull the right data
  • Ask follow-up questions — Toby remembers context within the same conversation

Credits

Each message costs a minimum of 0.2 credits. Longer conversations or questions that require processing more data cost more — roughly 1 credit per 5,000 tokens processed.

Toby AI Assistant
Screenshot: Chat interface showing a user question "What was my best seller last week?" and Toby's data-backed response

Ad platforms

Connect Google Ads, Meta Ads and TikTok Ads to see all your marketing data in one place.

ℹ️
These connections feed the Marketing page. The Ad Performance page uses a separate Supermetrics setup; see Ad Performance (Supermetrics).
🔒 Prerequisites
  • Admin role in Nuso
  • Active ad accounts on Google, Meta or TikTok
  • Account admin/manager access on each ad platform
Admin to connect All roles to view

Connecting Google Ads

  1. Go to Settings → Integrations
  2. Find the Google Ads card and click Connect
  3. Click Sign in with Google to authorise via OAuth
  4. Enter your Customer ID (10-digit number from Google Ads dashboard, format: 123-456-7890)
  5. Enter your Developer Token
  6. Click Save

Connecting Meta Ads

  1. Go to Settings → Integrations
  2. Find the Meta Ads card and click Connect
  3. Click Sign in with Facebook to authorise via OAuth
  4. Enter your Ad Account ID (found in Meta Business Suite → Settings → Ad Accounts)
  5. Click Save

Connecting TikTok Ads

  1. Go to Settings → Integrations
  2. Find the TikTok Ads card and click Connect
  3. Click Sign in with TikTok to authorise via OAuth
  4. Enter your Advertiser ID (found in TikTok Ads Manager → Account Info)
  5. Click Save

Marketing dashboard

Once connected, the Marketing page shows a nested drill-down view:

  • Platform level — Total spend, impressions, clicks, CTR, CPC across all connected platforms
  • Campaign level — Click any platform to drill into individual campaigns
  • Daily stats — Trend charts for spend and performance metrics over time
Marketing Page — Platform Drill-Down
Screenshot: Marketing page showing platform rows (Google Ads, Meta, TikTok) with spend/impressions/clicks columns, one expanded to show campaigns

Disconnecting a platform

Go to Settings → Integrations, find the platform and click Disconnect. Historical data is retained — you can reconnect at any time.

Ad Performance (Supermetrics)

Ad Performance shows Meta, Google, TikTok and website (GA4) results down to campaign, ad set, ad, country and product level. Its data comes from Supermetrics, not from Settings → Integrations. This page covers what a store needs to provide and the exact Supermetrics fields Nuso uses, so you can set up a new store or reproduce our numbers in your own Supermetrics reports.

🔒 Prerequisites
  • Admin access to each ad account you want to include (Meta, Google Ads, TikTok) and to the GA4 property
  • The account IDs listed in step 1 below
  • The Ad Performance page enabled for your users (Roles & permissions)
Set up by Nuso Users with page access can view
ℹ️
Ad Performance is separate from the Ad platforms connections in Settings → Integrations. Connecting an account there doesn't turn on Ad Performance. Until Nuso has set up your store's sources, the page shows "Ad Performance isn't connected for this store" and no data.

How it works

  • Nuso pulls each store's data from Supermetrics into its own database, separately for every store. One store never sees another store's data.
  • Ad and website data syncs every 6 hours, fetching only today. Once a day (after 04:00 UTC) it re-fetches the last 3 days, which finalises yesterday and picks up the platforms' late attribution changes. After any downtime it fills the gap from the last stored day.
  • Product-level data syncs once a day (yesterday and today).
  • Creatives fully refresh once a day, which keeps Meta's and TikTok's expiring image links working (they last about 2–4 days). Between refreshes, each sync only checks the last 2 days for new ads.
  • No sync reaches further back than the last 30 days. A newly connected store starts with 30 days of history and builds forward from there.
  • Product-level data is kept as a rolling 30 days.
  • Rates such as CTR, CPC, CPM, CPA, conversion rate and ROAS aren't pulled from the platforms. Nuso calculates them from the summed counts, so they stay correct at any grouping level.

Setting up a new store

1
Collect your account IDs
  • Meta: every ad account ID to include, with the act_ prefix (e.g. act_123456789). There can be more than one. Find them in Meta Business Settings → Accounts → Ad accounts.
  • Google Ads: the 10-digit Customer ID, without dashes (1234567890).
  • TikTok: the Advertiser ID (a long number starting with 7). Find it in TikTok Ads Manager → account switcher (top right), shown under the account name.
  • GA4: the numeric Property ID, from GA4 Admin → Property details.
2
Give Nuso read access
Nuso will send you the Business Manager, email and Business Center details to grant access to. Read-only access is enough: View performance on Meta, Read only on Google Ads, Analyst on TikTok Business Center and Viewer on GA4.
3
Nuso adds the sources
Nuso adds one source per platform for your store and runs the first sync. The last 30 days usually appear within a few minutes.
4
Check the numbers
Compare yesterday's spend for each platform against its own ads manager. Use the field definitions below if you want to match Nuso's figures exactly.
⚠️
Always list specific accounts. Never use "all accounts" (for example TikTok's list.all_accounts). If the Supermetrics login has access to other brands, their spend would be counted as yours.

Fields Nuso uses

To reproduce Nuso's figures in your own Supermetrics query (Sheets, Looker Studio or the API), use the same data source, dimensions and metrics. Field IDs are shown as Supermetrics lists them. Report one day per row and keep the dimensions listed for each dataset.

Meta Ads — data source FA

DatasetDimensionsMetrics
Ad (daily) Date, Countryname, adcampaign_name, adset_name, ad_name, campaignobjective Spend cost · Impressions impressions · Clicks outbound_clicks · Purchases offsite_conversion_fb_pixel_purchase · Revenue offsite_conversion_value_fb_pixel_purchase · Adds to cart actions_add_to_cart · Landing page views landing_page_views · Video: video_play_actions, action_video_view (3-second views), video_thruplay_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_p100_watched_actions
Product (daily) Date, adcampaign_name, product_id cost, outbound_clicks, offsite_conversion_fb_pixel_purchase, offsite_conversion_value_fb_pixel_purchase, impressions, actions_add_to_cart
Creatives ad_id, ad_name, adset_name, adcampaign_name, adstatus, adcreative_id, creative_object_type, ad_creative_title, ad_creative_body, ad_creative_thumbnail_url, ad_creative_image_url, creative_link_url, promoted_post_permalink_url, video / image / carousel asset fields cost, plus video_average_watch_time and the video_play_curve_actions retention buckets
  • Purchases are website pixel purchases. Don't use offsite_conversions: it adds up every pixel event, which pushes conversion rate above 100%.
  • Clicks are outbound clicks (clicks that leave Meta), not all clicks.
  • Meta can't split by country and product at the same time, so product data has no country.

Google Ads — data source AW

Setting: asset_level = ASSET_LEVEL_DEFAULT.

DatasetDimensionsMetrics
Ad group (daily) Date, Campaignname, Campaignstatus, Adgroupname, Countryname Impressions, Clicks, Cost, Conversions, Conversionvalue
Campaign totals Date, Campaignname, Campaignstatus, then the same with Countryname Impressions, Clicks, Cost, Conversions, Conversionvalue
Conversion categories Date, Campaignname, ConversionCategory Conversions, Conversionvalue (rows where the category is "Purchase") · EstimatedTotalConversions (rows where the category is "Add to cart")
Product (daily) Date, Campaignname, product_title Impressions, Clicks, Cost, Conversions, Conversionvalue
  • Google Ads data stops at ad group level; there's no ad-level breakdown.
  • Performance Max has no ad groups, so the ad group report leaves it out. Nuso also pulls campaign totals and stores whatever the ad groups don't account for under the ad group (campaign level). Campaign and platform totals therefore match Google Ads.
  • Purchases are Purchase-category conversions. Google's Conversions counts every primary conversion action, which can include sign-ups or page views. Where the account has a Purchase-category action, Nuso scales each ad group's daily conversions and conversion value down to the purchase share, so Google matches Meta and TikTok. If the account has no Purchase category, the figures are left as Google reports them. Product (Shopping) rows are not restated.
  • Google has no add-to-cart metric. Nuso uses conversion actions in the Add to cart category, so the account needs one (for example a GA4 import). Without one, adds to cart show as 0.
  • That conversion data can't be split by country or ad group, so each campaign's daily adds to cart are spread across its ad groups and countries in proportion to clicks.

TikTok Ads — data source TIK

DatasetDimensionsMetrics
Ad (daily) date, campaign_name, adgroup_name, ad_name, ad_id Spend cost · impressions · clicks · Purchases complete_payment · Revenue total_complete_payment_rate (total complete payment value) · Adds to cart web_event_add_to_cart · Landing page views total_landing_page_view · Video: video_play_actions, video_watched_2s, video_watched_6s, video_views_p25, video_views_p50, video_views_p75, video_views_p100
Country (daily) date, campaign_name, adgroup_name, ad_name, country_name cost, impressions, clicks, total_landing_page_view, the video fields above. No purchases, revenue or adds to cart.
Creatives ad_id, ad_name, adgroup_name, campaign_name, ad_text, call_to_action, landing_page_url, post_url, video_id, video_thumbnail_url, image_mode average_video_play, cost
  • Include ad_id. Without it, Supermetrics can pick TikTok's Smart+ report, which rejects the purchase metrics.
  • Don't use purchase / total_purchase_value: those are in-app events and are always 0 for a web store. Don't use conversions either: it's whatever each campaign optimises for, so it mixes different events.
  • Adding country_name switches TikTok to its audience report, which rejects the purchase metrics. That's why country is a separate dataset with delivery metrics only, and why country views show "—" for conversion metrics.
  • TikTok's hook and hold milestones are 2-second and 6-second views, where Meta uses 3-second views and ThruPlays.

Website (GA4) — data source GAWA

DatasetDimensionsMetrics
Sessions (daily) date, sessionDefaultChannelGroup, sessionSourceMedium, sessionCampaignName, country totalUsers, newUsers, sessions, engagedSessions, screenPageViews, itemsViewed, addToCarts, checkouts, ecommercePurchases, purchaseRevenue, conversions (shown as Key events)
Hourly totals date, hour Same metrics as the daily dataset. Used to compare "today so far" fairly against earlier days.

Windsor.ai as the data source

Each platform can pull from Supermetrics or from Windsor.ai, set per store and platform. Windsor has no monthly row quota. Nuso uses the same definitions through both, and on overlapping days Windsor matched the stored Supermetrics figures (Meta and GA4 exactly). Differences when a platform uses Windsor:

  • Google Ads: Performance Max is included, with its country, under the ad group (campaign level).
  • TikTok: country views include purchases, revenue and ROAS. Through Supermetrics, TikTok's country report only gave delivery metrics. TikTok creatives also include a playable video.
  • Meta creatives: video files and thumbnails come from the ad's Instagram post. Windsor's retention curve stops at 14 seconds, so the full curve still comes from Supermetrics once a day when that source is available.
  • Country names are stored with the same spellings as before (for example "United States of America"), so countries line up across platforms and dates.

Data coverage

Some metrics were only collected part-way through a store's history. When the selected dates or the comparison period reach back before that point, the page shows a coverage note, and comparisons for those metrics show n/a rather than a misleading "new" or +900%. Typical cases:

  • Meta: landing page views and video metrics only from when those fields were added.
  • TikTok: purchases, revenue, adds to cart, landing page views, video and ad-level detail only from the switch to TikTok's website-purchase fields. Older history used fields that counted the wrong events.
  • Google Ads: country split, adds to cart and Performance Max spend only from when each was added.

A superadmin can fix this from the coverage note with Re-pull history with current fields. It re-fetches each flagged platform's history before the 30-day window, oldest month first, in the background. It's a one-off: the regular sync still only pulls the last 30 days. If it stops (for example on a Supermetrics error), the note shows how far it got, and pressing the button again resumes from there.

If a platform's last sync failed, or its data is two or more days behind, a warning shows above the table.

Calculated metrics

MetricCalculation
CTRClicks ÷ impressions
CPC / CPMSpend ÷ clicks / spend ÷ impressions × 1,000
PurchasesWebsite purchases the platform attributes to the ad: Meta pixel purchases, TikTok complete payments, Google Purchase-category conversions. Website (GA4) Key events are every key event, not orders.
CPASpend ÷ purchases
Conversion ratePurchases ÷ clicks (ads) · purchases ÷ sessions (website)
ROASRevenue ÷ spend
AOVRevenue ÷ purchases (ads: attributed revenue; website: GA4 revenue)
LP view rateLanding page views ÷ clicks. A low rate points to a slow page or accidental clicks.
ATC rateAdds to cart ÷ landing page views (ads) · adds to cart ÷ sessions (website)
Cost / ATCSpend ÷ adds to cart
Cart → purchasePurchases ÷ adds to cart
Spend shareA creative's spend ÷ total spend of everything in view (Creatives tab)
Hook rate3-second views ÷ impressions (TikTok: 2-second views). How well the opening stops the scroll.
Hold rateThruPlays ÷ 3-second views (TikTok: 6-second ÷ 2-second views). Of the people hooked, how many kept watching.
Watched 50%Plays reaching 50% ÷ video plays
Completion rate100% views ÷ video plays
Engagement rateEngaged sessions ÷ sessions

Troubleshooting

"Ad Performance isn't connected for this store"

No sources have been added for your store yet. Complete steps 1–2 above and contact us.

One platform stopped updating

Supermetrics has probably lost access to that account, for example because the access was removed or the account was moved. Nuso keeps the days it already has rather than overwriting them with zeros. Re-grant access and let us know.

Numbers don't match the ads manager

Check the attribution and the metric definitions above. Meta clicks are outbound clicks, and purchases are website pixel purchases. Figures for the last 3 days can still change as platforms update them.

"Supermetrics monthly row-quota reached"

The shared Supermetrics allowance has run out for the month. The data already stored is unaffected, and syncing resumes automatically when the quota resets.

Marketing Mix Modelling

Measure the true impact of each marketing channel on your revenue using statistical modelling.

🔒 Prerequisites
Viewer Editor Admin

What is MMM?

Marketing Mix Modelling uses statistical regression to estimate how much revenue each marketing channel truly drives — independent of platform-reported ROAS. Unlike attribution models, MMM accounts for:

  • Organic growth — Revenue that would happen without any marketing
  • Seasonality — Natural demand fluctuations (weekends, holidays, payday effects)
  • Cross-channel effects — How channels influence each other
  • Diminishing returns — The point at which extra spend stops generating proportional revenue

Running a model

  1. Go to MMM in the sidebar
  2. Click New Model Run
  3. Select the channels to include (Google, Meta, TikTok, etc.)
  4. Choose the date range (longer = more accurate; minimum 60 days recommended)
  5. Optionally add external variables (e.g. weather, promotions)
  6. Click Run Model
  7. Results arrive within a few minutes

Understanding results

  • Channel contribution chart — Shows what percentage of revenue each channel drives
  • Response curves — Visualises diminishing returns per channel — where your spend stops being efficient
  • Budget optimiser — Suggests how to reallocate your budget across channels to maximise revenue

MMM run slots

Each model run consumes one slot. You can purchase additional slots (5 at a time) from the Billing page. Slots never expire — use them whenever you're ready.

MER & blended metrics

Track your Marketing Efficiency Ratio across all channels.

🔒 Prerequisites
Viewer Editor Admin

What is MER?

MER = Total Revenue / Total Marketing Spend

Unlike platform-specific ROAS (which is inflated by attribution overlaps — multiple platforms claiming the same sale), MER gives you a single, unbiased number for how efficiently your marketing budget is working.

Why it matters

If Google Ads reports 5x ROAS and Meta reports 4x ROAS, that doesn't mean your overall return is 4.5x. They're both claiming credit for overlapping conversions. MER cuts through this noise by looking at the simple, honest ratio.

Using the MER page

The MER page shows your blended MER over time. Use this alongside MMM results to make budget decisions based on real performance, not platform vanity metrics. Track whether your marketing is becoming more or less efficient as you scale spend.

Product feeds

Publish your synced Shopify catalogue as live product feeds for ChatGPT, Google Shopping and Meta — always up to date, no manual exports.

🔒 Prerequisites
Editor Admin

What are product feeds?

A product feed is a machine-readable file describing your catalogue, which shopping channels fetch on a schedule to keep their copy of your products current. Nuso generates feeds directly from your synced Shopify catalogue and serves each one at a secret URL:

https://nuso.co.uk/feeds/<token>/products.jsonl

Each feed is also available as .csv and .tsv at the same URL — just swap the extension. The feed is regenerated on every fetch from the product data captured by the 30-minute sync, so a scheduled import on the channel side always receives your current catalogue.

⚠
Treat feed URLs as secrets. Anyone with the URL can read your catalogue — there's no additional authentication. Only share it with the channel that needs it. Regenerating or deleting a feed invalidates its URL immediately.

Where to find it

Go to Marketing → Feeds in the sidebar to create and manage feeds. There's also a quick copy card in Settings → Integrations for grabbing a feed URL. Feed URLs are visible to Editors and Admins.

Marketing → Feeds
Screenshot: The Feeds page showing a list of named feeds with channel preset badges and copy-URL buttons

Channel presets

When you create a feed, pick a preset and Nuso maps your catalogue to that channel's expected columns and values:

PresetSpecFormats
ChatGPTOpenAI product feed specJSONL, CSV, TSV
Google ShoppingGoogle Merchant Center product data specCSV, TSV
MetaFacebook & Instagram catalogue specCSV, TSV

Feed rules

Each feed has its own rules, so you control exactly which products go to each channel:

  • Include or exclude by product tag — e.g. only products tagged feed:google, or everything except sample
  • Include or exclude by product type — e.g. exclude gift cards
  • Include or exclude by vendor — e.g. only your own-brand products
  • Exclude out-of-stock items — optionally drop variants with no available inventory

You can create multiple named feeds per store — for example a full-catalogue feed for ChatGPT and a curated bestsellers feed for Google Shopping.

Connecting to ChatGPT

1

Create a feed with the ChatGPT preset

Go to Marketing → Feeds, click New Feed, choose the ChatGPT preset, name it and set any rules.

2

Copy the CSV URL

Click the copy button next to the .csv URL. Copy it exactly and whole — ChatGPT's URL importer accepts the CSV feed but rejects the JSONL URL in this flow.

3

Paste into ChatGPT

In ChatGPT's Connect your feed via URL screen, paste the URL. Leave the Basic auth username and password fields empty — the secret is in the URL itself.

4

Preview and verify

Use the preview to confirm your products load with titles, prices and images before going live.

5

Set a daily import schedule

Choose a daily import so ChatGPT re-fetches the feed regularly. Every fetch gets the current catalogue automatically.

What's included in a feed

  • Active products published to the Online Store channel, with a price and at least one image
  • One row per variant, grouped under the parent product
  • Sale price — derived from the compare-at price when one is set
  • Availability — in_stock, out_of_stock or backorder based on inventory
  • GTIN — included only when the variant's barcode is a valid GS1 code (invalid barcodes are omitted rather than sent)

Troubleshooting

"Connection failed" on the channel side

This is almost always the URL. For ChatGPT's URL-connect flow, use the .csv URL — the JSONL URL fails validation there — and make sure it's copied whole, as a truncated URL will fail. Copy it again from the Feeds page using the copy button.

Products missing from the feed

Check the product is Active in Shopify, published to the Online Store, and has at least one image and a price. Also check your feed rules — a tag, type or vendor exclusion may be filtering it out, and the out-of-stock option removes unavailable variants.

Brand-new products not appearing

New products appear within roughly 30 minutes — they're picked up by the next product sync. If a product still hasn't appeared after an hour, verify it meets the inclusion criteria above.

Feed URL leaked or shared too widely

Regenerate the feed from the Feeds page. This invalidates the old URL immediately — update the URL on the channel side afterwards. Deleting a feed also invalidates its URL.

Managing your team

Add team members, assign roles and control access.

🔒 Prerequisites
  • Admin role required to manage team members
Admin only

Adding a team member

  1. Go to Users in the sidebar (or click your avatar → Users)
  2. Click Add User
  3. Enter their name and email
  4. Choose a role: Viewer, Editor or Admin (see Roles & permissions)
  5. Set a temporary password (at least 8 characters — they should change it after first login)
  6. Click Create

The user can immediately log in at app.nuso.co.uk with their email and the password you set.

Users Page — Team List
Screenshot: Users page showing a table of team members with name, email, role badge and action buttons

Managing existing users

  • Change role — Click the edit button, select a new role and save. The change takes effect immediately.
  • Reset password — Click the password icon to set a new password for a user who's locked out.
  • Disable account — Toggle the user's active status to temporarily suspend them without deleting.
  • Delete user — Permanently remove a user and all their sessions. Note: you cannot delete your own account.
⚠
We recommend having at least two admins in your organisation. If the only admin's account is locked, no one can manage billing or users.

Roles & permissions

Nuso has three user roles. Each role controls what a user can see and do.

Role comparison

CapabilityViewerEditorAdmin
View all dashboards and analytics✓✓✓
View shared reports✓✓✓
Use AI Studio and Toby✓✓✓
Browse data warehouse (read-only)✓✓✓
Change own password✓✓✓
Create and edit reports✗✓✓
Create and edit schedules✗✓✓
Edit product data and store config✗✓✓
Add/edit/delete team members✗✗✓
Manage billing and subscription✗✗✓
Purchase AI credits and top-ups✗✗✓
Connect/disconnect Shopify and ad platforms✗✗✓
Change org preferences (currency, timezone)✗✗✓

Viewer

Read-only access to all dashboards, reports and AI tools. Viewers cannot create, edit or delete anything. Ideal for stakeholders, investors, or team members who need visibility without modification rights.

Editor

Everything a Viewer can do, plus create and edit reports, schedules, and product data. Editors cannot manage users, billing, or integrations. Ideal for day-to-day team members who create reports and use AI tools.

Admin

Full control of the organisation including team management, billing, integrations and all settings. The first user created during onboarding is always an Admin. You need at least one Admin at all times.

ⓘ
Role changes take effect immediately. When a user's role is changed, their next page load will reflect the new permissions. Active sessions are updated automatically.

Plans & pricing

Nuso offers monthly and annual subscription plans with AI credits available separately.

Admin to purchase All roles to view status

Free trial

Every new organisation gets a 7-day free trial with full access to all features. No credit card required. When the trial ends, an admin needs to subscribe to continue using Nuso. Data is retained during the gap — nothing is deleted.

Subscription plans

  • Monthly — Pay month-to-month, cancel any time
  • Annual — Pay yearly at a discounted rate

Both plans include full access to: all analytics pages, reports, scheduling, marketing tools, Toby AI, warehouse, and team management. The only difference is billing frequency and price.

You can switch between monthly and annual at any time. Changes are prorated.

AI Credits

AI credits are purchased separately from the main subscription. See AI Credits for full details.

MMM run slots

Marketing Mix Modelling runs use dedicated slots. Purchase 5 slots at a time from the Billing page. Slots never expire.

For current prices, visit nuso.co.uk/pricing.

Managing your subscription

Upgrade, downgrade or cancel from the Billing page.

Admin only

The Billing page

Go to Billing (sidebar or avatar menu). Here you'll see:

  • Current plan and subscription status
  • Trial days remaining (if applicable)
  • AI credit balance and monthly allowance
  • MMM run slots available
  • Recent invoices
Billing Page
Screenshot: Billing page showing subscription card, credit balance card, and invoice history table

Subscribing

  1. Go to Billing
  2. Click Subscribe or Choose Plan
  3. Select Monthly or Annual
  4. Complete checkout via Stripe (card details)
  5. Your subscription activates immediately and triggers a full 2-year data backfill

Switching plans

Click Switch to Annual or Switch to Monthly. The change is prorated — you'll be credited for unused time on your current plan and charged the difference for the new one.

Managing payment methods

Click Manage Subscription to open the Stripe customer portal. From there you can update your card, view invoices, and download receipts.

Cancelling

You can cancel from the Billing page at any time. Your access continues until the end of the current billing period. After that, your account is locked (but data is kept). Resubscribe any time to regain access.

Failed payments

If a payment fails:

  1. You'll receive an email with a link to update your payment method
  2. Stripe retries automatically over 7 days
  3. During this time you'll see a "past due" banner but can still use the app
  4. If all retries fail after 7 days, your subscription is cancelled and the account is locked
⚠
Only Admins can manage billing. If you need to update payment details or change plans, ask an admin on your team.

Integrations

Connect your Shopify store and advertising platforms from the Settings page.

Admin only

Shopify

Your primary data source. See Connecting Shopify for the full setup guide. From Settings you can:

  • View connection status and store URL
  • Test the connection
  • Update API credentials (e.g. if you regenerated the token)
  • Add additional Shopify stores (multi-store support)

Google Ads

Connect via OAuth or manual credentials. You'll need your Customer ID (10-digit, found in Google Ads top-right) and Developer Token. Once connected, ad spend and performance data syncs daily.

Meta Ads

Connect via OAuth. You'll need your Ad Account ID (found in Meta Business Suite → Settings → Ad Account Information). Campaign data syncs daily.

TikTok Ads

Connect via OAuth. You'll need your Advertiser ID (found in TikTok Ads Manager → Account Info). Campaign data syncs daily.

Disconnecting

Click Disconnect on any integration to remove it. Historical data is preserved — reconnect any time to resume syncing.

Preferences

Customise your organisation's display settings.

Admin only

Currency

Set your display currency (default: GBP). This changes how revenue and monetary values are formatted throughout the app. Common options: GBP, USD, EUR, AUD, CAD.

Timezone

Set your organisation's timezone (default: Europe/London). This affects how "Today" is calculated and how dates appear throughout the app.

Chart colours

Customise the colour palette used in charts and graphs. Set primary, secondary and accent colours to match your brand.

ⓘ
Preferences are organisation-wide and affect all team members. Changes apply immediately.

Data warehouse

Run SQL queries directly against your data and export results as CSV.

🔒 Prerequisites
Viewer Editor Admin

SQL console

Write and run SQL queries against your organisation's data. The editor includes syntax highlighting. Click Run to execute and see results in a table below.

Table browser

The left panel lists all available tables. Click a table name to see its columns and data types. Key tables include:

  • orders — All Shopify orders with line items
  • products — Product catalogue
  • daily_stats — Daily aggregated metrics
  • hourly_stats — Hourly revenue and order data
  • ad_daily_stats — Daily ad platform data (if connected)

CSV export

After running a query, click Export CSV to download results. Useful for custom analysis in Excel or Google Sheets.

⚠
The warehouse is read-only. You can query data but cannot modify, insert or delete records.

Contact us

We're here to help. Reach out through any of these channels.

In-app support chat

The fastest way to get help. Click the Support icon in the sidebar to open the chat widget. Start a new conversation with a subject line and message. Our team typically responds within a few hours during UK business hours (Mon–Fri, 9am–6pm GMT).

Support Chat Widget
Screenshot: The support chat widget showing a conversation list and chat thread

Email

Send us an email at support@nuso.co.uk. Include your organisation name and a clear description of the issue.

Frequently asked questions

How do I reset my password?

If you're logged out, click Forgot password on the login page. If you're logged in, you can change your password from your profile. Admins can also reset passwords for any team member from the Users page.

My data isn't showing up

Check these in order:

  1. Go to Settings and verify your Shopify connection shows "Connected"
  2. If you just connected, look for a progress banner — data import may still be running (2–5 minutes)
  3. Ensure all six required API scopes are enabled in your Shopify custom app
  4. If scopes were added after initial setup, you may need to uninstall and reinstall the Shopify custom app

I can't access certain features

Your access depends on your role:

  • Viewers — Read-only access. Can't create reports, edit settings, or manage users.
  • Editors — Can create reports and schedules, but can't manage users or billing.
  • Admins — Full access to everything.

Ask an admin to upgrade your role if you need more access.

My trial expired

After the 7-day trial, you need an active subscription. Any admin can subscribe from Billing. Your data is preserved — nothing is deleted during the gap.

I was charged but my account is locked

This can happen if a payment retry succeeded after an initial failure. Try logging out and back in. If the issue persists, contact support@nuso.co.uk and we'll sort it immediately.

AI operations aren't working

Check your credit balance on the Billing page. If it's zero, you'll need an admin to purchase more credits or a top-up. Also ensure your Shopify store is connected (some AI features require store data).

Scheduled emails aren't arriving

Check these:

  1. Ensure the schedule is enabled (green dot, not grey)
  2. Verify the recipient email addresses are correct
  3. Check spam/junk folders — emails come from email@nuso.co.uk
  4. Try the Send Now button to test immediately

Metrics Glossary

Definitions for every metric used across the Today, Overview, Finance, Customers, and Catalogue dashboards. All monetary values are in your store's configured currency.

= Matches Shopify Analytics definition

Revenue & Sales

MetricDefinitionTax
Gross Sales Subtotal + discounts added back. Revenue before discounts and returns are subtracted.Excludes tax
Discounts Total value of discount codes and automatic discounts applied to orders.N/A
Returns Refund amounts processed in the period. Uses the refund processing date (refunded_at), not the original order date.N/A
Net Sales Gross Sales − Discounts − Returns. Revenue after all deductions but before shipping and tax.Excludes tax
Shipping Shipping charges collected from customers.N/A
Taxes VAT/GST collected on orders. For tax-inclusive stores (UK/EU), this is extracted from the subtotal.—
Total Sales Net Sales + Shipping + Taxes. The total amount collected from customers.Includes tax
Orders Count of orders with financial_status 'paid' or 'partially_refunded'. Excludes voided and pending.N/A

Margin & Profitability

MetricDefinitionTax
COGS (Cost of Goods Sold)Sum of (variant cost price × quantity) for each line item on kept orders (paid or partially refunded — fully refunded orders excluded), so it matches Product Revenue (ex-tax). Cost priority: Shopify variant cost ("Cost per item") → factory_cost_price metafield → 0.Excludes tax
Product Revenue (ex-tax)What the customer paid for products, net of line-level discounts, with product tax stripped out. Calculated per line item: (price × qty) − discount allocations − per-line tax. Counts kept orders only (paid or partially refunded — fully refunded orders excluded): it is the margin base, matched with COGS. Consistent across tax-inclusive and tax-exclusive stores.Excludes tax
Gross MarginProduct Revenue (ex-tax) − COGS. The profit after cost of goods but before shipping, tax, and operating expenses.Excludes tax
Gross Margin %(Product Revenue ex-tax − COGS) ÷ Product Revenue ex-tax × 100. Both numerator and denominator exclude tax, so the percentage is tax-neutral and reflects the true product margin.Excludes tax
Margin Per OrderGross Margin ÷ Orders. Average profit per order before operating costs.Excludes tax
Markdown SalesProduct revenue from line items sold below their variant's compare-at price at the time of sale (line price, before order-level discounts). Product-grain, day grain.Includes tax (line price)
Markdown Mix %Markdown Sales ÷ product revenue × 100 — the share of product sales sold on markdown. Changes shown in percentage points.Tax-neutral (same basis top and bottom)
Markdown Margin %(Markdown revenue ex-tax − markdown COGS) ÷ markdown revenue ex-tax × 100. Gross margin on lines sold below compare-at. Changes in percentage points.Excludes tax
Full-Price Margin %(Full-price revenue ex-tax − full-price COGS) ÷ full-price revenue ex-tax × 100, where full price = all product lines minus markdown lines. Changes in percentage points.Excludes tax

Hour-aligned comparisons

The Overview's Hour aligned toggle (on by default) applies when the selected range includes today. Only completed hours are compared: today and the comparison day that lines up with it are both cut at the end of the last completed hour (store timezone), so the hour in progress is left out of both sides, and any later comparison days are left out too. E.g. Week to date at 10:30 on a Wednesday compares Mon–Tue plus Wed 00:00–10:00 with the same days and hours of the comparison week; a range running past today (e.g. the current quarter) compares only up to the matching day and hour. It applies to the KPI cards, the daily chart's final comparison point and the Country table. Hourly-tracked values (orders, sales, GMV, COGS, new customers, duties) are summed to that hour; values only stored per day (discounts, returns, shipping, taxes, markdown) are scaled by that day's share of sales up to the cut-off hour. With the toggle off, comparison periods always use whole days.

Catalogue & Inventory

Product-level metrics on the Catalogue and Reorder pages. All margin percentages are net of VAT so they read consistently with the sales-margin metrics above; for tax-inclusive stores (UK/EU) VAT is stripped from the selling price, while tax-exclusive stores (US) use the price as-is.

MetricDefinitionTax
Margin % (Catalogue)Actual realised margin on units sold in the period: (Product Revenue ex-tax − COGS) ÷ Product Revenue ex-tax × 100. Uses the average price actually achieved, so discounts and markdowns on real sales are reflected.Excludes tax
Stock MarginThe margin locked in the inventory currently on hand, valued at today's selling price: (Stock @ Current ex-VAT − Stock @ Cost) ÷ Stock @ Current ex-VAT × 100. VAT is stripped from the selling price using the product's own realised tax rate (or a 20% default for products with no sales in range) so it sits on the same ex-tax basis as Margin %. Only counts products with a cost on both sides of the ratio.Excludes tax
Stock @ CostOn-hand tracked units × unit cost ("Cost per item"). The cash value of inventory at what you paid for it.N/A
Stock @ Full PriceOn-hand tracked units × full (compare-at / RRP) price. Retail value of inventory before any markdown — a gross retail figure shown as displayed to customers.Retail (incl. tax where applicable)
Stock @ CurrentOn-hand tracked units × current selling price. Retail value of inventory at today's prices; shown gross, as displayed to customers. (Stock Margin strips VAT from this figure before computing the ratio.)Retail (incl. tax where applicable)
Revenue (product panel)What customers actually paid for the product: (price × qty) − discount allocations (incl. order-level discount codes), plus tax on tax-exclusive stores; paid and partially-refunded orders only, bucketed by the store's local day. Summed from daily product stats over the panel's date range (top-bar picker). The hourly chart, Top countries table, catalogue grid and product/variant exports all use this same figure, so they reconcile. The panel holds the last 6 months of daily data, so a range starting earlier is clipped to that start (the panel shows “Sales data from …”).Incl. tax for tax-inclusive stores
Units Sold (product panel)Every unit ordered over the panel's date range, including units on orders that were later fully refunded. Same base as the panel's Return Rate, so Units and Ret % always reconcile (e.g. 2 sold, 1 returned = 50%). Also used for the By day/week/month table and CSV; hourly rows use paid units.N/A
Return Rate (product panel)Line-item returns ÷ Units Sold over the panel's date range × 100. Units Sold includes fully refunded orders, so the rate can't exceed 100%.N/A
Margin (Actual) (product panel)(Average selling price ex-tax − average cost) ÷ average selling price ex-tax × 100, where average selling price = revenue ex-tax ÷ units over the panel's date range. Average cost = mean Shopify “Cost per item” across the product's costed variants.Excludes tax
Margin (RRP) (product panel)List-price margin at full price: (highest compare-at price, or highest variant price, ex-VAT − average cost) ÷ that price ex-VAT × 100. Point-in-time — not affected by the date range.Excludes tax
Total Stock (product panel)Live on-hand units across tracked variants. Not affected by the date range.N/A
Margin % (Reorder & catalogue export)List-price margin used on the Reorder page and in the catalogue .xlsx export: (selling price ex-VAT − cost) ÷ selling price ex-VAT × 100. Based on the current shelf price rather than realised sale price, so it shows potential margin at list. VAT stripped for tax-inclusive stores; US stores use the price as-is.Excludes tax

Orders & Customers

MetricDefinition
AOV (Average Order Value)GMV (Total) ÷ Orders. What the average customer pays per order, including tax and shipping.
New CustomersCustomers whose first-ever order falls within the selected period. Based on customer_id, not email.
New Customer SalesEstimated gross sales from first-time buyers. Calculated as: Gross Sales × (New Customers ÷ Total Orders). An approximation — assumes equal order value.
Returning Customer SalesGross Sales minus New Customer Sales. Revenue attributed to repeat buyers.
New Customer Mix %New Customer Sales ÷ Gross Sales × 100. What percentage of revenue comes from first-time buyers.
Returning Customer Mix %Returning Customer Sales ÷ Gross Sales × 100. What percentage of revenue comes from repeat buyers.
New / Existing Customer Revenue (Reports)Exact split used by report widgets: an order counts as New when it lands on the customer's first-order day (store-local date, from order history) — otherwise Existing. Not the ratio approximation above. Guest checkouts (no customer record) are excluded from both buckets.

Comparisons

LabelDefinition
DoD (Day over Day)Today vs yesterday, same hours. Only on the Today page.
WoW (Week over Week)Today vs same day last week (7 days ago), same hours.
YoY (Year over Year)Today vs same date last year, same hours.
Previous periodOn the Overview page: the selected date range vs the immediately preceding range of the same length.
Previous yearSame date range in the previous calendar year.

GMV & Demand

MetricDefinitionTax
GMV (Total)Gross Merchandise Value — what the customer paid, including shipping and tax, net of order-level discounts. Sum of total_price − duties for every order except cancelled or voided — orders refunded later stay in, so past days don't revise down as refunds come in (a demand metric). Does not subtract refunds. Orders, AOV and GMV (Products) use the same order basis.Includes tax
GMV (Products)What the customer paid for products including product tax, net of line-level discounts. Excludes shipping. Calculated per line item: (price × qty) − discount allocations + per-line tax (for tax-exclusive stores). Backbone metric for product performance and Catalogue Revenue.Includes tax

Country & City

MetricDefinitionTax
City GMVSum of GMV (Total) for orders shipped to that city (every order except cancelled or voided), ex duties. Same basis as country GMV, so a country's cities add up to its GMV. City is taken from the shipping address (billing address if there is no shipping country), grouped case-insensitively and shown with its most common spelling.Incl.
City shareCity GMV ÷ the country's GMV for the period × 100. Orders with no city on the address are shown in the "All other cities" row.—
City new customersCustomers whose first-ever order was shipped to that city and placed in the period (same basis as country new customers).—
Address coverageOrders with a city on the address ÷ all the country's orders × 100.—
Hourly trendFor a single-day range the country trend switches to hourly (org timezone). Hourly covers GMV, orders, AOV, new customers, gross sales and discount %; margin and return rate are daily and above only.—
Comparison (country modal)Only shown when a comparison period is selected. The modal starts with the page's date range and comparison; changing dates in the modal's own picker uses whatever comparison is selected there (none if it's off). A comparison period is never assumed. When the range is today and the comparison is a single day, it compares the same hours: today so far against the comparison day from 00:00 to the end of the current hour (same convention as the Overview header). Whole-day £ figures (gross margin £, refunds, net after returns) show no change badge in that case.—

Returns

MetricDefinition
Order Return Rate %Refunded orders ÷ orders placed in the period × 100 (matched to order date).
Unit Return Rate %Refunded units ÷ units sold × 100 (matched to order date).
Cash Return Rate %Refund value ÷ gross revenue × 100.
Units Returned (by refund date)Sum of refund line-item quantities for refunds processed on the date. "—" means unit counts weren't captured for that day's refunds (history synced before unit tracking was added); shipping-only refunds contribute no units.
Refunds vs Orders AffectedRefunds counts refund transactions; Orders Affected counts distinct orders — one order refunded twice in a day counts once.

Marketing (Marketing Trading report)

MetricDefinition
SpendTotal paid marketing spend across all ad platforms for the period (from the nightly platform sync). No country split — spend is total business only. Synced nightly, so the report covers completed days only.
ROISales ÷ Spend (blended, aka MER). Sales = GMV (Total), includes tax. Shown as a multiple (e.g. 4.20x). "—" when the period has no spend.
CPA (cost per new customer)Spend ÷ New Customers. Blended acquisition cost — all paid spend over all first-time buyers, not per-platform attribution.
pROIGross Margin ÷ Spend. Like ROI but on Gross Margin (Product Revenue ex-tax − COGS) instead of sales, so it reflects profit return on ad spend.
Platform ROAS (Optimise)Platform-reported revenue ÷ spend, as claimed by each ad platform's own attribution. Not incremental — platforms overlap and claim the same orders. Optimise tiles use calendar windows of completed days (7d / 30d ending yesterday); brand spend is excluded from All Channels.
MER (Optimise)GMV (Total) ÷ paid spend over the last 30 completed days, org-wide — same basis as ROI above. Brand spend excluded.
Platform-claimed shareSum of platform-reported revenue ÷ GMV (Total), same 30-day window. Over 100% means the platforms are double-counting conversions.

Purchase Orders

MetricDefinitionTax
Buy valueΣ (quantity ordered × unit cost) across the PO's sizes. What the order costs you from the supplier.Excludes tax
PO value (RRP)Σ (quantity ordered × RRP) across the PO's sizes. RRP is the Shopify compare-at price, falling back to the selling price; for products not in Shopify yet it is the target RRP entered on the PO. Shown as — when no size has an RRP.As priced in Shopify (includes tax for tax-inclusive stores)
Buy-in margin (BIM)Per size: (RRP ex VAT − unit cost) ÷ RRP ex VAT, with RRP ex VAT = RRP ÷ 1.2 for tax-inclusive stores (UK/EU). The PO figure is the average of the per-size margins weighted by quantity ordered.RRP ex VAT
PO value to comeΣ (max(0, quantity ordered − quantity received) × RRP). Shown on the On order, In transit and Past expected date tiles; the Delivered and Cancelled tiles show the full PO value (RRP). POs with no RRP (not in Shopify yet) count as £0.As priced in Shopify (includes tax for tax-inclusive stores)
To comeΣ ((quantity ordered − quantity received) × unit cost). Buy value still outstanding.Excludes tax
Table totals & group subtotalsSummed from size lines across every PO matching the filters (all pages). Line-level filters — product, buy type (New / Rebuy) and a product/SKU search — count only the matching lines, so a mixed PO filtered to New contributes only its new lines; PO-level filters (status, supplier, expected date) include or exclude whole POs. Total BIM is quantity-weighted over the counted lines.As per each metric

Important Notes

  • Tax handling: Gross Sales, Net Sales, COGS, Product Revenue (ex-tax), and all margin metrics — including Stock Margin and the catalogue/reorder Margin % — exclude tax. GMV (Total), GMV (Products), and Total Sales include tax. Stock @ Full Price and Stock @ Current are retail valuations shown gross. Margin calculations use an ex-tax price base so they are not inflated by VAT/GST; for tax-inclusive stores VAT is stripped from the selling price, and tax-exclusive stores use the price as-is.
  • COGS accuracy: COGS relies on the "Cost per item" field in Shopify being populated for each product variant. If cost prices are missing, COGS will be understated and margins will appear higher than reality.
  • Timezone: All dates and hours are converted to your store's configured timezone (Settings → Preferences). Hourly charts show local time, not UTC.
  • New vs Returning split: The new/returning customer sales split is an approximation based on the ratio of new customers to total orders. It assumes equal average order value between new and returning customers.
  • Returns by processing date: Returns are attributed to the date the refund was processed (refunded_at), not the original order date. This matches Shopify Analytics behaviour.