Most tools tell you what they can do. Here is what ProfitRoot cannot do yet.
For most of this product's life, ProfitRoot's Shopify parser had never been run against a real Shopify export -- every tie-out was against fixtures we wrote ourselves. Then we ran it against a real one, and two of the three assumptions we had been carrying were false:
The consequence, stated plainly: our reconciliation and integrity guards had encoded the false premise. ProfitRoot would have hard-halted on every order carrying a discount -- which is to say, on most real stores. It would not have shown a wrong number; it would have refused to show a correct one. That refusal-to-fabricate is why the failure was safe, not silent.
This is fixed. The real export now reconciles to a zero residual, and it is a permanent fixture in our test suite.
Channel / source mix: not available. The Shopify Orders export carries a coarse Source (web, pos, draft order); we do not read it. The granular channel (Online Store / Shopify Mobile / Shop) does not exist as a column at all -- so ProfitRoot cannot show revenue by sales channel, and will not invent one.
Returns handling: no returns source exists, and no code consumes a returns file. Contribution Margin is reported before returns handling.
Ad spend: not consumed. Contribution Margin after marketing is not available.
Inventory: scenario only. Never reconciled. Cash runway is not a reconciled fact.
Payment fees: require payout data. When coverage is partial (some orders are processed elsewhere), it is reported as partial -- never completed by assumption.
Gift cards: a gift-card sale is deferred revenue -- a liability, not Net Sales, until redeemed. ProfitRoot excludes gift-card lines from Net Sales with an explicit reason. Detection is conservative (the line must be non-shippable AND named as a gift card), so a renamed or mixed gift-card order may not be caught.
Product mix: line-item only. Catalog and variant joins require a Shopify Products export.
SKU coverage depends on the merchant: Lineitem sku is optional in Shopify and many stores never set it. Product cost is matched by SKU, so where a SKU is missing ProfitRoot computes Gross Margin over the covered lines only, reports the value coverage, and NAMES the products that have no cost. It never presents a partial Gross Margin as a complete one, and a partial Gross Margin can never become a complete Contribution Margin.
Granularity: monthly. There is no intra-month or daily analysis.
Root Insights: not available on the D2C surface (it is roadmap-tagged in pricing).
Currency: ProfitRoot assumes a single presentment currency and does not convert. A file that mixes currencies across included orders is rejected with a loud error -- it is never silently mis-summed.
Shipping and taxes are untested: every order in our real export had zero shipping and zero tax. Shopify's Subtotal excludes both by definition, so we believe Net Sales is unaffected -- but we have not proven it against a real order that carries them.
This list is maintained honestly. If something here changes, this page changes.