Skip to content

Contract Pricing for Sage 100

Every job and customer price agreement in Sage 100 with its expiry date, checked each night against replacement cost on the item record; the renewal drafted, the price file change keyed by a person.

Sales & estimatingUpdated Oct 202620 ERPs

See it work on Sage 100.

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

Agreements · expiring and underwater
Illustrative
CustomerAgreementItemsExpiresMargin nowStatus
Harbor Point BuildersMaple St duplex · framing22 linesOct 3117.4%2 lines under floor
Northline DrywallPrice level 3 · boardAll drywallDec 3124.1%Holding
Cedar & Stone FramingLot 14 Birchwood · lumber9 linesOct 2421.8%Expires in 2 days
Granite Peak BuildersRoute 9 warehouse · steel6 linesNov 3014.9%1 line below cost
Bayview DecksComposite · season4 linesOct 1526.0%Expired · still selling
Floor is 20% on lumber. Mike Brennan owns the first three.

Expiring, underwater, or both. Margin from tonight’s replacement cost on the item record.

1 / 4

The problem, as it happens in Sage 100.

Contract pricing at a dealer is a price level on the customer maintenance record, a job quote with lumber held for seven days, and a spreadsheet of who got what. The expiry is in the quote, the cost is in the item record, and the agreement to hold 2x4s for a builder through the framing lives in an email from March.

When dimensional moves, the yard keeps selling at the agreed number until someone notices on the margin report. When the agreement expires, nobody tells the customer, so the first ticket at the new price is a phone call. The renewal that should have been a conversation becomes an argument.

How it works.

  1. 1

    Every agreement, in one list

    Price levels, job quotes, contract prices and special pricing on the customer maintenance record, each with its expiry and the items it covers. Agreements that exist only in email are entered once by your team and tracked from then on.

  2. 2

    Checked against cost each night

    Each agreed price against replacement cost on the item record that night. A line below your margin floor, or below cost, is flagged with the number, not a colour. The rep sees it the next morning.

  3. 3

    What expires, what broke, who hears first

    A list by rep: agreements ending this week, lumber quotes past their hold, lines underwater since the last cost change. The renewal is drafted in the rep’s voice with the new numbers; the rep decides what to offer.

  4. 4

    The change is keyed by a person

    The renewal goes out when the rep sends it. The new price goes into Sage 100 keyed by your team, or as an import where Sage 100 takes one. Lunica records the new expiry and starts watching again.

How it connects to Sage 100.

Lunica reads the customer maintenance record, the item record and open quotes through Sage 100’s ODBC driver, under a user that can only read: price levels, contract and job pricing, quote expiries, and the replacement cost and last receipt cost on every item an agreement covers. Agreements that exist only in email are entered once by your team and watched beside the rest.

Nothing lands in Sage 100 without a person and nothing is sent on its own. A renewal is a draft until the rep sends it. A new price goes back as a Sage 100 import or Visual Integrator job where one exists, or keyed by your team from what Lunica prepared; Lunica never changes a price level, a quote or a contract line itself.

What a week looks like.

  • Every agreement with an expiry date and the rep who owns it.
  • Underwater lines found the night cost changes, not at month end.
  • Renewals drafted with the new numbers before the old ones run out.
  • Price changes keyed by a person who saw the margin first.

Questions

Does it change our prices?

No. It finds what needs changing and drafts the renewal. The price file change is keyed by your team.

Does it write to Sage 100?

No. It reads price levels, quotes and item cost. What goes back is keyed by a person or imported where Sage 100 takes a file.

Which cost does it use?

Replacement cost on the item record, or last receipt cost where that is what you run on. Which one is a rule you set, by category if you want.

What about agreements that aren’t in Sage 100?

Entered once from the email or the handshake, with items, price and expiry. From then on they are watched like the rest.

Can it reprice a lumber quote?

It drafts the repriced lines at today’s cost under the same markup and shows the difference. The rep decides what to honor and keys the change.

Does the customer get told automatically?

No. The renewal or the notice is a draft in the rep’s name until the rep sends it.

Does it need a server?

Lunica runs on one Windows server inside your network, beside the Sage 100 server, set up and maintained by Lunica. It reads Sage 100 through Sage 100’s ODBC driver, under a user that can only read. There is no inbound connection from outside your network.

What does Lunica read in Sage 100?

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

Can it post to Sage 100?

Nothing lands in Sage 100 without a person. What belongs in Sage 100 goes back as a Sage 100 import or Visual Integrator job where one exists, or keyed by your team from what Lunica prepared.

What about our documents?

Invoice copies and scans keep living in Paperless Office. Lunica reads them when a workflow needs one and never writes to them.

The same workflow, on another ERP.

Contract Pricing is written for every system on the list. You’re reading the Sage 100 version.

See it on your Sage 100 data.

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