Line-Level Engine

Every discount. Every tax. Attributed to the line.

Most commerce platforms apply promotions and taxes at the order total, then divide backwards and hope the rounding works out. Vectis computes them at the line — every SKU, every variant, every unit. It's a structural decision that cascades into correctness, accounting, tax compliance, and reporting for wholesale and retail alike.

Order-level (everyone else)

  • Discount applied to cart total, then prorated back to lines.
  • Rounding drift: sum of line discounts ≠ order discount.
  • Tax computed on the post-discount total, not per SKU.
  • Partial refunds and split-ship scenarios become guesswork.
  • Excise tax? Good luck — it has to be per-unit.

Line-level (Vectis)

  • Every discount attaches to a line with rule_id, amount, and reason.
  • No rounding drift — totals are sums, never divisions.
  • Sales tax + excise tax computed per line, per jurisdiction.
  • Refunds, returns, and partial shipments carry exact attribution.
  • Report revenue, discount, and tax impact by SKU, category, or jurisdiction.

Promotions per line

The discount knows which SKU it came from.

When a rule fires, it doesn't just reduce an order total — it writes a LineDiscount row against every affected line, with the triggering rule, the exact amount, and the reason.

That unlocks real analytics: which SKUs are carrying the promotion, which categories lift AOV, which customer groups are redeeming — answered by a GROUP BY, not a reconciliation spreadsheet.

It also makes returns correct. Refund three units out of ten? The three units give back exactly what they took — not an averaged guess that drifts with every return.

// order.json — every discount attached to its line
"lines": [ { "sku": "VAP-POD-042", "qty": 12, "unit_price": "8.50", "line_subtotal": "102.00", "discounts": [ { "rule_id": 14, "amount": "10.20", "reason": "b2b_tier_1" } ], "taxes": [ { "jurisdiction": "TX", "type": "sales", "amount": "5.74" }, { "jurisdiction": "TX", "type": "excise", "amount": "3.84" } ] } ]

The discount knows its rule. The tax knows its jurisdiction and type. Nothing is averaged, prorated, or lost.

Vectis tax configuration

Tax categories group products by applicability. Tax rates bind to jurisdictions with cascading specificity — state, county, city. Sales and excise rates compose per line.

Tax per line · sales + excise

A tax core that knows the law — not just the rate.

Sales tax alone is not enough. Tobacco, nicotine, alcohol, cannabis, sugary beverages, rental equipment, hotel occupancy — excise taxes apply per unit, per SKU, per jurisdiction, often on top of sales tax.

Vectis ships with both cores. Tax categories group SKUs (standard, tobacco, alcohol, exempt), and rates bind to jurisdictions with cascading specificity. State, county, and city rates compose cleanly.

Every computed tax lives on the line as its own row — type, jurisdiction, rate, and amount. That means accounting can reconcile by jurisdiction without back-solving, wholesale and retail buyers alike get line-accurate tax for their own reporting, and auditors get a paper trail that actually matches the ledger.

Create tax rate

Adding a sales tax rate. Excise rates configure the same way — per-unit, compounded on top.

Why this matters in the real world

No rounding-drift tickets

Order totals are always the sum of their parts. No more "the discount reads $49.99 but the refund is $50.00" reconciliations.

Compliant excise out of the box

Per-unit excise for tobacco, nicotine, alcohol, and similar isn't a bolt-on — it's the same engine as sales tax, per-SKU and per-jurisdiction.

Line-accurate tax reporting, finally

Wholesale and retail buyers can pull line-accurate tax breakdowns for their own filings — something every other platform glosses over.

Refunds & partial shipments

Every line carries the exact discount and tax it was charged. Refund three of ten units and the numbers return themselves.

Analytics by SKU, not by guess

Which products carry your promotions? Which SKUs lift AOV? A GROUP BY on line discounts answers it.

Audit trails that match the ledger

Every discount and tax row is immutable once the order is captured. What you charged is what you filed — down to the line, down to the cent.