Loading DHL data…
Overview
By country
By month
Weight & products
Duties
Order details
Monthly cost trend total ex VAT, stacked by row type
Cost components share of total
Top 5 destinations by total cost
Top 10 destinations by cost
All countries click headers to sort
| Country | Parcels | Shipping £ | Duties £ | Total £ | Avg shipping/parcel £ | Avg duties/parcel £ | Avg kg/parcel | Avg order ex VAT £ | Shipping % of order |
|---|
Month-on-month by country total ex VAT per month, with change vs previous month
Monthly spend trend
Monthly breakdown MoM Δ in last column
| Month | Parcels | Shipping £ | Duties £ | Total £ | Avg/parcel £ | MoM Δ | Avg order ex VAT £ | Shipping % of order |
|---|
Parcels by weight band
By product type
Weight band detail
| Weight band | Parcels | Total cost £ | Avg cost £ | £/kg |
|---|
Duties & taxes by month
Top countries by duties paid
| Country | Duty rows | Total duties £ | Avg per row £ |
|---|
Order details one row per shipment · first 500 of 0 matching · DHL duties auto-merged via Shipment #
How to read Net shipping %: (DHL shipping cost − customer paid) ÷ order ex VAT
● Positive % = Skin Cupid loses on shipping (DHL cost exceeds what the customer paid)
● Negative % = Skin Cupid profits on shipping (customer paid more than the DHL cost)
● 0% = breakeven
● Positive % = Skin Cupid loses on shipping (DHL cost exceeds what the customer paid)
● Negative % = Skin Cupid profits on shipping (customer paid more than the DHL cost)
● 0% = breakeven
| Month | Ship Date | Order Ref | Country | City | Weight | DHL £ ex VAT | DHL duties £ | Order ex VAT | Customer paid ship | Net shipping % |
|---|
Loading DPD data…
Overview
By country
By month
By service
Order details
Monthly cost trend total ex VAT
Service mix share of total spend
Top 5 destinations by total cost
Top 10 destinations by cost
All countries
| Country | Parcels | Total £ | Avg/parcel £ | Avg kg | Avg order ex VAT £ | Shipping % of order | % of total |
|---|
Monthly spend trend
Monthly breakdown MoM Δ in last column
| Month | Parcels | Total £ | Avg/parcel £ | MoM Δ | Avg order ex VAT £ | Shipping % of order |
|---|
Parcels by service
Spend by service
Service detail
| Service | Parcels | Total £ | Avg/parcel £ | Avg kg |
|---|
Order details one row per parcel · first 800 of 0 matching
How to read Net shipping %: (DPD cost − customer paid) ÷ order ex VAT
● Positive % = Skin Cupid loses on shipping (DPD cost exceeds what the customer paid)
● Negative % = Skin Cupid profits on shipping (customer paid more than the DPD cost)
● 0% = breakeven
⚠ RTC parcels (returns to warehouse, Sender = "RTC WND") have no Shopify order ref by design.
● Positive % = Skin Cupid loses on shipping (DPD cost exceeds what the customer paid)
● Negative % = Skin Cupid profits on shipping (customer paid more than the DPD cost)
● 0% = breakeven
⚠ RTC parcels (returns to warehouse, Sender = "RTC WND") have no Shopify order ref by design.
| Ship Date | Service | Order Ref | Country | Weight | DPD £ ex VAT | Order ex VAT | Customer paid ship | Net shipping % |
|---|
Loading Royal Mail data…
Overview
By month
By service
By channel
By country
Order details
Monthly cost trend total est. ex VAT, stacked by service
Service mix share of total spend
Top channels by parcel count
Monthly spend trend
Monthly breakdown MoM Δ in last column
| Month | Parcels | Est. Net £ | Est. Gross £ | Avg £/parcel | MoM Δ |
|---|
Parcels by service
Spend by service
Service detail
| Service | Code | Parcels | Est. Net £ | Est. Gross £ | Avg £/parcel |
|---|
Parcels by channel
Channel detail
| Channel | Parcels | Est. Gross £ | Avg £/parcel | % of total |
|---|
How country is determined:
● Tracked 24 / Tracked 48 (TPS / TPN) are UK-only — always shown as UNITED KINGDOM
● International (MP7) — derived from the matched Shopify order's shipping address
● Unknown — international parcels with no Shopify match (e.g. In Store, Unleashed Warehouse Transfer)
● Tracked 24 / Tracked 48 (TPS / TPN) are UK-only — always shown as UNITED KINGDOM
● International (MP7) — derived from the matched Shopify order's shipping address
● Unknown — international parcels with no Shopify match (e.g. In Store, Unleashed Warehouse Transfer)
Top 10 destinations by parcels
International only excludes UK domestic for clarity
| Country | Parcels | Est. Gross £ | Avg £/parcel | % of intl |
|---|
All countries including UK domestic
| Country | Parcels | Est. Gross £ | Avg £/parcel | % of total |
|---|
Order details one row per parcel · first 800 of 0 matching
Cost basis: Royal Mail prices are flat per service/weight band, so we apply the OBA-derived monthly average rate per parcel. Total reconciles to actual OBA spend within ~1-2%.
How to read Net shipping %: (RM cost − customer paid) ÷ order ex VAT
● Positive % = Skin Cupid loses on shipping ● Negative % = Skin Cupid profits on shipping ● 0% = breakeven
⚠ Non-Shopify channels (In Store, Unleashed Warehouse Transfer) have no Shopify order match by design.
How to read Net shipping %: (RM cost − customer paid) ÷ order ex VAT
● Positive % = Skin Cupid loses on shipping ● Negative % = Skin Cupid profits on shipping ● 0% = breakeven
⚠ Non-Shopify channels (In Store, Unleashed Warehouse Transfer) have no Shopify order match by design.
| Despatch Date | Service | Channel | Country | Order Ref | Tracking | RM £ ex VAT | Order ex VAT | Customer paid ship | Net shipping % |
|---|
LCS Cleaning — coming soon
Monthly invoice data from Drive.
Badger Fulfillment — coming soon
Weekly QuickBooks receipts aggregated to monthly.
Ellgia — coming soon
Monthly PDF invoices from Drive.
Stacatruc — coming soon
Ad hoc engineer visit invoices.
EE — coming soon
Monthly broadband billing.
Water Plus — coming soon
Needs MyAccount portal extraction.
EON — coming soon
Manual download flow.
Overall operations cost — coming soon
Combines all suppliers once each module is live.
All couriers compared — coming soon
Side-by-side DHL vs DPD vs Royal Mail.
Settings
Published Google Sheet CSV. Default is the Skin Cupid DHL Analytics Data sheet.
Published Google Sheet CSV. Default is the DPD Consolidated sheet built by the Apps Script.
Published Google Sheet CSV. Default is the Royal Mail Consolidated sheet built by the Apps Script.
The Cloudflare Worker that proxies to Shopify Admin API. The token never touches the browser.
Shopify order sync cross-reference DHL parcels with Shopify order values
Loading status…
How it works: The portal loops through each month of your courier data (DHL, DPD, Royal Mail), fetches all Shopify orders from your Worker, and caches them in your browser's IndexedDB. Once cached, the portal matches each DHL parcel to its Shopify order to compute average order value and shipping cost as a percentage of order value.
First sync may take 2–5 minutes depending on order volume. After that, only re-sync if data changes.
First sync may take 2–5 minutes depending on order volume. After that, only re-sync if data changes.