Skip to main content

Product Tags and Calculation Exclusion released

v1.6.0

Thank you for using LISMOA.

This is a large update covering six weeks of work (v1.4.1 through v1.6.0). The two headline features are Product Tags, which let you group products by any dimension your team cares about, and Calculation Exclusion, which lets you temporarily remove specific rows from aggregation. We are also shipping B2B (Amazon Business) columns, ad performance pages by portfolio and by store, breakdown tooltips across all aggregate pages, and a new notification inbox.

Product Tags

We are introducing Product Tags — a way to group products by any dimension your team defines. Create tags from Settings > Product Tags and use them to filter across 11 pages including Products, Time Series, and Ads.

Creating and editing tags

Open Settings > Product Tags and click Add product tag. Give each tag a name (e.g. "Flagship products", "OEM") and pick a color from ten presets. Drag rows to reorder the list — this order also drives the order of filter options and the badges shown in the Product Tags column.

Tags are shared across your team, so any dimension your team uses to analyze — owner, season, category, and so on — carries into LISMOA cleanly.

Applying tags to products

On the Products page and Parent Products page, open the row's action menu (the three dots on the right) and choose Edit tags. Tick or untick tags to add or remove them. When you edit a parent product, tags are applied to every child product under it, so bulk tagging is one click away.

The Product Cost CSV upload also now has a Tags column. Provide a comma-separated list of existing tag names and the row's tags will be replaced with that set (an empty cell leaves existing tags untouched).

Filtering and analysis

You can now filter by Product Tags on the following pages:

  • Products / SKUs / Parent Products / Order Items
  • Subscribe & Save
  • FBA Inventory / Storage Fees / Returns / Reimbursements
  • SP Ads / SD Ads (campaigns, ad groups, ads, search terms)

Time Series and By Store also accept Product Tags in their filters. Note that on these aggregate pages only the "include" mode is supported — exclude mode is not available there.

Related PRs: #2549 #2573 #2695 #2703 #2723 #2749 #2779 #2983 #3000

Calculation Exclusion

Calculation Exclusion lets you temporarily remove outlier or out-of-scope revenue and costs from aggregation. Because it is exclusion, not deletion, you can undo it at any time and bring rows back into aggregation.

What you can exclude

You can exclude and un-exclude at five granularities:

  • Orders
  • Products (also cascades from Parent Products to all child products)
  • Expenses (Amazon-sourced only — manually entered expenses cannot be excluded)
  • SP / SB / SD campaigns

How it works

Open the row's action menu (the three dots on the right) on any list page and choose Exclude. A confirmation dialog shows the scope of the exclusion before it runs. Excluded rows show an Excluded badge, and each list has a new filter to switch between Only excluded and Include excluded.

Un-exclude runs from the same menu. A toast notification confirms the result and offers an Undo button to reverse it instantly.

How exclusions flow into aggregation

  • List pages (real-time aggregation): reflected immediately
  • Dashboard / daily aggregation: reflected on the next batch run (up to a one-day delay)
  • CSV export: excluded rows are not included

Mixed orders and pro-rating

When an order contains both excluded and normal products, we subtract only the ten product-level columns (price, refunds, discounts, gift-wrap fees, promotions and their refunds) tied to the excluded products. Order-level fees such as Amazon fees, shipping cost, and points are kept in full because they do not scale linearly with a subset of the order.

Exclusion operation log

To help you trace who excluded or restored what and when, we added an Log > Exclusion operations page. It lists the date, target type, target, action, and operator. Exclusion is available to every team member, so this history exists to make actions traceable.

Related PRs (feature): #2204 #2271 #2696 #2780 #2836 #2849 #2868 #2869 / Related PRs (log): #2244 #2480 #2681 #2844

What's new

  • B2B (Amazon Business) columns: track sales, order count, and traffic from B2B buyers separately from consumers on Products, Time Series, and Ads pages. (#2532 #2548 #2582 + 7 more)
  • Ad performance by Portfolio and by Store: new pages that show ad performance across SP / SB / SD grouped by Amazon portfolio and by store. (#1691 #1694 #1731 #1985)
  • Breakdown tooltips extended to aggregate pages: gross profit, operating profit, net gross profit rate and other totals now show breakdown tooltips on Time Series, By Store, Products, SKUs, Orders, and Order Items — the same breakdown you see elsewhere. (#1689 #1690 #1692 + 3 more)
  • Notification bell and notification inbox: a bell icon in the sidebar surfaces recent notifications such as data-sync stops and unlinked ads. The redesigned inbox (a 3-layer model) keeps them as history. (#1717 #1990)
  • Product default shipping cost auto-assignment extended: default shipping cost from the product master now also auto-assigns to orders containing multiple units of the same product or multiple products. (#2208 #2266 #2678 + 6 more)

Improvements

  • Multiple internal security improvements. (#2135 + 13 more)
  • List page performance improvements across Parent Products, Order Items, Ads lists, plus reduced table re-renders, deferred chart loading, and server fetch cache/parallelization — six improvements shipped at once. (#1817 #1818 #1819 #1828 #1829 #1830)
  • Large-value display beyond 1 billion: for figures between 1 billion and 99.9 billion, summary cards now show precision down to the ten-thousands place. Cards auto-adjust granularity based on width. (#2538 #2598 #2691 + 3 more)
  • Table header readability improvements: smaller font with a guaranteed minimum visible character count. (#2416 #2435 #2513 #2569)
  • Prevent duplicate free trial signup with the same email address: also fixes the missing error message on 422 responses at signup and invite. (#2211 #2214 #2261)
  • Fix the misleading "No data" display when list fetch fails: rendered differently so that transient errors are no longer confused with an empty dataset. (#2417 #2434)
  • Percentage columns in the expense column of the Time Series page now display as integers without a sign. (#1688 #1982)
  • SB Search Terms page column names, badges, and default visible columns are now unified with other ad pages. (#2051)
  • Structured data (JSON-LD) added to LP for richer search engine results. (#2243)
  • Store name on By Store aggregate page now shows the marketplace to disambiguate stores with the same name. (#2413)

Fixes

Ad metrics

  • CPO / ACOS / ROAS on the Ads summary page no longer overstate values relative to actuals. (#1991 #2000 #2002 + 3 more)
  • The three time-series ad metrics (New customer order rate, New customer DPV CPA, vCTR) now aggregate only SB / SD as declared; vCTR unit is unified to percentage. (#2088 #2091 #2246 #2264)
  • ROAS on SP / SB / SD summary cards no longer displays a ratio in a percent field. (#2083)
  • DSP viewability rate now applies the ×100 conversion; SP ROAS in CSV now matches other ad types' unit. (#2159 #2298 #2346)
  • SP / SB / SD summary card tax treatment is now aligned with the list view. (#2220 #2295)
  • Summary cards on the Ad Platform page now correctly receive filter conditions. (#2145 #2292 #2312 + 2 more)
  • SB ad vCTR is no longer displayed at 10× the official definition. (#1647)
  • SD ads page column "Available [Inventory]" no longer shows the wrong heading ("Awaiting inbound"). (#1647)
  • 33 unsortable ad column headers are now rendered as static headers (previously they looked clickable but did nothing). (#2147 #2239)
  • OLAP (DuckDB) read path no longer skips filters for ad ID search and expense accrual. (#2473 #2781 #2817 #2841)
  • The shared ad master's percentage metrics now apply the ×100 conversion (an earlier fix missed these). (#2078)
  • Ad CSVs now include user-selected metrics and exclude stopped rows to match the on-screen view. (#2578 #2674 #2981 #2994)
  • sb/search_terms view-through metrics no longer miss the ×100 conversion. (#2433)
  • SP search-term targeting search is now applied consistently to the list and CSV. (#2823)

Aggregation and display

  • Net gross profit rate denominator is now unified to Total sales; the description of Average order value now varies with the active filter. (#2097 #2245)
  • Column descriptions on the Products and Time Series pages no longer disagree with the actual calculation (multiple fixes). (#1646 #1659)
  • Summary card order count and cancellation count are now correct unique (distinct) values. (#2217)
  • The Parent Products page no longer shows order count and cancellation count columns; item count is now the primary metric. (#2218 #2515)
  • Remaining references to "Performance" on the Time Series page have been renamed to "Time Series" for consistency. (#2429 #2596)
  • The profit column label is unified as "Gross profit" across pages. (#1646)
  • The tooltip for order miscellaneous costs no longer reads as if it were a cost on the Expenses page. (#1659)
  • Three review pushback fixes: unsortable column headers, tooltip content, and formula-string consistency. (#2076 #2148)

Data import and integrity

  • CSV bulk-update no longer fails the entire file when a single row has an extreme value; partial errors are now surfaced. (#2209 #2420 #2675)
  • The 22 pages whose default date range showed "up to yesterday" late at night now correctly include today. (#2357)
  • Subscribe & Save summary cards now respect the applied filter. (#2052)
  • Transactions page transaction-type and detail filters now work with Japanese-labeled values. (#1649 #2050)
  • On-screen filters are now correctly reflected in CSV exports (fixes five brand-exclude filters, eleven portfolio filters, and three missing front-end send paths). (#1760 #1763 #1765 #1766 #1767)
  • Purchase price and shipping cost columns on units now support decimals. (#2619 #2622)

Notifications and alerts

  • Fixed a case where alert notifications stopped being delivered to certain teams after reconnecting Slack. (#1981)
  • Session/traffic and Data Kiosk fetch failures now auto-retry on later runs. (#1613 #1728)
  • Free plan detection now keys off stripe_plan_key correctly. (#1628)
  • The sidebar progress bar no longer disappears mid-run for long-running batches. (#1686)