Skip to main content
Pricing

BillingBot — Pricing Resolution Guide

How unit prices and costs are determined during distributor charge imports

Last updated 24 days ago

How unit prices and costs are determined during distributor charge imports

Download this guide as PDF

Overview

BillingBot determines the selling price (Unit Price) and the cost (Unit Cost) of each product when importing charges from your distributor (Pax8) or from a Universal CSV file. You control these values through the product configuration in Map Products.

The Unit Price is resolved using four modes, in priority order:

  1. Price Override (highest priority) — Uses a fixed Base Price you configure.
  2. Margin Override — Calculates the price dynamically from cost plus a margin percentage.
  3. Use Halo Price — Uses the price of the Halo item the product is mapped to.
  4. Default — Uses the distributor retail price (or the price from the CSV file).

The Unit Cost is controlled separately by Cost Override: when enabled, the cost is locked to a fixed Cost Price; otherwise the distributor cost is used. Cost Override can be combined with any of the price modes above.

Priority Rule: Price Override always wins for the selling price. If it is enabled, Margin Override is ignored. Margin Override applies only when Price Override is OFF, and Use Halo Price applies only when both are OFF.

Base Data for All Examples

ParameterValueDescription
Distributor RRP$10.00Suggested retail price from the distributor
Distributor Cost$6.00Your wholesale cost from the distributor
Quantity8Number of licensed units
Base Price$12.50Fixed selling price (used with Price Override)
Cost Price$5.00Fixed unit cost (used with Cost Override)
Margin Percentage40%Margin over cost (used with Margin Override)
Halo item price$12.50Recurring Price of the mapped Halo item (used with Use Halo Price)

Scenario 1: Default (no overrides)

Settings: Price Override = OFF, Cost Override = OFF, Margin Override = OFF, Use Halo Price = OFF

With no overrides enabled, BillingBot uses the distributor retail price as the selling price and the distributor cost.

FieldValueSource
Unit Cost$6.00Distributor wholesale cost
Unit Price$10.00Distributor RRP (retail price)
Total Price$80.00$10.00 x 8
Net Amount$48.00Distributor cost total

Result: The customer is charged the distributor suggested retail price. You do not control the selling price. (With Pax8, if the unit price does not match Pax8's line total, it is adjusted to Total ÷ Quantity — see Where Values Come From.)

Scenario 2: Price Override (fixed selling price)

Settings: Price Override = ON (Base Price = $12.50)

The selling price is locked to the Base Price you enter in Map Products, regardless of the distributor price.

FieldValueSource
Unit Cost$6.00Distributor wholesale cost
Unit Price$12.50Base Price (Map Products)
Total Price$100.00$12.50 x 8
Net Amount$48.00Distributor cost total

Result: The price is fixed at $12.50 per unit. If the distributor cost rises, your Base Price stays $12.50 and your margin changes. The price does not auto-adjust.

Scenario 3: Margin Override (dynamic margin-based price)

Settings: Margin Override = ON (Margin % = 40)

Formula: Unit Price = Unit Cost x (1 + Margin% / 100). Example: $6.00 x 1.40 = $8.40

FieldValueSource
Unit Cost$6.00Distributor wholesale cost
Unit Price$8.40Cost x (1 + 40%)
Total Price$67.20$8.40 x 8
Net Amount$48.00Distributor cost total

Result: Your profit margin stays consistent at 40%. If the cost rises to $8.00, the price auto-adjusts to $11.20, keeping the 40% margin.

Scenario 4: Cost Override (fixed cost)

Settings: Cost Override = ON (Cost Price = $5.00)

The distributor cost is ignored and the unit cost is locked to the Cost Price you enter. In this example the selling price uses the default (no price override), so only the cost changes.

FieldValueSource
Unit Cost$5.00Cost Price (Map Products)
Unit Price$10.00Distributor RRP (retail price)
Total Price$80.00$10.00 x 8
Net Amount$40.00Cost Price x Quantity

Result: The unit cost is locked at $5.00 and the Net Amount becomes $40.00 ($5.00 x 8). The distributor cost is not used.

Combining Cost Override: Cost Override can be combined with the price modes. With Cost Override + Margin Override (40%), the price would be $5.00 x 1.40 = $7.00. With Cost Override + Price Override, the cost is $5.00 and the price is the fixed Base Price.

Scenario 5: Use Halo Price (price from your Halo item)

Settings: Use Halo Price = ON, Price Override = OFF, Margin Override = OFF (Halo item Recurring Price = $12.50)

The selling price is read from the Halo item the product is mapped to, every time charges are imported. BillingBot uses the item's Recurring Price; if it is 0, it uses the item's Base Price.

FieldValueSource
Unit Cost$6.00Distributor wholesale cost
Unit Price$12.50Halo item Recurring Price
Total Price$100.00$12.50 x 8
Net Amount$48.00Distributor cost total

Result: You keep your price list in Halo. If you change the price of the item in Halo, the next import uses the new price.

Good to know:

  • It uses the general price of the Halo item. Customer-specific prices configured in Halo are not used.
  • If the Halo item has no Recurring Price and no Base Price, the charge keeps the default price and the import shows a warning listing those products.
  • New products start with Use Halo Price turned off. A Universal CSV that carries no selling price (a cost-only export) imports those products at a unit price of 0; the import summary lists every charge in that situation so you can enable Use Halo Price (or a Price Override) before sending.
  • Items created in Halo by BillingBot start with the distributor price of the day they were created. Check their price in Halo before enabling this option.
  • The Edit dialog in Map Products shows the price that will be used before you save. To enable it for many products at once, select them and click Bulk Use Halo Price.

Charging One Customer a Different Price

The pricing options in Map Products apply per product: every customer with that product gets the same Price Override, Margin Override, Cost Override or Use Halo Price.

To charge one customer a different price for the same product:

  1. With Pax8 — Set that customer's price in Pax8 and leave Price Override, Margin Override and Use Halo Price turned off for the product. BillingBot then uses the price on each customer's Pax8 invoice line, so every customer is billed at the price you set for them in Pax8.
  2. For a one-off adjustment — Edit the Unit Price of the charge in Ready To Invoice before sending it. It applies only to that charge (see When Do Changes Take Effect?).

Before turning an override off: all your other customers with that product will be billed at their Pax8 price. Check those prices in Pax8 first.

Where Values Come From and How They Are Sent to Halo

For each charge line, BillingBot resolves the values from the sources below and sends them to the corresponding Halo invoice line fields.

FieldHow it arrives (source)Sent to Halo
Unit CostCost Override: Cost Price; otherwise the distributor cost (or CSV cost)unit_cost
Unit PricePrice Override: Base Price; Margin Override: Cost x (1 + Margin%); Use Halo Price: Halo item price; otherwise the distributor RRP (or CSV price) — for Pax8, adjusted to Total ÷ Quantity when the two do not match (see below)unit_price
Total PriceOverride: Unit Price x Quantity; otherwise the distributor total (or CSV total)total_price
Net AmountCost Override: Cost Price x Quantity; otherwise the distributor cost totalnet_amount
QuantityDistributor invoice (or CSV file)qty_order

When Pax8's unit price does not add up to its total: HaloPSA bills Quantity x Unit Price, not the total BillingBot sends. Pax8 sometimes sends a unit price that does not match its own line total — for example a unit price of 0 with a real total, or a unit price rounded to 2 decimals (2,700 x $0.54 = $1,458.00 for a Pax8 total of $1,451.34). When the charge uses Pax8's price (no Price Override, no Margin Override, no Use Halo Price) and Quantity x Unit Price misses the Pax8 total by more than one cent, BillingBot sets the Unit Price to Total ÷ Quantity, rounded to 6 decimals, so HaloPSA bills exactly what Pax8 charged. That is why some charges show unit prices with up to 6 decimals. Azure charges are not adjusted: they keep Pax8's own amounts.

When Do Changes Take Effect?

Pricing and cost configuration in Map Products applies as follows:

  1. Configured before importing — The values are applied automatically when charges are imported.
  2. Edited after importing — When you save the product in Map Products, BillingBot automatically updates the current period pending charges so they reflect the new price, cost and flags. Only the product's own fields change on those charges (the Halo product, name and SKU, and the pricing settings; the amounts only when an override or Use Halo Price recalculates them). A Cross-Map, an exclusion or a price typed in Ready To Invoice in the meantime is kept.
  3. Already invoiced charges — Charges that have already been sent/invoiced are never modified; only pending charges are updated.
  4. Prices typed on a charge — A price you type on a charge in Ready To Invoice is kept when new charges are imported. It is replaced if the product is saved in Map Products with an override or Use Halo Price enabled, or if that company's charges are reimported.

Applies to Pax8 and Universal CSV: The same pricing and cost resolution applies to charges imported from Pax8 and from Universal CSV files.

Prorated charges from Pax8: Pax8 bills mid-month additions and removals as separate lines whose unit price and cost are already prorated (for example 1 × $17.30 for half a month of a $35.76 license). BillingBot imports them as a product of their own, named after the main product with "-Partial", with its own pricing settings. Without overrides, or with Margin Override (which works on the already prorated cost), the charge keeps its proration. A Price Override or "Use Halo Price" on a "-Partial" product is sent as it is, without prorating it again, so enter the already prorated price. The main product's override does not apply to its "-Partial" product.

Credits and partial charges in CSV files: Some CSV files report the full unit amount and show a credit or a partial period only in the line total (for example quantity 9, unit cost $1.11, total -$8.06). BillingBot applies that same share to the Base Price, the Cost Price and the Halo price, so with an override a credit stays a credit and a partial charge stays partial. For example, a full credit of 27 units with a Base Price of $12.96 is sent as -$349.92, not as a charge of $349.92.

Configuration Guide

To configure pricing and cost for a product:

  1. Open Map Products — Go to Map Products and click Edit on the product.
  2. For a fixed selling price — Enable Price Override; a Base Price field appears — enter the selling price.
  3. For a margin-based price — Enable Margin Override; a Margin Percentage field appears — enter the margin (e.g., 40).
  4. For a fixed cost — Enable Cost Override; a Cost Price field appears — enter the unit cost.
  5. For the price of your Halo item — Enable Use Halo Price; the dialog shows the Halo price that will be used.
  6. For distributor defaults — Leave the overrides disabled to use the distributor price and cost.
  7. Save — Click Update Item. Pending charges for the current period are updated automatically.

Input fields appear on demand: Each value field is shown only when its override is enabled: Base Price with Price Override, Cost Price with Cost Override, and Margin Percentage with Margin Override.

Key Fields Reference

FieldDescription
Unit CostWholesale cost (locked to Cost Price when Cost Override is on)
Unit PriceSelling price charged to the customer (determined by the pricing mode)
Total PriceUnit Price x Quantity
Net AmountUnit Cost x Quantity (your total cost)
Base PriceFixed selling price used when Price Override is ON
Cost PriceFixed unit cost used when Cost Override is ON
Margin PercentageMargin % applied over cost when Margin Override is ON
Price OverrideLocks the selling price to Base Price
Cost OverrideLocks the unit cost to Cost Price
Margin OverrideCalculates the price from cost plus margin percentage
Use Halo PriceUses the Recurring Price (or Base Price) of the mapped Halo item

Quick Comparison Table

Comparison of the modes using the base data (cost $6.00, RRP $10.00, 8 units; Cost Price $5.00 in the Cost Override column; Halo item price $12.50 in the Halo Price column):

DefaultPrice Ov.Margin Ov.Halo PriceCost Ov.
Unit Cost$6.00$6.00$6.00$6.00$5.00
Unit Price$10.00$12.50$8.40$12.50$10.00
Total Price$80.00$100.00$67.20$100.00$80.00
Net Amount$48.00$48.00$48.00$48.00$40.00

For additional assistance, contact your TechPulse account representative. (BillingBot by TechPulse — v2.1, September 2026)

Was this helpful?

Still need help? Ask the team