> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Revenue by Channel (POS / Online / Invoices), Square Online

> Revenue by Channel (POS / Online / Invoices): how your revenue splits across in-store, web, and invoiced sales. How to read it, why it matters, and how to act on it.

**Card class:** [Hero](/nerve-centre/overview#card-classes-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> Source-name breakdown: SQUARE\_POS, SQUARE\_ONLINE, INVOICES, etc. Surfaces unified-commerce channel mix that is distinctive to Square's POS+online story.

## At a glance

> A breakdown of revenue by Square channel, in-store (Square POS), web (Square Online Store), and invoiced (Square Invoices), over the last 30 days. This is Square's signature view: because all three channels run through one Orders API on a single merchant of record, you can see exactly how much money each one earns without stitching separate systems together. Where the orders-by-channel card shows where your volume lives, this card shows where your value lives, and the two are usually very different.

|                                |                                                                                                                                                                                                                                            |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **What it counts**             | `SUM(total_money.amount)` bucketed by Square Orders `source.name` (Square Online Store, Square POS, Square Invoices, and any third-party source writing to the Orders API). Each order's customer-paid total is attributed to its channel. |
| **Channel / source treatment** | **The channel split is the entire point.** Revenue is grouped by `source.name`. This is native to Square because POS, web, and invoices all share one Orders API and one merchant of record.                                               |
| **Currency / unit**            | Currency per channel, rendered as a donut so each channel's share of revenue is visible at a glance. Underlying sums are per location's currency; use the location filter for a clean multi-currency read.                                 |
| **Time window**                | `30D` (rolling last 30 days)                                                                                                                                                                                                               |
| **Alert trigger**              | none. This is a composition card. For sharp swings in the mix, see [Channel Mix Shift (vs prior)](/nerve-centre/kpi-cards/square-online/channel-mix-shift-vs-prior).                                                                       |
| **Roles**                      | owner, finance, marketing                                                                                                                                                                                                                  |
| **Value vs count**             | This card splits revenue; [Orders by Channel](/nerve-centre/kpi-cards/square-online/orders-by-channel) splits order count. The gap between them is per-channel basket size.                                                                |
| **Refunds**                    | Gross by default, refunds are not deducted here, consistent with [Total Revenue](/nerve-centre/kpi-cards/square-online/total-revenue).                                                                                                     |

## Calculation

Calculated automatically from your Square Online data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

## Worked example

A US specialty coffee roaster on Square. Three cafes (POS), a Square Online storefront for whole bean and gear, and Square Invoices for weekly wholesale to local restaurants. The window is the 30 days to 12 Apr 26, total revenue \$200,976.

| Channel                            | `source.name`       | Revenue       | Share of revenue | Orders     | Avg basket |
| ---------------------------------- | ------------------- | ------------- | ---------------- | ---------- | ---------- |
| Square POS (three cafes)           | Square POS          | \$141,160     | 70.2%            | 10,740     | \$13       |
| Square Online Store (web)          | Square Online Store | \$35,496      | 17.7%            | 612        | \$58       |
| Square Invoices (wholesale)        | Square Invoices     | \$24,320      | 12.1%            | 38         | \$640      |
| **Revenue by Channel (this card)** |                     | **\$200,976** | **100%**         | **11,390** |            |

Three things to notice:

1. **Order share and revenue share are completely different.** POS is 94% of orders but only 70% of revenue, while invoices are 0.3% of orders yet 12% of revenue. Reading this card next to [Orders by Channel](/nerve-centre/kpi-cards/square-online/orders-by-channel) is the clearest way to see that a low-volume channel can carry serious value. The bridge between the two is basket size.
2. **Invoices are easy to forget and material to the total.** Just 38 wholesale invoices contribute more than a tenth of revenue. A single missed or delayed invoice run would dent the month noticeably even though order count barely moves. This channel deserves its own attention, not to be lumped into a generic online bucket.
3. **No alert here, by design.** The mix is a stable shape, not an event. To catch a genuine swing, for example a cafe closing and pushing demand to the web, use [Channel Mix Shift (vs prior)](/nerve-centre/kpi-cards/square-online/channel-mix-shift-vs-prior), which fires on sharp percentage-point moves. This card is the steady-state portrait.

## Sibling cards merchants should reference together

| Card                                                                                                 | Why pair it with Revenue by Channel                                                                                                                    |
| ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Orders by Channel](/nerve-centre/kpi-cards/square-online/orders-by-channel)                         | The count mirror. This card splits money; that one splits volume. The difference between them is per-channel basket size.                              |
| [Channel Mix Shift (vs prior)](/nerve-centre/kpi-cards/square-online/channel-mix-shift-vs-prior)     | The alerting version. This card is the snapshot; that one fires when a channel's share moves sharply versus the prior period.                          |
| [Revenue by Location (in-store)](/nerve-centre/kpi-cards/square-online/revenue-by-location-in-store) | A complementary cut of the same revenue. Channel splits by source; location splits by store. A POS channel made of several stores is broken out there. |
| [Total Revenue](/nerve-centre/kpi-cards/square-online/total-revenue)                                 | The headline this card decomposes. Channel shares should always sum back to the total.                                                                 |
| [% Revenue From POS-Only Items](/nerve-centre/kpi-cards/square-online/revenue-from-pos-only-items)   | The item-availability view of the POS channel. Shows how much of in-store revenue comes from products not available online.                            |
| [Average Order Value](/nerve-centre/kpi-cards/square-online/average-order-value)                     | Explains why a small channel by count can be large by revenue. Per-channel AOV is the reason invoices punch above their order share.                   |

## Reconciling against Square

**Where to look in the Square Dashboard:**

[Square Dashboard, Reports, Sales summary](https://squareup.com/dashboard/sales/reports/sales-summary). Group the report by source or channel for the same 30-day window and read the sales value per channel. The per-channel revenue should match this card closely. Make sure you are reading the gross sales column, since Square can also show net-of-refund figures depending on your account settings.

Other Square Dashboard views that *look* like the same number but aren't:

* **Sales summary, grouped by source, gross sales column**: this is the right reconciliation for revenue by channel.
* **Sales summary, grouped by source, transaction count column**: that is the order-count split, reconcile it against [Orders by Channel](/nerve-centre/kpi-cards/square-online/orders-by-channel), not this card.
* **Sales by location**: the per-store split, a different axis. A multi-store POS channel is one bucket here but several rows there.
* **Reports, Net sales**: post-refund and possibly post-discount depending on settings, lower than this gross card.

**Why our number may legitimately differ from Square Dashboard:**

| Reason                                                                                                                                                                            | Direction of divergence                                     |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| **Source attribution**. How each order's `source.name` maps to a channel must be consistent. A third-party integration can write an unexpected source and land in another bucket. | Small share differences if a source is bucketed differently |
| **Gross vs net**. This card is gross. If the dashboard column is net of refunds, the channel figures will read lower than here.                                                   | Square net lower than this gross card                       |
| **Multi-currency**. Revenue is summed across locations; for a multi-currency merchant the channel figures mix currencies unless filtered.                                         | Material for cross-border merchants                         |
| **Time-zone and sync lag**. Square reports in location-local time; Vortex IQ runs on UTC, and the most recent orders take a short cycle to index.                                 | Boundary differences; self-resolves within minutes          |

**Cross-connector reconciliation:**

| Card                                                                                          | Expected relationship                                 | What causes legitimate divergence                                                                                                                                                                                                  |
| --------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Total Revenue](/nerve-centre/kpi-cards/square-online/total-revenue)                          | Channel revenue should sum to total revenue           | Both read the same Orders API. Any gap means an order's source did not map to a known channel bucket.                                                                                                                              |
| [`google_analytics.ga_revenue_trend`](/nerve-centre/kpi-cards/google-analytics/revenue-trend) | GA4 only sees the online (web) channel                | Square POS and invoice revenue never reach GA4. GA4's revenue should approximate only the Square Online Store slice of this card, minus the usual 10 to 25% tracking gap. Treat Square as the source of truth for channel revenue. |
| [`paypal.pp_total_volume`](/nerve-centre/paypal/pp_total_volume)                              | PayPal sees only the PayPal-paid subset of web orders | If PayPal is an alt tender on Square Online, it captures that subset only. Square is the merchant of record for every order regardless of tender.                                                                                  |

**Why this card is the heart of Square's story:** on platforms where POS is a separate product or app, in-store and online revenue live in different systems and a true channel split has to be assembled after the fact. Square unifies POS, web, and invoices on one Orders API under a single merchant of record, so revenue by channel is a clean, native measurement. That is exactly the unified-commerce advantage Square is built on, which is why this card earns a hero slot.

***

<details>
  <summary><em>Same-metric documentation cross-reference (for agencies running multiple platforms)</em></summary>

  A revenue-by-channel breakdown is most meaningful on unified-commerce platforms where POS and online share one order ledger. Where they are separate products, a comparable split only exists if both feed one reporting layer. These links are provided where a comparable concept exists, not as a reconciliation.

  * [`shopify.revenue-by-channel`](/nerve-centre/kpi-cards/shopify/revenue-by-channel)
  * [`bigcommerce.revenue-by-channel`](/nerve-centre/kpi-cards/bigcommerce/revenue-by-channel)
</details>

## Known limitations / merchant FAQs

**How are channels determined?**
From the Square Orders `source.name`, which distinguishes Square Online Store (web), Square POS (in store), and Square Invoices. Because all three share one merchant of record, the split is native to Square's Orders API rather than stitched together from separate systems.

**Why is my POS channel so much bigger than online?**
For most Square merchants, in-store sales are the bulk of revenue, especially for food, beverage, and retail. A large POS share is normal and healthy. The useful question is whether your online and invoice channels are growing their share over time, which is what [Channel Mix Shift (vs prior)](/nerve-centre/kpi-cards/square-online/channel-mix-shift-vs-prior) tracks.

**Why does a tiny invoice channel show such big revenue?**
Because invoice baskets are far larger than retail baskets. A wholesale invoice can be worth fifty in-store sales. That is why invoices can be a small slice of [Orders by Channel](/nerve-centre/kpi-cards/square-online/orders-by-channel) and a large slice here. Always read count and value together.

**Is this gross or net of refunds?**
Gross. Refunds are not deducted, consistent with [Total Revenue](/nerve-centre/kpi-cards/square-online/total-revenue). For a net-of-refunds view, watch this card alongside [Refund Rate](/nerve-centre/kpi-cards/square-online/refund-rate), or use Square Dashboard's net sales line.

**Should the channel revenue add up to Total Revenue?**
Yes. Every order belongs to one channel, so the channel revenue should sum to [Total Revenue](/nerve-centre/kpi-cards/square-online/total-revenue) for the same window. If it does not, an order's source did not map to a recognised channel, usually a third-party integration writing an unusual `source.name`.

**My account is multi-currency. Is the channel total meaningful?**
Only with care. The card sums `total_money` across locations without FX conversion, so a merchant operating in more than one currency gets a mixed figure. Use the per-location filter to read each currency cleanly before comparing channels.

**Why is there no alert on this card?**
Because the channel mix is a stable property of the business, not an event. A cafe will always earn most of its revenue at the till. The card that alerts on a genuine swing is [Channel Mix Shift (vs prior)](/nerve-centre/kpi-cards/square-online/channel-mix-shift-vs-prior); this one is for understanding the steady-state shape.

***

### Tracked live in Vortex IQ Nerve Centre

*Revenue by Channel (POS / Online / Invoices)* is one of hundreds of KPI pulses Vortex IQ tracks across Square Online and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
