Skip to main content

Discount & Cash Rounding

Admin

This page covers two unrelated rounding features that live side by side in store settings:

  • Discount rounding -- rounds percentage-based discounts to the nearest whole dollar.
  • Canadian cash rounding -- rounds the final cash total to the nearest 5 cents (nickel) for stores that no longer accept pennies.

Discount rounding simplifies the numbers displayed on receipts and on the POS screen, which many stores prefer for a cleaner customer-facing experience. Canadian cash rounding follows Royal Canadian Mint guidance that has been in effect since the penny was withdrawn from circulation in 2013.

Feature flags required

Each rounding option is an independent toggle, all off by default. Enable any combination under Settings > Edit Settings > Products tab, in the Product Features section. The same settings can also be set during the first-run setup wizard's rounding step.


The Four Rounding Options

Round Campaign Discounts

Setting: Enable Discount Rounding

When enabled, sale campaigns can optionally round their calculated discount to the nearest whole dollar. This is a per-campaign opt-in — a separate toggle appears on each campaign's form when this store-level flag is on.

Example: 15% off a $33.00 item = $4.95 raw discount → rounds to $5.00.

Round Loyalty Tier Discounts

Setting: Round Loyalty Tier Discounts

When enabled, all automatic loyalty tier percentage discounts are rounded to the nearest whole dollar.

Example: A Gold tier customer with 10% off buys a $33.00 item. Raw discount = $3.30 → rounds to $3.00.

This applies to the loyalty tier discount line calculated in the cart for customers assigned to a loyalty tier.

Round Tier Consolidation Savings

Setting: Round Tier Consolidation Savings

When enabled, the savings amount from quality tier consolidation (combining multiple weight-based items into a bulk price) is rounded to the nearest whole dollar.

Example: Two 3.5g items consolidate into a 7g bulk price, generating $0.50 in savings → rounds to $1.00 (minimum $1.00 threshold still applies).

This only applies to stores using quality tier pricing (use_quality_tiers enabled) with tier consolidation active.

Round Manual Discounts

Setting: Round Manual Discounts

When enabled, any percentage-based manual discount applied by a cashier — either at the line item level or the order level — is rounded to the nearest whole dollar.

Example: A cashier applies a 10% manual discount to a $33.00 order. Raw discount = $3.30 → rounds to $3.00.

Dollar-amount manual discounts are not affected; rounding only applies to percentage-based manual discounts.


How Rounding Works

All rounding uses standard .round(0) (round half up to nearest integer). The raw calculated discount is computed first, then rounded before being applied to the cart total. Each discount type is rounded independently — enabling one option does not affect any other.

Discount TypeWhere CalculatedRounding Method
Campaign discountCartCalculatorraw_discount.round(0)
Loyalty tier discountCartCalculatorraw_loyalty.round(0)
Tier consolidation savingsCartCalculatorraw_savings.round(0)
Manual line item / order discountCartCalculatorraw_discount.round(0)

Canadian Cash Rounding (Nearest 5¢)

Setting: Canadian Cash Rounding (nearest 5¢) (enable_cash_rounding)

When enabled, Brother POS rounds the final cash total of a sale to the nearest 5 cents. This is the Canadian standard since the penny left circulation in 2013. The toggle is off by default and is opt-in per store.

What gets rounded

Rounding applies only to the cash-paid portion of a sale, and only to the final amount after tax -- never to subtotals, taxes, line items, or discounts.

Payment methodBehavior
Cash (full payment)Final total rounds to the nearest 5¢; the adjustment is recorded.
Split tender with a cash portionOnly the cash sale_payment absorbs the adjustment. Card/debit/e-transfer portions stay exact, and the cash portion is re-derived as total − non-cash payments before rounding.
Debit / credit / e-transfer / store credit / gift card / etc.Charged exact to the cent -- no rounding.

The rounding bands

The last cent of the cash total determines the adjustment:

Last centRounds toAdjustment
.X1 / .X2.X0down 1¢ / 2¢
.X3 / .X4.X5up 2¢ / 1¢
.X6 / .X7.X5down 1¢ / 2¢
.X8 / .X9(X+1)0up 2¢ / 1¢
.X0 / .X5unchangednone

Example: a $13.56 cash sale collects $13.55. A $27.12 sale split as $20.00 card + cash collects $7.10 cash (total $27.10).

Refunds round symmetrically

Cash refunds round the same way cash sales do, per Royal Canadian Mint guidance. A customer who paid $5.45 (rounded up from $5.43) and refunds in cash receives $5.45 back -- not $5.43. Refunds via debit, store credit, or exchange stay exact to the cent.

Reconciliation

The adjustment is stored separately (sales.cash_rounding_amount, returns.cash_rounding_amount) so it is visible on the receipt and so the Z-Report and cash-drawer reconciliation still balance -- the till is never thrown off by the rounding.


Enabling Rounding Options

  1. Log in to the Admin Panel.
  2. Navigate to Settings > Edit Settings.
  3. Click the Products tab.
  4. Scroll to the Product Features section.
  5. Check any combination of the discount rounding toggles and/or the Canadian Cash Rounding toggle.
  6. Click Save Settings.

Changes take effect immediately on the next sale.


Notes

  • Rounding can increase or decrease the discount amount depending on the raw value. For example, 10% off $33 rounds down ($3.30 → $3.00), while 15% off $33 rounds up ($4.95 → $5.00).
  • The Round Campaign Discounts flag only unlocks the per-campaign toggle — it does not automatically round all campaigns. Each campaign must individually opt in via the campaign form.
  • These flags are independent of the tax calculation, which always uses two decimal places.
  • Discount rounding and cash rounding are completely independent. Discount rounding adjusts the discount line before tax; Canadian cash rounding adjusts only the final cash total after tax. You can enable either, both, or neither.