BBizOS Docs

Pricing & price lists

Most Indian local businesses don’t have one price. They have a counter price, a trade price, a rate for the builder who buys in bulk, and a festival offer. BizOS models that directly, so the right number appears on the line without anyone remembering it.

Pricing one item

The item form has one pricing block, and it works whichever way you think:

I know the MRP

Type the GST-inclusive figure and tick inclusive. BizOS strips the tax to a base price for storage and shows it back to you the way you entered it.

I know my cost and my margin

Enter the purchase price (inclusive or not), the purchase tax rate, and a markup percentage. The sale price is derived — no calculator.

Margin in BizOS is markup on cost — the way a shopkeeper says “I keep 20 per cent”. Gross margin is derived for display, never stored, so the two can never drift apart.

Business-wide defaults for new items (house markup, whether you usually think in inclusive prices) live in Settings → Selling → Items & pricing.

Pricing an item as MRP-inclusive is different from the Type rates including GST setting, which only changes how rates are typed in the invoice and quote editors. See GST billing.

Price lists: named tiers

A price list is a tier with a name and a code. Every business gets one default tier (Retail) automatically. Create as many more as you sell at, under Items & stock → Lists → Price lists.

Two kinds:

KindHow it pricesGood for
Own prices per itemPer-item prices you set, with quantity bandsTrade rates that aren’t a flat percentage of retail
Flat % offA flat percentage off every item’s sale price, no per-item prices“Staff and family: 10% off everything”

Assign a tier to a customer and every line you bill them resolves at that tier — including when you switch the customer halfway through building a document, which re-prices every line at once.

Quantity bands and promo windows

Inside a tier with its own prices, each item can carry several bands:

  • A minimum quantity — buy 10 or more and this price applies.
  • An optional band discount that stacks on the band price.
  • Valid from / valid to dates for a festival or clearance window.

A band with no minimum quantity is the tier’s catch-all and takes precedence over the volume breaks, so a hand-set tier price behaves the way you expect.

How is a price chosen?

Every catalogue line resolves through the same cascade, in this order. The first step that has a price wins:

  1. 1

    The party's price level, by band

    The price level pinned on this document if there is one, otherwise the customer's own. A band for this item matching the quantity and today's date.

  2. 2

    The party's price level, flat %

    If that level is a flat % off list, the item's sale price less that percentage.

  3. 3

    The branch's price level

    The price level of the branch issuing the document: its band for the item, or its flat %. Skipped when it is the business default.

  4. 4

    The default tier, by band

    A band on the business's default price list.

  5. 5

    The item's own sale price

    The fallback that always exists.

So a customer’s tier always beats the branch’s level, and an item that a level does not price falls through to the next step.

Archived tiers are skipped entirely, so retiring a tier makes its customers fall through to the default rather than losing their price.

The resolved source is recorded on the line (customer tier, document tier, branch tier, default tier, item base, manual override or free text), which is what makes “why was this priced at ₹340?” answerable months later.

The same maths runs on your device

Price resolution runs identically in the browser and on the server, from one shared implementation. That is what lets pricing work while you’re offline — and it’s why the answer can’t differ between the two.

A price level for one document

A retail customer places one bulk order, or a wholesale regular buys a single item over the counter. Re-tiering the customer would be wrong for their next order, and hand-typing every rate loses the trail. Instead, pick a different level in the price level picker in the Items header of the invoice or quotation editor:

  • It replaces the customer’s tier for that document. It does not stack with it, and lines the pinned level does not price fall to the branch level, the default tier and the item price, never back to the customer’s tier.
  • Every catalogue line re-prices; hand-typed rates and hand-entered discounts are left alone.
  • Lines it priced are marked as priced by the document’s level, so clearing the pin (choose “Customer’s price level”) moves them back.
  • It carries from a quote into the invoice made from it.
  • Moving it counts as an amount change: not allowed on a part-paid invoice, and it resets a quote’s approval.

A price level per branch

With branches, each branch can have its own price level, set when editing the branch in Settings → Business → Branches & GST. Documents issued at that branch use it for customers with no tier of their own, and for items the customer’s tier does not price.

Who can set prices

Owners, Admins and Managers create and edit price lists and pin a level on a document. Office staff make quotes and invoices at the resolved prices but cannot pin or change a level. Field technicians never receive price-list bands. See Roles & permissions.

Overrides are respected

Type a price by hand on a line and it is marked a manual override. Changing the quantity, switching the customer or re-applying a tier will not overwrite it. You meant that number.

The mirror of this: on a draft document created offline or by an integration, the server re-checks catalogue lines against the live cascade when it saves, and writes an audit entry if anything moved. An issued or sent document is never re-priced.

Category defaults

Setting the same tax rate and margin on 200 items one at a time is how pricing data goes stale. Instead, set them once on the category:

  • Default tax rate and whether GST applies.
  • Default margin, and whether prices are entered inclusive.
  • A per-tier markup — for example, Trade is cost + 12%.

Then Apply to the category. Each item’s tier price is derived from its own cost and that markup, and materialised as a band. Items you have hand-priced are treated as deliberate exceptions and left alone unless you force the update.

Price history

Every sale-price and cost change is recorded with the old value, the new value, who changed it and why. Bulk updates and purchase-driven cost recalculations appear there too.

Common questions

Can I charge different customers different prices?
Yes. Create named price lists in BizOS, such as Retail, Trade and Project, and assign one to each customer. Their quotes and invoices then price at that tier automatically, including any quantity-break bands.
Can I use a different price for one order without changing the customer's tier?
Yes. Pin a price level on that one quotation or invoice in BizOS. It replaces the customer's tier for that document only, re-prices catalogue lines, leaves hand-typed rates alone, and carries into the invoice when a quote is converted.
Can each branch have its own prices?
Yes. With the BizOS Branches add-on, a branch can have its own price level. Documents issued at that branch use it whenever the customer has no tier of their own or the customer's tier does not price the item.
Can I enter prices as MRP including GST?
Yes. Tick inclusive and type the MRP; BizOS strips the tax to a base price for storage and shows the field back to you the way you entered it. Billing maths is unaffected either way.
How do I set a bulk discount above a certain quantity?
Add a quantity band on the item inside that price list with a minimum quantity and its price. Changing the quantity on a line re-resolves the band automatically.
Will BizOS overwrite a price I typed by hand?
No. A hand-typed price is marked a manual override and is left alone by quantity changes, customer switches and category updates.
How do I update margins across a whole category?
Set the default tax rate, margin and per-tier markup on the category and apply it. Each item's price is derived from its own cost, and items you have hand-priced are treated as exceptions unless you force the update.
Does pricing work offline?
Yes. The same resolution cascade runs in the browser against a local copy of the catalogue and price lists, so picking an item, changing quantity or switching customer re-prices instantly with no network.