Insights
Average ecommerce DSO by channel: why DTC brands collect in 2 days and wholesale brands wait 73
Pure-DTC brands on Shopify Payments collect in 0.9 to 4.4 days (Warby Parker 0.9, FIGS 4.4, Revolve 3.3) because card processors settle on a T-plus-2 cadence. Omnichannel brands land around 24 days. CPG brands selling to mass retail run 45 to 73 days. Adding one dollar of net-new wholesale revenue at net-60 terms ties up $80K to $150K of working capital per $1M of sales that does not settle for two months.
Key Takeaways
- Pure-DTC ecommerce brands run DSO of 0.9 to 12 days. Warby Parker (0.9), Revolve (3.3), FIGS (4.4), Allbirds (11.9). Shopify Payments and Stripe both pay out T+2, which is why this band sits so low.
- Omnichannel brands sit at 13 to 35 days. Olaplex (12.9), YETI (24.0), e.l.f. Beauty (34.5). In our sample, the wholesale-mix-to-DSO slope runs about 0.4 days per point at the omnichannel end (YETI, 24d at ~55% wholesale) and about 0.7 days per point at the CPG-DSD end (Celsius, 73d at ~100% wholesale).
- CPG-wholesale-dominant brands run 45 to 73 days. Vita Coco (44.9), Celsius (72.8 after the Pepsi DSD ramp). That's an 80x gap to pure DTC.
- Every dollar of net new wholesale revenue costs you 30 to 60 days of working-capital float. Adding $1M of retail sales typically ties up $80K to $150K of cash you won't see for two months.
- Faire's 1-day brand payout is a financing product, not a payment-term change. Wholesale marketplaces with embedded credit (Faire, Settle, Wayflyer) can let your DSO look DTC-fast even when the channel is technically wholesale.
Days sales outstanding (DSO) is the single number that separates a DTC brand's cash cycle from a wholesale brand's. When you sell direct on Shopify, money lands in your bank in 2 days. When you sell to a retailer or distributor, you wait 30 to 90 days for the check. We pulled the FY2024 10-K filings for 10 public consumer brands across the channel spectrum and computed DSO from accounts receivable and revenue. Pure-DTC brands cluster at 0.9 to 12 days. Omnichannel brands sit at 13 to 35 days. CPG-wholesale-dominant brands run 45 to 73 days. This page tracks the public-company benchmark quarterly so you can stress-test your channel-mix shift before you commit the inventory.
What DSO actually measures for an ecommerce brand
DSO, days sales outstanding, is the average number of days it takes your business to collect cash after a sale. The standard formula is (Accounts Receivable / Revenue) x 365. For a public company, AR is the year-end balance-sheet line item AccountsReceivableNetCurrent and revenue is the full-year top line. For your private brand, you can pull both from QuickBooks or Shopify Finance reports.
The number tells you one thing: how many days of revenue are sitting as IOUs from your customers and channel partners rather than as cash in your bank account. A higher DSO means a longer cash cycle, which means more working capital tied up per dollar of revenue. That's the dial that decides whether you can fund the next inventory buy, the next ad campaign, or the next hire from operating cash.
For ecommerce specifically, there's a wrinkle: payment processors blur the AR line. When a Shopify Payments transaction settles, the cash technically passes through the processor before it hits your bank, but most accountants book it as cash on the order date rather than as an AR line. That's why pure-DTC brands report tiny AR balances even though there's a 2-day settlement window in the background. The DSO numbers below for Revolve, FIGS, and Warby Parker reflect this convention; the true processor-side lag is functionally invisible in the financial statements.
The 2026 benchmark: 10 public consumer brands ranked by DSO
We computed DSO for every consumer brand in our coverage cohort with a meaningful AR line in FY2024. The result is a clean tier structure: pure DTC at the bottom, CPG wholesale at the top, and a middle band that maps directly to wholesale revenue mix.
The table below shows the underlying revenue, AR, and channel-mix detail behind each bar.
Company Ticker Revenue FY24 ($M) AR FY24 ($M) DSO (days) Channel mix Warby Parker WRBY 771.3 1.95 0.9 DTC + own stores + vision insurance Revolve RVLV 1,129.9 10.34 3.3 ~100% DTC Sally Beauty SBH 3,717.0 33.64 3.3 Own retail stores + B2B FIGS FIGS 555.6 6.64 4.4 ~90% DTC + Teams wholesale Allbirds BIRD 189.8 6.17 11.9 ~95% DTC Olaplex OLPX 422.7 14.93 12.9 Salon + Sephora + Amazon wholesale YETI YETI 1,829.9 120.19 24.0 ~55% wholesale, 45% DTC e.l.f. Beauty ELF 1,332.2 126.01 34.5 Target / Walmart / Ulta + DTC + Naturium Vita Coco COCO 516.0 63.45 44.9 CPG retail wholesale Celsius CELH 1,355.6 270.34 72.8 DSD wholesale (Pepsi)
Three things jump off the page. Revolve and Sally Beauty land at identical DSO (3.3 days) despite radically different business models, because both convert sales to cash immediately (Revolve via Shopify-style processor settlement, Sally Beauty via in-store card transactions). YETI is the cleanest case study of the omnichannel middle: its 55/45 wholesale-to-DTC mix maps directly to a DSO that sits roughly halfway between pure DTC and pure CPG wholesale. And Celsius shows what happens when you commit to a beverage DSD model: revenue scaled past $1.3B but receivables ballooned to $270M because Pepsi distributors pay on extended terms.
Two coverage-list brands are not in the table by design. Stitch Fix's reported AR is functionally zero because the subscription model nets payment-processor receivables against deferred revenue, so including it as "0 days" would be technically accurate but misleading. Honest Company doesn't break out AR cleanly against the comparable revenue period in FY2024 (AR is rolled into "other current assets" disclosures rather than a standalone XBRL tag), so we couldn't produce a clean, reproducible DSO. Both are flagged in the methodology rather than estimated.
Why each channel pays you on a different clock
Each selling channel has its own settlement mechanics. The table below is the reference for what to expect from each major DTC, marketplace, and wholesale channel in 2026.
Channel Payout cadence Days to cash Who absorbs the float Shopify Payments T+2 daily 2 None (processor pays as orders settle) Stripe (Standard) T+2 daily 2 None PayPal Checkout Same / next day 1 to 3 None Amazon Seller Central (3P FBA) Bi-weekly 14 Amazon (holds 14-day cycle reserve) Amazon Vendor Central (1P) Net-30 / Net-60 30 to 60 Brand Faire (brand side) 1 to 3 days 1 to 3 Faire (absorbs via 25% first-order / 15% reorder take rate) Faire (retailer side terms) Net-60 30 to 60 Faire (collects from retailer) Traditional wholesale (boutique) Net-30 / Net-60 30 to 60 Brand Mass retail (Target, Walmart) Net-60 / Net-90 60 to 90 Brand Klarna / Afterpay / Affirm (BNPL) 1 to 7 days 1 to 7 BNPL provider
A few things to flag. Shopify Payments and Stripe are both T+2 in the US, which is why a clean Shopify-only brand should see DSO at 2 to 3 days; if yours is higher, look for BNPL leakage or wholesale orders running through the same checkout. Amazon Seller Central's 14-day cycle is the source of the lumpy cash inflows that surprise first-time wholesalers crossing $1M in Amazon GMV. And Faire's brand-side 1-to-3-day payout is the cleanest example of a marketplace using embedded credit to make wholesale economics feel like DTC for the brand.
What happens to your DSO when you add wholesale
The cleanest case study in our cohort is Celsius. The brand signed its Pepsi distribution agreement in August 2022 and scaled into the DSD channel through 2023 and 2024. The DSO trajectory shows the working-capital cost of that channel shift in stark terms.
In 2022 Celsius ran a DSO of 8.4 days on $654M in revenue and $15M in AR, pre-Pepsi ramp. By 2024, with $1.36B in revenue and $270M in AR, DSO had climbed to 72.8 days. The receivables base grew 18x while revenue only doubled. That delta is the working-capital cost of moving from direct-to-retailer relationships to a DSD distribution model where Pepsi bottlers pay on extended terms.
The same dynamic shows up at every brand that has shifted DTC-to-wholesale, just at smaller scale. YETI runs at 24 days because roughly 55% of its revenue runs through wholesale partners. e.l.f. Beauty runs at 34.5 days because its growth has come from Target, Walmart, and Ulta shelves. Olaplex compressed its DSO from 32.6 days in 2023 to 12.9 days in 2024 by tightening collections (and likely using receivables factoring, which is disclosed in its 2023 10-K).
The operator math: every dollar of net new wholesale revenue costs you 30 to 60 days of working-capital float. A boutique-fashion client we work with at the $30M GMV band put it bluntly on a recent call: they have no room to push retailers below 60-day terms. The brand has to wear the float. That's not unique to them; it's the structural reality of any DTC brand crossing into retail.
A J.P. Morgan working-capital analysis summarizes the dynamic well: shifting from net 30 to net 60 doubles the time buyers can hold cash, improving their DPO, but simultaneously extends vendors' DSO. The buyer's optimization is the seller's drag.
Every dollar of net new wholesale revenue costs you 30 to 60 days of working-capital float. Adding $1M of retail sales typically ties up $80K to $150K of cash you won't see for two months. That's the number to put on the table before you sign the next Target or Walmart PO.
The CFO-level decision: when does the wholesale margin justify the DSO drag?
The math is straightforward once you frame it. Wholesale gross margin is typically 25 to 40 percentage points lower than DTC (because the retailer takes their margin out of yours). You're trading margin for volume. But you're also trading 2-day cash for 60-day cash. The question is whether the incremental gross profit covers the cost of the float.
A worked example. You run a $20M DTC brand at 65% gross margin. You're offered a Target rollout that will add $5M in net new wholesale revenue at 45% wholesale gross margin (after slotting fees, MAP enforcement, returns, and chargebacks). Net new gross profit: $5M x 45% = $2.25M. Working capital tied up: $5M x (60/365) = $821K. At a 10% WACC, the cost of that float is roughly $82K per year. Net contribution: $2.25M - $82K = $2.17M. That deal pencils.
Now run the same math at a 25% wholesale gross margin (more typical for mass-retail vendors who give up shelf space to a buyer's private label competitor). Net new gross profit: $1.25M. Float cost: $82K. Net contribution: $1.17M. Still positive, but the cushion is thinner. If working capital is constrained (you'd otherwise deploy that $821K into ad spend with a 3x MER), the opportunity cost is higher than the cash WACC suggests.
The rule of thumb we use with portfolio clients prices the float against ad-spend MER, not WACC, because for a growing brand the real cost of trapped cash is the contribution you'd have produced by deploying that dollar into paid acquisition. The test:
Net wholesale contribution per $1 of revenue = wholesale GM% - (DSO_days / 365) x MER_contribution_per_dollar_idle
Worked: a brand running a blended ad-MER of 3.0x at 60% DTC gross margin generates roughly $0.80 of contribution per $1 of ad spend per cycle, with a typical 30-day cash cycle on ads. That's an opportunity cost of about $0.80 x (12 cycles / year) = roughly $9.60 of foregone annual contribution per dollar of cash held idle for a full year. A wholesale dollar tied up for 60 days (60/365 = 0.16 years) therefore carries an opportunity cost of about $1.58 per dollar of receivable, orders of magnitude bigger than the ~$0.016 WACC cost. Scaled to the $5M Target rollout above, the $821K of tied receivables carries roughly $1.30M of foregone ad-driven contribution, not $82K. The $2.25M gross profit covers it; the $1.25M (25% wholesale GM) scenario doesn't, even though the WACC version said it did.
The rule of thumb: a wholesale channel needs wholesale gross profit per dollar of revenue to exceed (DSO_days / 365) x (annual ad-MER contribution per idle dollar). Below that line, you're using wholesale for brand-awareness reasons (shelf visibility, retail credibility) rather than for cash-generating reasons. That's a valid strategic choice but you have to fund it out of DTC cash flow.
How to model and manage DSO if you're mid-shift
Three operator moves to run this quarter.
Build a rolling 13-week cash forecast that splits AR by channel. Lump-sum DSO is a vanity metric; what you need is the cash-conversion timing per channel. Shopify Payments revenue settles 2 days out, Amazon Seller Central settles 14 days out, Faire settles 1-to-3 days out, traditional wholesale settles 45-to-60 days out. Forecast each separately and you'll spot the working-capital gap that month-end aggregates hide.
Negotiate factoring or AR financing on your wholesale book. Settle, Pipe, and Wayflyer all offer embedded-credit products that advance 80% to 90% of invoice value at order. For brands with $5M+ in wholesale revenue, the cost is typically 1.5% to 3% of the advance, which is materially cheaper than the gross margin you'd give up by walking away from a net-60 retailer. Olaplex's 2023-to-2024 DSO compression (32.6 to 12.9 days) is the public-company version of this playbook.
Decide which retailers are worth the float and which aren't. Not all wholesale channels are created equal. Faire and Settle make a wholesale dollar look like DTC because they front the cash. Target and Walmart make a wholesale dollar feel like CPG because you finance the entire channel for 60 to 90 days. Use the ad-MER-adjusted test above (wholesale GP per revenue dollar vs. DSO_days/365 x annual MER contribution per idle dollar) to rank channels and exit the ones below threshold. Some Target deals destroy more value than they create, and walking away is a legitimate move.
For more on related working-capital decisions, see our cash conversion cycle benchmark for public DTC brands and the Amazon Seller Central accounting guide.
Sources and methodology
Primary data: SEC EDGAR XBRL 10-K filings. DSO was computed as (AccountsReceivableNetCurrent at fiscal year-end / Revenues for fiscal year) x 365. Figures taken from each company's annual report filed with the SEC, FY2024 annual data (FY2025 where calendar-aligned), as reported. Companies and CIKs: Allbirds (BIRD, CIK 1653909), Warby Parker (WRBY, CIK 1504776), FIGS (CIK 1846576), Revolve Group (RVLV, CIK 1746618), Stitch Fix (SFIX, CIK 1576942), YETI Holdings (CIK 1670592), Olaplex Holdings (OLPX, CIK 1868726), e.l.f. Beauty (ELF, CIK 1600033), Celsius Holdings (CELH, CIK 1341766), Vita Coco (COCO, CIK 1482981), Sally Beauty (SBH, CIK 1368458).
Channel-mix attributions are drawn from each company's 10-K segment disclosure, investor presentations, and stated DTC / wholesale split. Where the company does not disclose mix explicitly, the attribution is an operator-judgment estimate based on the brand's stated go-to-market (for example, Revolve is approximately 100% DTC because it sells through its own .com and dress.com properties; Celsius is wholesale-dominant because of the Pepsi DSD distribution agreement).
Payout-timing benchmarks are drawn from: Shopify Payments documentation (T+2 standard, T+1 available), Stripe payout documentation (T+2 standard for US accounts), Amazon Seller Central help center (bi-weekly disbursement), Amazon Vendor Central standard vendor manual (net-30 / net-60 invoice terms verified through industry sources), Faire merchant agreement (1-to-3-day brand payout, net-60 retailer collection), and published Klarna / Afterpay / Affirm merchant payout terms. The 14-day Amazon Seller Central cycle is the contractual disbursement window; effective time-to-cash is closer to 17 to 19 days once bank-posting lag is included.
Limitations. Five to flag. First, AR in 10-K filings is net of allowances for returns, chargebacks, and credit losses, so the gross receivable is higher and the cash-cycle drag may be worse than DSO suggests. Second, DSO captures only the billed-receivables side of wholesale cash drag; the full operating-cash gap also includes 15 to 30 days of inventory produced for retailer POs but not yet billable, which is why the table figcaption flags Celsius's true gap as 88 to 103 days rather than 72.8. Third, several of these companies use receivables factoring or supply-chain finance programs (Olaplex disclosed factoring in 2023), so the reported DSO is post-factoring and pre-factoring DSO would be higher. Fourth, Stitch Fix and Honest Company are excluded from the headline table: Stitch Fix because its AR line is empty (the subscription model nets payment-processor receivables against deferred revenue), and Honest Company because AR is not separately broken out from "other current assets" in a way that supports a clean DSO calculation. Fifth, e.l.f. Beauty's fiscal year ends March 31, so the table uses its FY25 (March 2025) AR balance against the cleanest available comparable revenue period.
Update cadence. This is a Group A living-index post. We refresh quarterly when public-company 10-Ks and 10-Qs land. Last refreshed: 2026-06-01. Next refresh target: 2026-09-30 (after Q2 calendar earnings season).
Frequently asked questions
what is a good dso for a dtc ecommerce brand on shopify?
Two to five days is the band. If you're pure DTC on Shopify Payments or Stripe with no wholesale leakage, your DSO should sit at T+2 plus a couple of days of bank-posting lag. The public-company benchmark for pure-DTC brands (Revolve at 3.3, FIGS at 4.4, Warby Parker at 0.9) confirms this. If yours is north of 10 days, you have either chargebacks accruing, B2B-style wholesale orders running through the same Shopify checkout, or BNPL receivables that don't settle on the same T+2 cadence.
why is my dso higher than 2 days if i sell direct on shopify?
Three usual suspects. First, BNPL receivables (Afterpay, Klarna, Affirm) settle 1 to 7 days after order, not the same business day as a card payment. Second, chargeback reserves that processors hold against your account get counted as AR. Third, you may have B2B or wholesale orders running through the same Shopify checkout on net-30 terms that you're not tracking separately. A finance lead on one of our weekly senior-partner calls put it simply: 'for D2C brands, you really want to keep it at 15 days because all things together combine.'
how does dso change when i add wholesale to my dtc brand?
In our 10-brand sample the wholesale-mix-to-DSO slope ranges from roughly 0.4 days per point at the omnichannel end (YETI, 24 days at ~55% wholesale) to roughly 0.7 days per point at the CPG-DSD end (Celsius, ~73 days at near-100% wholesale). e.l.f. Beauty's 34.5 days with mass retail (Target, Walmart, Ulta) plus DTC sits in the middle. The dollar version of the same math: every $1M of net new wholesale revenue at net-60 terms ties up $80K to $150K of working capital you won't see for two months. That's cash you can't redeploy into ad spend, inventory, or hiring.
what is the dso for amazon seller central vs amazon vendor central?
Amazon Seller Central (3P / marketplace) disburses every 14 days, so the effective DSO sits at 14 to 21 days once you add bank posting and the standard reserve hold. Amazon Vendor Central (1P, where Amazon buys your inventory) operates on net-30 to net-60 invoice terms, with net-60 the most common for larger vendors. This is the mechanical reason FBA-heavy brands see DSO closer to 15 to 25 days rather than the 60-plus wholesale benchmark.
how does faire's net 60 actually work for me as the brand?
Faire pays your brand in 1 to 3 business days after the retailer order ships. Faire then collects from the retailer on net-60 terms. Faire is taking the float (and the credit risk) in exchange for a tiered take rate: 25% on first orders from a new retailer and 15% on reorders, per Faire's published commission structure. The result: your effective DSO on Faire revenue looks like DTC even though the channel is technically wholesale. Settle and Wayflyer offer similar embedded-credit products for direct retailer relationships outside the marketplace.
is dso the same as cash conversion cycle for ecommerce?
No. DSO is one of three components. Cash conversion cycle = DSO + DIO (days inventory outstanding) - DPO (days payable outstanding). A pure-DTC brand might have DSO of 3 days but DIO of 90 days (inventory sitting in your 3PL) and DPO of 45 days (your supplier terms), which means your cash is locked up for 48 days net. DSO is the easiest dial to move when you're shifting channel mix; DIO requires demand forecasting; DPO requires supplier negotiation.
what dso should i expect when i start selling to target or walmart?
Plan for 60 to 90 days. Standard mass-retail vendor terms run net-60 with Target and net-90 is common with Walmart depending on the buyer relationship and SKU velocity. Add 15 to 30 days of inventory-in-transit-or-at-DC that you've already produced but can't bill yet, and your true cash gap on net-new Walmart revenue is closer to 90 to 120 days from PO acceptance. The math behind any 'should we take the Walmart deal' decision needs to weigh gross margin uplift against that float cost.
does buy now pay later (afterpay klarna affirm) increase my dso?
Slightly, but it's bounded. BNPL providers pay you 1 to 7 days after the consumer purchase, so the bump versus card payment is small (5 days at the outside). The bigger DSO risk isn't BNPL itself, it's that BNPL share of cart often correlates with higher-AOV orders, which can drag your blended DSO upward as the BNPL mix grows. Track BNPL settlement separately in your cash forecast so you don't conflate it with card processor payouts.
