Skip to content

Margin Exceptions for DMSi Agility

Every ticket in Agility written below the margin floor, every price override and every quote a cost change flipped, listed nightly by rep with the reason asked. Your sales manager decides what stands.

Sales & estimatingUpdated Oct 202620 ERPs

See it work on Agility.

Click through the steps. Fictional data, in Agility’s terms; the real thing runs on Agility.

Exceptions · last night, by rep
Illustrative
RepTicketCustomerLineMarginReason
Mike Brennan204317Westfield MasonryType S mortar · 60 bags8.2%Override · asked
Mike Brennan204401Bayview DecksComposite decking · 1,120 lf14.0%Below floor · asked
Counter · Route 9204388Cash sale2x4x8 #2 SPF · 248SPF · 80 ea-3.1%Below cost · asked
Mike BrennanQuote 5102Harbor Point Builders2x6x12 #2 SPF · 480 ea15.1%Cost change Oct 9
Floor is 20% on lumber and decking, 22% on masonry.

Below the floor, overrides, below cost, and a quote a cost change flipped. The reason asked on each.

1 / 4

The problem, as it happens in Agility.

The margin report in Agility runs at month end, by category, and the damage is already invoiced. A counter override on a Saturday, a job quote at last month’s cost, a rep rounding a ticket down for a good customer: each one is a line in a report nobody reads until the controller asks why gross profit dropped.

The reason is never recorded. The rep remembers it was a price match, or a damaged unit, or a favor, and by the time anyone asks it’s a guess. The same override happens next month because nothing was decided.

How it works.

  1. 1

    Every ticket checked overnight

    Each line invoiced that day against the floor for its category and the price level on the account. Overrides are taken from Agility’s ticket audit where it keeps one, otherwise from the gap between the account’s price and the sold price. The manager sees the list by 7 am.

  2. 2

    Quotes a cost change flipped

    When cost on the item master moves, every open quote carrying that item is re-read. A quote that was at margin yesterday and under it today is on the list, with the rep who wrote it, before it is honored.

  3. 3

    One note per rep, with the reason asked

    Each rep gets their own exceptions, ticket by ticket: the line, the margin, the account. Each one asks for the reason in a sentence. The reply is logged against the ticket where the manager can see it.

  4. 4

    The manager decides what stands

    Every exception with its reason: approve it, reject it for a credit, or change the floor. Lunica reverses nothing and re-invoices nothing; a credit the manager decides on is keyed by your team.

How it connects to Agility.

Lunica reads invoiced tickets, the item master and the customer master through a read-only login to the Agility database: sold price and cost per line, the price level and any contract pricing on the account, the floors by category you set, and Agility’s price-override audit where it keeps one. Open quotes are re-read after each cost change.

Nothing lands in Agility without a person and nothing is sent on its own. The nightly note to each rep is a draft until the sales manager sends it, or goes out on a morning schedule the manager set. A floor change is a rule your admins edit. A credit for a ticket the manager rejects goes back as an Agility import or API call where one exists, or keyed by your team from what Lunica prepared.

What a week looks like.

  • Last night’s exceptions by rep, on the manager’s desk by 7 am.
  • A reason recorded for every override, in the rep’s own words.
  • Quotes that a cost change put under the floor, caught before they are honored.
  • Floors by category that the manager changed on purpose, not by accident.

Questions

Does it write to Agility?

No. It reads tickets, cost and price levels. A credit or a price change the manager decides on is keyed by your team.

Where do the floors come from?

A spec your sales manager edits in plain English: by category, by account, by branch, with exceptions for house accounts and clearance. History and revert.

Does it email the reps on its own?

Each rep’s note is a draft until the manager sends it, or the manager sets a morning schedule for it. Nothing goes to a customer, ever.

What counts as an override?

Agility’s override flag where it keeps one. Otherwise a sold price that differs from the price level the account carries, with the gap shown.

Can it see commodity swings?

Yes. Lumber and panel lines are checked against the cost on the day they were sold, so a ticket written at Tuesday’s number is judged on Tuesday’s cost, not Friday’s.

What does the model see?

The ticket lines on the list and the reason the rep typed. The arithmetic is done from Agility, not by a model.

Does it need a server?

Lunica runs on one Windows server inside your network, or beside DMSi’s hosted Agility, set up and maintained by Lunica. It reads DMSi Agility through a read-only login to the Agility database. There is no inbound connection from outside your network.

What does Lunica read in Agility?

The customer master, open items and terms, purchase orders and receipts, the item master, quotes and order history, as each workflow needs them. Read-only, and only the rows a task is about.

Can it post to Agility?

Nothing lands in Agility without a person. What belongs in Agility goes back as an Agility import or API call where one exists, or keyed by your team from what Lunica prepared.

What about our documents?

Invoice copies and scans keep living in Agility’s document attachments. Lunica reads them when a workflow needs one and never writes to them.

The same workflow, on another ERP.

Margin Exceptions is written for every system on the list. You’re reading the Agility version.

See it on your Agility data.

Thirty minutes. We walk the workflow on Agility data, then map it to yours.