Skip to main content

The unfair advantage of knowing first.

A proactive analytics AI that surfaces opportunities and growth levers for your business without you needing to ask.

Get Started

Four ways Sovarium tells you first

  1. 01Command View

    Your business, briefed every morning

    A bespoke dashboard tailored to your role in the company and refreshed daily, with the metrics you care about and an insights feed that flags what changed.

    What’s your role?

    Explore Command View

    Good morning, Maya

    Tue 29 SeptCEO / Founder view

    Refund rate rose to 12.6% over the last 30 days, from 10.9%. EU orders fell 19% week on week, from 21 to 17, while the US and UK held steady.

    • Net revenue (last 30 days)

      £42.6K

      +1.0%vs prior 30 days

      as of 1h ago

    • Orders (last 30 days)

      356

      −1.4%vs prior 30 days

      as of 1h ago

    • Active customers

      3,184

      +0.8%vs 30 days ago

      as of 1h ago

    • Refund rate (last 30 days)

      12.6%

      +1.7ppvs prior 30 days

      as of 1h ago

    Net revenue by region

    Monthly net revenue for the US, UK and EU over the last 12 months.

    Line chart. Net revenue by month, October to September. The US runs from £18K to £28K, peaking in December; the UK from £10K to £15K; the EU grows from £7K to about £10K.

    as of 1h ago

    Orders by region

    Orders in the last 7 days against the 7 days before.

    Bar chart. Orders by region, last 7 days against the 7 before: US 44 against 45, UK 22 against 22, EU 17 against 21.

    as of 1h ago

    Insights

    Today

    • Refund rate is up 1.7 points on the prior 30 days

      12.6% of orders were refunded, against 10.9% the 30 days before.

      Last 30 days

    • EU orders fell 19% week on week

      17 orders in the last 7 days, down from 21. The US and UK held within 3%.

      Last 7 days

    Good morning, Sam

    Tue 29 SeptSales view

    14 sellers went live in the last 30 days, up from 11. Six of them sell mainly in Home & Kitchen, about twice that category’s usual monthly pace.

    • New sellers live (last 30 days)

      14

      +27.3%vs prior 30 days

      as of 1h ago

    • Active sellers (last 90 days)

      212

      +2.4%vs 30 days ago

      as of 1h ago

    • Revenue from sellers under 90 days

      £5.8K

      +12.6%vs prior 30 days

      as of 1h ago

    • First sale within 30 days

      64.3%

      +9.8ppvs prior 30 days

      as of 1h ago

    New sellers by category

    Sellers who went live in the last 90 days, by main category.

    Bar chart. New sellers in the last 90 days: Home & Kitchen 12, Fashion 8, Electronics 7, Toys & Games 5, Beauty 4, Sports & Outdoors 3.

    as of 1h ago

    New sellers live by month

    Sellers who went live each month over the last six months.

    Bar chart. New sellers live by month: April 8, May 9, June 10, July 14, August 11, September 14.

    as of 1h ago

    Insights

    Today

    • New sellers up 27% on the prior 30 days

      14 sellers went live in the last 30 days, up from 11.

      Last 30 days

    • Home & Kitchen is signing sellers at twice its usual pace

      6 of the 14 new sellers sell mainly in Home & Kitchen, against about 3 a month over the past year.

      Last 30 days

    Good morning, Priya

    Tue 29 SeptMarketing view

    Paid social returned £1.90 for every £1 spent over the last 14 days, down from £3.60 on similar spend. Email’s share of revenue rose 2.2 points to 18.4%.

    • New customers (last 30 days)

      214

      +6.0%vs prior 30 days

      as of 1h ago

    • Ad spend (last 30 days)

      £3.9K

      +2.1%vs prior 30 days

      as of 1h ago

    • Return on ad spend (last 30 days)

      4.1×

      −6.8%vs prior 30 days

      as of 1h ago

    • Email share of revenue

      18.4%

      +2.2ppvs prior 30 days

      as of 1h ago

    New customers by channel

    First orders in the last 30 days, by the channel that brought them.

    Bar chart. New customers in the last 30 days: paid search 71, organic 58, paid social 39, email 26, affiliates 20.

    as of 1h ago

    Return on ad spend by channel

    Revenue for every £1 of ad spend over the last 30 days.

    Bar chart. Return on ad spend in the last 30 days: paid search 5.1×, affiliates 3.9×, paid social 2.7×.

    as of 1h ago

    Insights

    Today

    • Paid social returned £1.90 for every £1 spent

      Down from £3.60 in the 14 days before, on similar spend.

      Last 14 days

    • Email’s share of revenue is up 2.2 points

      18.4% of revenue came through email in the last 30 days, against 16.2%.

      Last 30 days

    Good morning, Olivia

    Tue 29 SeptFinance view

    Refund rate over the last 30 days is up 15.7%, from 10.9% to 12.61%. It is the only item flagged today.

    • Gross revenue (last 30 days)

      £48.8K

      +3.0%vs prior 30 days

      as of 1h ago

    • Net revenue (last 30 days)

      £42.6K

      +1.0%vs prior 30 days

      as of 1h ago

    • Average order value (last 30 days)

      £137.1

      −4.0%vs prior 30 days

      as of 1h ago

    • Refund rate (last 30 days)

      12.6%

      +1.7ppvs prior 30 days

      as of 1h ago

    Refunds by reason

    Settled refund value by reason code over the last 30 days.

    Bar chart. Refunds in the last 30 days by reason: damaged in transit £2.1K, wrong size £1.5K, not as described £1.1K, arrived late £0.9K, changed mind £0.6K.

    as of 1h ago

    Refund rate by week

    Share of orders refunded, week by week over the last eight weeks.

    Line chart. Weekly refund rate over eight weeks: around 11% for the first four, then rising each week to 13.3% this week.

    as of 1h ago

    Insights

    Today

    • Refund rate is up 15.7% on the prior 30 days

      From 10.9% to 12.61% of orders.

      Last 30 days

    Good morning, Tom

    Tue 29 SeptOperations view

    EU on-time delivery fell to 82.4% this week, against 93.6% over the previous four, with late parcels spending 4.2 days in transit instead of 2.6. Returns logged as damaged in transit doubled, from 6 to 12.

    • Orders shipped (last 7 days)

      83

      −2.4%vs prior 7 days

      as of 1h ago

    • On-time delivery (last 7 days)

      91.6%

      −3.1ppvs prior 7 days

      as of 1h ago

    • Median dispatch time (last 7 days)

      19.5h

      +8.3%vs prior 7 days

      as of 1h ago

    • Return rate (last 30 days)

      7.8%

      +0.6ppvs prior 30 days

      as of 1h ago

    On-time delivery by region

    Share of parcels delivered by their promised date, week by week.

    Line chart. Weekly on-time delivery over eight weeks. The US holds around 96% and the UK around 95%; the EU holds near 93% until this week, when it falls to 82.4%.

    as of 1h ago

    Orders shipped by day

    Orders dispatched each day over the last 7 days.

    Bar chart. Orders shipped by day over the last 7 days: Tuesday 12, Wednesday 14, Thursday 13, Friday 12, Saturday 8, Sunday 9, Monday 15.

    as of 1h ago

    Insights

    Today

    • EU on-time delivery fell to 82.4%

      Against 93.6% over the previous four weeks. Late EU parcels spent 4.2 days in transit on average, against 2.6.

      Last 7 days

    • Returns for damage in transit doubled

      12 returns logged as damaged in transit in the last 7 days, up from 6.

      Last 7 days

    Good morning, Leah

    Tue 29 SeptCustomer Success view

    Open disputes rose to 18 from 13, and seven are for items not received. Four of this week’s nine 1-star reviews are on listings from the same EU seller.

    • Repeat purchase rate (last 90 days)

      31.2%

      +1.1ppvs prior 90 days

      as of 1h ago

    • Average review rating (last 30 days)

      4.3

      −2.3%vs prior 30 days

      as of 1h ago

    • Open disputes

      18

      +38.5%vs 30 days ago

      as of 1h ago

    • Refund requests (last 7 days)

      21

      +5.0%vs prior 7 days

      as of 1h ago

    Open disputes by reason

    Disputes still open today, by the reason the buyer gave.

    Bar chart. Open disputes by reason: item not received 7, not as described 5, damaged 4, unauthorised payment 2.

    as of 1h ago

    1-star reviews by week

    Reviews rated 1 star, week by week over the last eight weeks.

    Bar chart. 1-star reviews by week over eight weeks: between 2 and 5 a week until this week, when there were 9.

    as of 1h ago

    Insights

    Today

    • Open disputes up 38% on last month

      18 disputes are open, up from 13. Seven are for items not received.

      Today vs 30 days ago

    • One seller has four of this week’s nine 1-star reviews

      All four are on listings from the same EU seller.

      Last 7 days

  2. 02Opportunities

    Growth ideas, found for you

    Every week Sovarium surfaces concrete growth opportunities from your own data, with the estimated impact and the actions to take. Tell it what worked and what did not, and its suggestions get sharper.

    Open one of this week’s

    Explore Opportunities

    Opportunities

    Levers for growth that Sovarium finds in your data, updated once a week.

    Recover orders lost to declined cards: 34 web orders worth £4,610 went unpaid this month, and nothing reminded the buyers

    Estimated impact

    About £1.6K a month in orders now lost at payment

    How this was calculated
    Arithmetic
    38 web orders a month with a failed card × (43% − 11%) paid within a day ≈ 12 more paid orders. 12 × £135.60, the average unpaid web order = £1,627 a month.
    Assumption
    Web buyers answer an email the way app buyers answer the app’s reminder, and web cards keep failing at this month’s rate.

    Actions to take

    Email web buyers whose card fails a link back to their order within the hour. The app reminds users and failed app purchases have a 3.9x higher second payment attempt rate. Hold back one in ten at random, so the difference in paid orders shows what the email itself brought in.

    Why this came up

    52 orders in the last 30 days had their first card payment fail. Orders placed in Orion’s app get a reminder to finish paying, and 6 of those 14 were paid within a day, 43%. The website sends nothing, and 4 of its 38 were, 11%. The 34 web orders never paid were worth £4,610, £135.60 each on average. This complements the checkout accounts you are pursuing: those keep buyers after their first order, this saves the orders lost before they are paid.

    Show queryHide query
    WITH failed AS ( SELECT o.ord_id, o.src_sys_cd AS placed_on, o.ord_ccy_cd, o.amt_2, MIN(p.pmt_ts) AS first_try, MIN(p.pmt_ts) FILTER (WHERE p.pmt_stat_cd IN (2, 5)) AS paid_ts FROM marketplace.orn_ord_hdr o JOIN marketplace.pmt_txn p ON p.ord_id = o.ord_id LEFT JOIN marketplace.cust_mst c ON c.cust_id = o.cust_id WHERE o.dt_1 >= CURRENT_DATE - 30 AND o.src_sys_cd <> 'INTERNAL_TEST' AND NOT COALESCE(c.is_test_acct, false) GROUP BY o.ord_id, o.src_sys_cd, o.ord_ccy_cd, o.amt_2 HAVING MIN(p.pmt_ts) = MIN(p.pmt_ts) FILTER ( WHERE p.pmt_stat_cd = 3 AND p.pmt_mthd_cd = 'CARD' ))SELECT f.placed_on, COUNT(*) AS card_failed, COUNT(*) FILTER ( WHERE f.paid_ts < f.first_try + INTERVAL '1 day' ) AS paid_within_a_day, COUNT(*) FILTER (WHERE f.paid_ts IS NULL) AS never_paid, ROUND(SUM(f.amt_2 * fx.to_gbp) FILTER ( WHERE f.paid_ts IS NULL ), 2) AS never_paid_gbpFROM failed fCROSS JOIN LATERAL ( SELECT COALESCE(MAX(x.rate) FILTER (WHERE x.ccy_from = f.ord_ccy_cd), 1) / MAX(x.rate) FILTER (WHERE x.ccy_from = 'GBP') AS to_gbp FROM lgcy.fx_daily_rate x WHERE x.fx_dt = (SELECT MAX(fx_dt) FROM lgcy.fx_daily_rate WHERE fx_dt <= f.first_try::date)) fxGROUP BY 1ORDER BY 2 DESC

    The marked lines come from the Context Layer, not the schema:

    • Status 3 is a failed payment; 2 and 5 are captured.
    • Test orders are left out, including those from test accounts.
    • An unpaid order has no captured amount, so it is valued at its checkout total after discounts.
    • Rates are quoted to dollars on business days only, so each order takes the latest rate on or before its day.

    Orders whose first card payment failed

    Orders placed in the last 30 days, by where they were placed.

    Placed onCard failedPaid within a dayNever paidNever paid, value
    WEB38434£4,610
    APP1468£1,090

    2 rows

    Cut damage refunds by having the warehouse pack fragile Home & Kitchen items: they were £1,480 of the £2,100 refunded for damage

    Estimated impact

    About £760 a month less refunded for damage

    How this was calculated
    Arithmetic
    £1,480 of Home & Kitchen damage refunds a month × (1 − 2.1% ÷ 4.3%) = £757 a month.
    Assumption
    Items the warehouse packs arrive damaged at its 2.1% rate instead of the sellers’ 4.3%, and the mix of items stays the same.

    Actions to take

    Offer the 12 Home & Kitchen sellers who ship to the EU warehouse fulfilment for their glass and ceramics, so Orion’s warehouse packs them. Start with the 4 sellers behind 7 of the 11 damage refunds, and compare their damage refunds after four weeks.

    Why this came up

    Refunds for damage in transit came to £2,100 over the last 30 days, the largest refund reason, and returns logged as damaged doubled last week, from 6 to 12. Home & Kitchen items were 11 of the 16 damage refunds, £1,480 of the £2,100, and 9 of those 11 were shipped to EU addresses. Home & Kitchen parcels that Orion’s warehouse packs arrive damaged 2.1% of the time, against 4.3% for the ones sellers pack themselves. Carriers can’t change before January, so this works on the packing.

    Show queryHide query
    SELECT COALESCE(top.cat_nm, cat.cat_nm) AS category, COUNT(*) AS refunds, ROUND(SUM(r.rfnd_amt * fx.rate), 2) AS refunded_gbpFROM marketplace.rfnd rJOIN marketplace.orn_ord_hdr o ON o.ord_id = r.ord_idJOIN LATERAL ( SELECT l.prod_id FROM marketplace.ord_ln l WHERE l.ord_id = r.ord_id AND NOT l.is_rfnd_ln ORDER BY l.ln_amt DESC LIMIT 1) item ON trueJOIN marketplace.prod_mst p ON p.prod_id = item.prod_idJOIN marketplace.categories cat ON cat.cat_id = p.cat_idLEFT JOIN marketplace.categories top ON top.cat_id = cat.parent_cat_idJOIN lgcy.fx_daily_rate fx ON fx.fx_dt = r.proc_ts::date AND fx.ccy_from = o.ord_ccy_cdWHERE r.rfnd_rsn_cd = 1 AND r.proc_ts >= CURRENT_DATE - 30GROUP BY 1ORDER BY refunded_gbp DESC

    The marked lines come from the Context Layer, not the schema:

    • Reason 1 is damaged in transit.
    • A refund counts from when it was paid back, not when it was asked for.
    • Each refund takes its category from the order’s main item, never from a refund line.
    • Subcategories roll up to their top-level category.
    • Refunds are in the order’s currency, converted at the day’s rate.

    Refunds for damage in transit, by category

    Refunded value for items damaged in transit over the last 30 days.

    Bar chart. Refunds for damage in transit in the last 30 days, by category: Home & Kitchen £1,480, Electronics £310, Fashion £180, Toys & Games £90, Beauty £40.

    Restock 14 best sellers that have run out in Orion’s warehouse: they sold £71 a day between them, and none has stock on the way

    Estimated impact

    About £2.1K in sales for every month they stay out of stock

    How this was calculated
    Arithmetic
    £71 a day, what the 14 sold together before running out × 30 days = £2,130 a month.
    Assumption
    Back in stock, each listing sells at its pace over the eight weeks before its last sale.

    Actions to take

    Ask the three sellers behind 8 of the listings to send stock in this week, then the rest. Have the warehouse tell a seller whenever one of their listings is down to two weeks of sales, counting what is on the way.

    Why this came up

    14 listings that Orion’s warehouse stocks sold in at least 7 of the 8 weeks before their last sale, and their latest counts show none on hand and none on the way. Together they sold £71 a day over those eight weeks. 9 of them have now gone more than a week without a sale, and 8 of the 14 belong to three sellers.

    Show queryHide query
    WITH latest AS ( SELECT DISTINCT ON (listing_id, whse_id) listing_id, qty_on_hand, qty_incoming FROM ops.inv_snap ORDER BY listing_id, whse_id, snap_dt DESC),stock AS ( SELECT listing_id, SUM(qty_on_hand + qty_incoming) AS units FROM latest GROUP BY 1),sold AS ( SELECT l.lstg_id, o.dt_2, l.ln_amt * fx.to_gbp AS line_gbp, MAX(o.dt_2) OVER (PARTITION BY l.lstg_id) AS last_sale FROM marketplace.ord_ln l JOIN marketplace.orn_ord_hdr o ON o.ord_id = l.ord_id CROSS JOIN LATERAL ( SELECT COALESCE(MAX(x.rate) FILTER (WHERE x.ccy_from = o.ord_ccy_cd), 1) / MAX(x.rate) FILTER (WHERE x.ccy_from = 'GBP') AS to_gbp FROM lgcy.fx_daily_rate x WHERE x.fx_dt = (SELECT MAX(fx_dt) FROM lgcy.fx_daily_rate WHERE fx_dt <= o.dt_2::date) ) fx WHERE o.dt_2 IS NOT NULL AND NOT l.is_rfnd_ln AND o.ord_stat_cd <> 7 AND NOT EXISTS (SELECT 1 FROM marketplace.ord_cxl x WHERE x.ord_id = o.ord_id) AND o.src_sys_cd <> 'INTERNAL_TEST'),pace AS ( SELECT lstg_id, MAX(last_sale) AS last_sale, COUNT(DISTINCT date_trunc('week', dt_2)) AS weeks_sold, SUM(line_gbp) / 56 AS gbp_a_day FROM sold WHERE dt_2 > last_sale - INTERVAL '56 days' GROUP BY 1)SELECT CASE WHEN CURRENT_DATE - p.last_sale::date < 7 THEN 'Under a week' WHEN CURRENT_DATE - p.last_sale::date < 14 THEN '1–2 weeks' WHEN CURRENT_DATE - p.last_sale::date < 21 THEN '2–3 weeks' ELSE '3+ weeks' END AS since_last_sale, COUNT(*) AS listings, ROUND(SUM(p.gbp_a_day), 2) AS gbp_a_dayFROM pace pJOIN stock s ON s.listing_id = p.lstg_idJOIN marketplace.listings l ON l.lstg_id = p.lstg_idWHERE s.units = 0 AND p.weeks_sold >= 7 AND l.lstg_stat_cd = 2 AND NOT l.del_flgGROUP BY 1ORDER BY MAX(p.last_sale) DESC

    The marked lines come from the Context Layer, not the schema:

    • The warehouse counts only the stock it holds, at irregular times, so each listing is read at its latest count in each warehouse, never summed across counts.
    • A sale counts once its payment is captured. Refund lines, test orders and cancelled orders are left out, including cancellations the order’s status never shows.
    • Status 2 is a live listing, and deleted listings are left out.
    • Each sale is converted to pounds at the latest rate on or before its day.

    Best sellers with no stock, by time since their last sale

    Listings in Orion’s warehouse that sold in at least 7 of the 8 weeks before their last sale, with none on hand and none on the way.

    Bar chart. 14 best sellers with no stock, by time since their last sale: under a week 5, 1 to 2 weeks 4, 2 to 3 weeks 3, 3 weeks or more 2.

  3. 03Chat

    Ask anything, get a full report

    Ask a question about your business and get an answer back with a clear explanation and a chart. Queries are grounded in the Context Layer we setup for you giving you an unmatched accuracy.

    What would you like to know?

    Explore Chat

    Olivia Mason asks:Why is our refund rate up?

    Sovarium answers:

    Parcels damaged on the way to EU buyers. The refund rate rose from 10.9% to 12.6% over the last 30 days, 45 refunds against 39, and refunds for damage in transit on EU orders went from 3 to 9. That accounts for the whole rise.

    Every other reason moved by one refund or none, and damage refunds in the US and UK held level, at 4 and 2.

    Refund rate is refunded orders over paid orders, as your Context Layer defines it. An order refunded in parts counts once, on the day its refund was processed. Price adjustments are goodwill credits, not refunds, so they’re left out, as are test accounts.

    View SQLHide SQL
    SELECT CASE r.rfnd_rsn_cd WHEN 1 THEN 'Damaged in transit' WHEN 2 THEN 'Not as described' WHEN 3 THEN 'Wrong size' WHEN 4 THEN 'Changed mind' WHEN 5 THEN 'Arrived late' ELSE 'Other' END AS reason, COUNT(DISTINCT r.ord_id) FILTER ( WHERE r.proc_ts >= CURRENT_DATE - 30 ) AS last_30_days, COUNT(DISTINCT r.ord_id) FILTER ( WHERE r.proc_ts < CURRENT_DATE - 30 ) AS prior_30_daysFROM marketplace.rfnd rJOIN marketplace.orn_ord_hdr o ON o.ord_id = r.ord_idLEFT JOIN marketplace.cust_mst c ON c.cust_id = o.cust_idWHERE r.proc_ts >= CURRENT_DATE - 60 AND r.rfnd_rsn_cd <> 6 AND o.src_sys_cd <> 'INTERNAL_TEST' AND NOT COALESCE(c.is_test_acct, false)GROUP BY 1ORDER BY last_30_days DESC;

    Marked lines came from the Context Layer

    Horizontal bar chart. Refunds by reason, last 30 days against the 30 before: damaged in transit 15 against 9, wrong size 11 and 11, not as described 8 and 8, arrived late 7 against 6, changed mind 4 against 5.

    Refunds by reason, as a table
    ReasonLast 30 daysPrior 30 daysChange
    Damaged in transit159+6
    Wrong size11110
    Not as described880
    Arrived late76+1
    Changed mind45−1

    Maya Okafor asks:What was our revenue last quarter?

    Sovarium answers:

    £125.3K in net revenue last quarter, your fiscal Q3: April to June. The US brought in £63.9K, the UK £33.8K and the EU £27.6K.

    Revenue grew every month, from £40.1K in April to £43.4K in June. The EU grew fastest, up 14% from April to June, against 7% for the US and 6% for the UK.

    Your year ends in September, so last quarter is fiscal Q3. Net revenue is settled payments less refunds, as your Context Layer defines it, counted on the day each order was paid. Dollars and euros are converted to pounds at the rate for each payment’s day, and test orders are left out.

    View SQLHide SQL
    WITH paid AS ( SELECT DATE_TRUNC('month', o.dt_2)::date AS month, o.ord_rgn_cd AS region, (p.cap_amt - COALESCE(rf.refunded, 0)) * fx.to_gbp AS net_gbp FROM marketplace.orn_ord_hdr o JOIN marketplace.pmt_txn p ON p.ord_id = o.ord_id AND p.pmt_stat_cd = 5 LEFT JOIN ( SELECT ord_id, SUM(rfnd_amt) AS refunded FROM marketplace.rfnd WHERE proc_ts IS NOT NULL GROUP BY ord_id ) rf ON rf.ord_id = o.ord_id CROSS JOIN LATERAL ( SELECT COALESCE( MAX(x.rate) FILTER (WHERE x.ccy_from = o.ord_ccy_cd), 1 ) / MAX(x.rate) FILTER (WHERE x.ccy_from = 'GBP') AS to_gbp FROM lgcy.fx_daily_rate x WHERE x.fx_dt = ( SELECT MAX(fx_dt) FROM lgcy.fx_daily_rate WHERE fx_dt <= o.dt_2::date ) ) fx WHERE o.dt_2 >= DATE '2026-04-01' AND o.dt_2 < DATE '2026-07-01' AND o.src_sys_cd <> 'INTERNAL_TEST')SELECT month, region, SUM(net_gbp) AS net_revenue_gbpFROM paidGROUP BY month, regionORDER BY month, region;

    Marked lines came from the Context Layer

    Stacked bar chart. Net revenue by month: April £40.1K (US £20.6K, UK £10.9K, EU £8.6K), May £41.8K (US £21.3K, UK £11.3K, EU £9.2K), June £43.4K (US £22.0K, UK £11.6K, EU £9.8K).

    Net revenue by month, as a table
    MonthUSUKEUTotal
    April£20.6K£10.9K£8.6K£40.1K
    May£21.3K£11.3K£9.2K£41.8K
    June£22.0K£11.6K£9.8K£43.4K

    Tom Hughes asks:Are EU deliveries getting slower?

    Sovarium answers:

    Yes, this week. EU on-time delivery fell to 82.4%, from 93.2% last week, after seven weeks between 92.9% and 94.0%. Late EU parcels spent 4.2 days in transit on average, against 2.6.

    The US and UK held above 93%, at 95.1% and 93.8%.

    On time means delivered by the estimated date the buyer was shown, read from the carrier’s delivery scan rather than the shipment status, which some carriers stopped updating. A parcel still in transit past its date counts as late.

    View SQLHide SQL
    SELECT DATE_TRUNC('week', s.est_dlvr_dt)::date AS week, o.ord_rgn_cd AS region, AVG(CASE WHEN s.act_dlvr_ts::date <= s.est_dlvr_dt THEN 1.0 ELSE 0.0 END) AS on_time_shareFROM ops.shpmt sJOIN marketplace.orn_ord_hdr o ON o.ord_id = s.order_idWHERE s.est_dlvr_dt >= CURRENT_DATE - 56 AND s.est_dlvr_dt < CURRENT_DATE AND o.src_sys_cd <> 'INTERNAL_TEST'GROUP BY 1, 2ORDER BY 1, 2;

    Marked lines came from the Context Layer

    Line chart. Weekly on-time delivery over eight weeks. The US holds around 96% and the UK around 95%; the EU holds near 93% until this week, when it falls to 82.4%.

    On-time delivery by region, as a table
    WeekUSUKEU
    11 Aug96.2%94.9%93.1%
    18 Aug95.8%95.3%93.8%
    25 Aug96.5%94.4%92.9%
    1 Sep95.9%95.0%94.0%
    8 Sep96.8%95.6%93.6%
    15 Sep96.1%94.8%93.4%
    22 Sep95.7%94.1%93.2%
    This week95.1%93.8%82.4%
  4. 04Alerts

    Hear about it the moment it moves

    Set up an alert just by asking in chat. Sovarium checks your thresholds and changes on schedule and lets you know by email or in Slack, so nothing important slips past.

    Tell me when…

    Explore Alerts

    Olivia Mason asks:

    Tell me when our refund rate goes above 13%.

    Chat replies:

    Your refund rate over the last 30 days is 12.6%, so it’s under the line for now. I’ll call this alert Refund rate over 13% and check it daily at 8am, which is the default.

    Should this be an org-wide alert, posted to your Slack alerts channel and visible to everyone, or a personal alert, emailed just to you?

    Olivia Mason answers:

    Org-wide.

    Chat confirms:

    Done. Refund rate over 13% is set up.

    • Condition: Refund rate (last 30 days) goes above 13%
    • Checked: Daily at 8am. Next check Wed 30 Sept, 08:00
    • Scope: Org-wide, posted to your Slack alerts channel
    • Current value: 12.61%

    Pause or delete it on the Alerts page.

    Maya Okafor asks:

    Tell me when EU orders drop 15% or more on the week before. Mondays are fine.

    Chat replies:

    EU orders over the last 7 days: 17, down from 21 the week before. I’ll call this alert EU orders down 15% and check every Monday at 8am, comparing each week with the last.

    Should this be an org-wide alert, posted to your Slack alerts channel and visible to everyone, or a personal alert, emailed just to you?

    Maya Okafor answers:

    Personal, just me.

    Chat confirms:

    Done. EU orders down 15% is set up.

    • Condition: EU orders (last 7 days) fall by 15% or more on the previous check
    • Checked: Weekly, Mondays at 8am. Next check Mon 5 Oct, 08:00
    • Scope: Personal, emailed just to you
    • Current value: 17

    Pause or delete it on the Alerts page.

    Sam Reid asks:

    Tell me when the Copperfield ceramic mug set drops below 40 in stock. Check every hour.

    Chat replies:

    The Copperfield ceramic mug set has 64 units in stock. I’ll call this alert Mug set stock below 40 and check it hourly, on the hour.

    Should this be an org-wide alert, posted to your Slack alerts channel and visible to everyone, or a personal alert, emailed just to you?

    Sam Reid answers:

    Org-wide, the ops team watches that channel.

    Chat confirms:

    Done. Mug set stock below 40 is set up.

    • Condition: Copperfield mug set units in stock fall below 40
    • Checked: Hourly, on the hour. Next check 11:00 today
    • Scope: Org-wide, posted to your Slack alerts channel
    • Current value: 64

    Pause or delete it on the Alerts page.

    Tom Hughes asks:

    Tell me when EU on-time delivery gets back to 90%.

    Chat replies:

    EU on-time delivery over the last 7 days is 82.4%. I’ll call this alert EU on-time back to 90%: it fires on the check where the rate crosses 90%. I’ll check it daily at 8am, which is the default.

    Should this be an org-wide alert, posted to your Slack alerts channel and visible to everyone, or a personal alert, emailed just to you?

    Tom Hughes answers:

    Personal.

    Chat confirms:

    Done. EU on-time back to 90% is set up.

    • Condition: EU on-time delivery (last 7 days) reaches 90%
    • Checked: Daily at 8am. Next check Wed 30 Sept, 08:00
    • Scope: Personal, emailed just to you
    • Current value: 82.4%

    Pause or delete it on the Alerts page.

    Leah Brennan asks:

    Tell me when open disputes go up by 5 or more in a day.

    Chat replies:

    There are 18 open disputes right now. I’ll call this alert Open disputes up by 5 and check daily at 8am, comparing each day with the one before.

    Should this be an org-wide alert, posted to your Slack alerts channel and visible to everyone, or a personal alert, emailed just to you?

    Leah Brennan answers:

    Org-wide.

    Chat confirms:

    Done. Open disputes up by 5 is set up.

    • Condition: Open disputes rise by 5 or more on the previous check
    • Checked: Daily at 8am. Next check Wed 30 Sept, 08:00
    • Scope: Org-wide, posted to your Slack alerts channel
    • Current value: 18

    Pause or delete it on the Alerts page.

    Priya Nair asks:

    Tell me when average order value moves 10% either way, week to week.

    Chat replies:

    Average order value over the last 30 days is £137.10. I’ll call this alert Order value moves 10% and check every Monday at 8am, against the week before, up or down.

    Should this be an org-wide alert, posted to your Slack alerts channel and visible to everyone, or a personal alert, emailed just to you?

    Priya Nair answers:

    Just me.

    Chat confirms:

    Done. Order value moves 10% is set up.

    • Condition: Average order value (last 30 days) changes by 10% or more, either way, on the previous check
    • Checked: Weekly, Mondays at 8am. Next check Mon 5 Oct, 08:00
    • Scope: Personal, emailed just to you
    • Current value: 137.1

    Pause or delete it on the Alerts page.

Every demo above runs on example data. See it running on yours.

Book a walkthrough

What We Do Differently

AI has gotten really good at querying warehouses, but it doesn't know what your data really means: which date a sale counts on, what the business defines as net revenue, or which price column is the real one.

We send in our data experts to setup a Context Layer to give the AI the context it needs to be able to give accurate answers.

Internal benchmark

  • Sovarium

    With the Context Layer. Tied with an experienced human analyst.

    49of 50

  • A frontier model alone

    GPT-5.6 Sol, the same warehouse, no Context Layer.

    22of 50

Read the method

One question from the run

“Of the guest shoppers we saw through the end of 2025, how many had registered a full account by mid-2026?”

GPT-5.6 SolWrong

“249 guest shoppers had registered a full account by June 30, 2026, representing 18.64% of the guest cohort seen through 2025.”

249 of 1,336 guests registered227 missed

Counted only guests whose record links to an account. That link is filled in for about half of the shoppers who signed up, so it missed 227 of them.

SovariumRight

“Of the 1,336 unique guest shoppers first seen through the end of 2025, 476 (35.6%) held a registered full account by mid-2026.”

476 of 1,336 guests registered

Its Context Layer notes that the account link is incomplete, so it matched guests to accounts by email instead.

Everything You Need for Data-Driven Decisions

No data team? No problem

Sovarium provides reports, answers questions, builds dashboards, and proactively suggests strategic initiatives based on your data.

Data Engineer
BI Developer
Analytics Lead
Data Analyst
Data Scientist
Sovarium

Answers you can Trust

AI accuracy depends entirely on the quality of the Context Layer. Our in-house experts setup your Context Layer for you so that you can have confidence in your insights.

Make Decisions Faster

Whether its a complex analysis or a quick one off question, Sovarium gets you the answers you need to help you move quickly with a competitive advantage.

Traditional
Days
Sovarium
Seconds

No data team needed. We set it up with you.

  1. Day one

    Connect your warehouse

    Create a read-only user for Sovarium and add it in the app. It takes a few minutes.

  2. Week one

    We map your data

    Our data experts learn how your business runs, then write your Context Layer: how you count revenue, which orders to leave out, when your year ends.

  3. Week two onwards

    Unlock growth

    Invite your team. Each person gets a Command View built around their role. Take advantage of the levers for growth suggested in Opportunities, or ask any question in Chat.

Questions

Something else? Ask our team.

What is Proactive AI Analytics?

We believe that analytics is about getting insights and answers without needing to ask a question. A good data analyst suggests strategic initiatives based on the data, rather than just providing reports. We brought that philosophy over to our AI agent.

How is Sovarium different from ChatGPT?

A general AI model can read your tables but not what they mean, so it guesses, and a wrong guess reads just like a right answer. Sovarium's data experts build a Context Layer for your business first: how you count revenue, which orders to leave out, when your year ends.

How accurate are the AI-generated insights?

Accuracy depends entirely on the Context Layer. That's why we have in-house data experts configure it for you based on your specific business context. We found on our internal benchmarks that with the Context Layer in place the agent has a 98% accuracy.

Do I need a data team to use Sovarium?

Nope, no data team needed. Our experts handle the initial Context Layer setup for you. After that, anyone in your company can ask questions and get insights without needing any data knowledge.

How long does it take to get started?

You can connect your data warehouse in minutes. Our team then works with you to configure the Context Layer, which typically takes a few days to a week depending on your data complexity. Our process intentionally takes longer than others which allows us to provide a much higher level of accuracy.

Is my data secure?

We ask you to connect your warehouse with a read-only user, and we validate every query before it runs. Queries run in your warehouse; the results come back to our servers in London to build your answer, and we keep what an answer, chart or card needs, which can include rows of your data. Your credentials are encrypted at rest, and AI requests go only to model providers with zero data retention. Our security page has the details.

Instant Clarity

See the signal beneath the noise, understand what's driving performance, and direct the outcome.