Skip to content

Pricing from cost with Cost Plus

Derive a product's list price from its HubSpot cost of goods sold — a fixed amount above cost, a markup, or a target margin — per currency.

Cost Plus is a price adjustment for teams that price from cost rather than from a maintained list price — make-to-order manufacturers, distributors, and anyone whose margins are set as a policy. Instead of storing a price on each product, you store the product’s cost of goods sold in HubSpot and tell the price book how much to add on top. The list price is calculated the moment a rep adds the product to a quote.

This feature requires an Enterprise plan. Trial accounts include it.

  • An Enterprise plan.
  • The product’s Unit cost (hs_cost_of_goods_sold) filled in on the HubSpot product record, in your portal’s primary currency. A product with no cost, or a cost of 0, cannot be priced with Cost Plus.
  • For prices in a non-primary currency, a HubSpot exchange rate from your primary currency to that currency (Settings → Currencies in HubSpot).

You choose a Basis and, for percentages, whether the percent is a markup or a margin:

Basis Percent is a Formula Cost 100, value 30
Amount above cost — cost + amount 130.00
Percent of cost Markup cost × (1 + percent) 130.00
Percent of cost Margin cost ÷ (1 − percent) 142.86

The result is the product’s list price in that currency. Everything that happens after the list price — quantity, discounts, calculated pricing formulas, volume of the deal — works exactly as it does for any other adjustment.

Rounding. By default the derived price is rounded to two decimal places. Uncheck Round results to two decimal places to keep five decimals instead.

  1. Open Pricing → Price Books in Quotivity Studio and open the price book.
  2. Click the price cell for a product and currency, then choose Cost Plus under Override By.
  3. The dialog shows the product’s cost in your primary currency. For a non-primary currency it also shows the converted cost, the exchange rate used, and the rate’s effective date. If the product has no cost (or a cost of 0), No cost of goods sold appears in red, Basis and Percent is a are disabled, and Save adjustments stays disabled until you set Unit cost on the HubSpot product.
  4. Choose the Basis (percent of cost or amount above cost) and, for percent, whether the value is a Markup or a Margin.
  5. Enter the value. The Calculated Price preview updates as you type.
  6. Leave rounding on unless the product also uses a calculated price formula (see below). Click Save adjustments.

You can set Cost Plus on many products at once: select the products, click Override Prices, and choose Cost Plus. The same basis, mode, value and rounding apply to every selected product that has a unit cost; each of those products still prices from its own cost. Products with no cost, or a cost of 0, are skipped — the dialog names them before you save, and a message confirms the skip after save. If none of the selected products have a cost, Save adjustments stays disabled. Applying Cost Plus to the whole price book also skips products without a cost. On catalogs with more than 500 products that can take Cost Plus, the rest of the book updates in the background and you still see which products were skipped.

Cost is always entered in HubSpot in your primary currency. For any other currency, Quotivity converts the cost using the current exchange rate in your HubSpot currency settings, then applies the Cost Plus adjustment in that currency. Rounding happens once, after the conversion and the markup, so the result matches what you would get by converting the finished price.

Quotivity keeps a copy of your HubSpot exchange rates. The copy always refreshes when the app is installed or re-authorized, and again when an admin opens the Cost Plus dialog if that copy is more than 24 hours old. If HubSpot has no rate from your primary currency to a quote’s currency, the product cannot be priced in that currency. If you change your portal’s primary currency, non-primary Cost Plus prices are unavailable until the rates refresh.

A Cost Plus product with a cost and a usable rate behaves like any other priced product. When a product cannot be priced — no cost, or no exchange rate for the quote’s currency — Quotivity never falls back to $0:

  • In the Add Line Item panel the product stays visible but is disabled, with a tooltip explaining why (for example, “This product has no cost of goods sold, so it can’t be priced in USD.”).
  • A bundle whose required option has no priceable product is disabled in the product library, and the Bundle Configurator shows the reason and disables Add to Quote until a priceable product is selected.
  • When a rule (Add Line Items, Add Collection, Swap Bundle Product) or a manually added collection would add such a product, the product is skipped and the rep sees a message naming the product and the reason.
  • A quote created from a deal that already carries such a line item drops that line and shows a warning.

Cost Plus is applied when a product is added to a quote. Changing the product’s cost in HubSpot, the adjustment, or an exchange rate afterwards affects new additions only. A line already on a quote keeps its price. The exceptions are cloning a quote, which re-prices every copied line from the current price book (and omits a Cost Plus line that can’t be priced), and switching the quote’s price book, which re-prices every retained line in the new book.

A calculated price formula multiplies the list price. If a Cost Plus product also uses a formula, turn off Round results to two decimal places on the Cost Plus adjustment so the rounding error is not multiplied by the formula. Round in the formula instead. The dialog shows this recommendation when the product has a formula assigned.

You manufacture custom frames. The frame’s Unit cost in HubSpot is $100. Your US price book sets Cost Plus, percent of cost, markup 30%; your Canadian price book sets Cost Plus, percent of cost, margin 30%. With a USD→CAD rate of 1.37:

Quote currency Converted cost Adjustment List price
USD 100.00 30% markup 130.00
CAD 137.00 30% margin 195.71

When the frame’s cost rises to $110, the next frame added to a quote prices at $143.00; frames already on quotes stay at $130.00.

  • Cost Plus is one of the Override By choices, so a product uses either Cost Plus or another adjustment in a given currency, not both.
  • On a single product, Cost Plus cannot be saved until the HubSpot unit cost is set (and, for a non-primary currency, until an exchange rate exists). No cost of goods sold appears in red and Save adjustments is disabled. Bulk Cost Plus skips products without a cost and shows a message naming them; if none of the selected products have a cost, Save adjustments stays disabled. Skipped products cannot be added to a quote.
  • A margin of 100% or more, or a negative value, cannot be saved.
  • Price book import and export support Cost Plus with model set to costplus — see Price book import file format. Cost Plus on a product with no unit cost (or a cost of 0) is skipped for that currency and listed in the import feedback file as Product has no cost of goods sold. Other currencies on the same row still import.