Short answer. A price is never typed: it is computed server side by a sequence of written rules, catalogue price, customer-type grid, quantity break, then discount. The discount is a right per role: the rep up to their ceiling alone, beyond that a one-gesture approval with a reason, and a margin floor the server refuses to cross whatever the screen shows. The quote has versions kept with their PDF, a validity, and a dated acceptance by signature on the phone or SMS code. Every following document, order, delivery note, invoice, is created from the previous one by an event, and what is frozen at issue no longer moves; an error is corrected by a credit note. Remainders to deliver and to invoice are computed differences. Six weeks, the first without code.
This guide is for the manager of an SME that sells on quotes, trading, installation, services, where three reps make three prices, the founder settled in France who reads quotes they never saw leave, and the sales lead who discovers the real margin at year end. It does not repeat how a bilingual PDF is produced and numbered without gaps, described in the document printing guide, nor how roles and approvals are built in general, described in the roles and audit log guide; it describes what gets built around the price and the quote-order-invoice chain, and it extends our software engineering page.
From quote to invoice, in six steps
The path of a sale, in order, and when each decision is taken. The second step is what separates software from an Excel file.
Compose the quote from the catalogue: lines come from products and services that have a cost and a dated price, and the margin is visible while composing. Discount within rights: up to their ceiling, the rep discounts alone and it is logged; beyond, the application asks the sales manager for a one-gesture approval, with a mandatory reason; under the margin floor, nobody. Send a version: a dated PDF, valid thirty days by default, and every renegotiation creates a version, v1, v2, v3, all kept.
Get acceptance: signature on the phone screen or a code received by SMS, within validity, following the mechanics described in the code login guide; the acceptance is dated and freezes the quote. Convert without retyping: acceptance creates the order, the optional deposit is requested and reconciled, following the online payment guide, preparation starts. Invoice what was delivered: every signed delivery note produces an invoice of the delivered quantities, the deposit is deducted from the first, and an error is corrected by a credit note, never by editing an issued invoice.
How a line price is computed, and where the discount stops
The figure follows a single quote line, and the sequence of rules that produces its price. Everything there is computed server side; the screen only displays.
The catalogue price is the one on the list in force at the quote's date; the customer's “wholesaler” grid applies its reduction; the quantity break applies its own. Then the commercial discount: the rep asks for 10 %, which would take the line under the margin floor, and the server refuses; the sales manager approves 4 %, above the floor, with a reason, and the line is frozen at that price. The floor is set by management from the cost and a minimum gross margin, and it does not appear to the rep as a price but as a remaining allowed discount.
Three rules hold the whole. The engine computes, in a written order, grid then break then discount, and never the reverse, because the order changes the result. The screen displays the price, the margin and the remaining allowed discount, so the rep negotiates knowingly. The server refuses any price under the floor, even if the screen was bypassed, because the rule lives in the code and not in the interface. Cost, grid, breaks and thresholds in the figure are a constructed example; per-customer prices on the B2B portal, described in the ordering portal guide, come from the same engine.
«A price is never typed: it is computed by a sequence of written rules, and the discount is a right per role, not a free field.»
From quote to invoice, in five layers
The pricing engine is the layer that decides the margin; the four others make sure nothing is retyped and everything is measured.
Catalogue and prices. Products and services with a cost, a catalogue price, grids per customer type, quantity breaks; a price has a start and an end date, and a quote keeps the price of its date. Pricing engine. Server side, in the written order, with ceilings per role, the margin floor, one-gesture approval and the log; this is the accented layer. Documents and versions. Quote, order, delivery note, invoice, credit note: each created from the previous one, numbered, versioned for the quote, frozen at issue, with a PDF kept and never regenerated, following the document printing guide.
Acceptance and conversion. Signature or code within validity, acceptance that creates the order, deposit that triggers preparation, signed note that produces the invoice of what was delivered; remainders to deliver and to invoice are computed differences. Follow-up. Quotes pending, to chase, expired; acceptance rate per rep and per version; realised margin against quoted margin; WhatsApp reminders following the WhatsApp agent guide. This is the layer that says whether the pricing engine is well tuned: a one hundred percent acceptance rate signals prices too low as much as a ten percent rate signals prices too high.
Seven documents, zero retyping, and what is frozen at each step
The figure follows one sale, from the first quote to the last invoice. Every arrow carries the event that creates the next document, and every card says what is frozen.
Quote v1 leaves dated, valid thirty days; negotiation creates a v2, and v1 is kept with its PDF, because the customer may come back to it and because the acceptance rate per version is information. The acceptance, signed or by code, is dated and freezes the quote; after acceptance, any change is a new quote. The order is created from the accepted quote, with the deposit requested; quantities remaining to deliver are computed at every delivery note, never typed.
The partial delivery writes the delivered quantities, the date and the signature, and it is what moves stock, following the stock guide, not the order. The first invoice carries what was delivered minus the deposit, the second the balance at the last delivery. An error after issue is corrected by a credit note, never by editing an invoice, and gapless numbering is described in the document printing guide. Numbers, dates and percentages in the figure are a constructed example.
«A document is never retyped from the previous one: it is created from it, by an event, and what is frozen no longer moves.»
Six real situations, and what the application does
The six situations found in almost every SME that sells on quotes, and the construction that settles them.
The first two are settled by the pricing engine: a computed price does not depend on who opened the file, and a discount capped per role with a floor held by the server does not become exceptional every day. The next two are settled by versions and validity: everything sent is kept, and an expired quote regenerates at today's prices instead of binding the company to six-month-old prices. The last two are settled by conversion without retyping: the invoice is born from the delivery note, born from the order, born from the quote, and a two-part delivery produces two invoices of what was delivered with the deposit deducted from the first. None is settled by a more disciplined rep.
Seen elsewhere: quoting software on the market, and what carries over
Quoting and invoicing software on the market shares three ideas that carry over as they are into a custom application. One-click conversion of quote into order then invoice, their main argument for years; what carries over is that the next document is created from the previous one, and the only input is the event that triggers it. Price rules per list and per customer, present in every ERP; what carries over is the written order of application and server-side computation. Online acceptance by signature or link, now common; what carries over is a dated acceptance, attached to a version, within validity.
What that software does not decide for you: your discount ceilings per role, your margin floor, your validity, and who approves; the project's first week answers that, and management signs. Off-the-shelf software remains the right choice when your rules fit theirs; custom starts when your grid, your breaks or your approval circuit do not fit, or when the quote must talk to stock, the portal and the field, following the existing software integration guide.
The rules of a quote-to-invoice chain that holds
Six rules, written in the first week. A price is computed, never typed, in a written order. The discount is a right per role, with a ceiling, a one-gesture approval and a reason. The margin floor is held by the server, not by the screen. A quote has versions and a validity, and a single accepted version. Every document is created from the previous one by a dated, signed event, and what is frozen no longer moves. An error after issue is corrected by a credit note, and remainders are computed differences.
And one rule of method: the existing catalogue is taken over with its costs and dated prices before a single quote is made in the application, following the data take-over guide; a pricing engine without costs cannot compute a margin, and a floor without cost does not exist.
Six companies, and the pricing rule that was missing
Six situations composed from projects we meet; the names are generic and the figures are examples.
- A building materials trader in Sétif, four reps. Four Excel files, four prices for the same bag of cement. The construction: catalogue with costs, grid per customer type, 5 % discount ceiling for reps, approval beyond. By the second month, quoted margin became readable per product and per rep.
- A solar installer in Oran. Quotes changed three times and nobody knew which version the customer had signed. The construction: versions kept, acceptance by signature on the technician's phone, order created from the accepted version; the trade is described in the solar installer guide.
- A garage in Algiers. The repair quote was accepted orally and the final invoice did not match it. The construction: quote per parts and labour line, acceptance by SMS code, lines added only through a new accepted version; the case is close to the garage application guide.
- A founder in Paris, services company in Algiers. They discovered the margin at year end. The construction: margin visible on every quote, floor set by them, remote one-gesture approval from their phone; remote management follows the shop from France guide.
- A distributor in Constantine, field reps. Reps promised discounts the office later refused. The construction: ceiling per role enforced on the tablet, offline, and approval requested from the field; pre-sales is described in the field pre-sales guide.
- An equipment SME in Annaba, partial deliveries. What to invoice and when, and how to deduct the deposit, was a debate per order. The construction: invoice of what was delivered at each signed note, deposit deducted from the first, balance at the last, credit note for errors.
The 2027 calendar
Six weeks for an SME that already has a catalogue; the first week passes without code.
Week 1, pricing rules: costs, grids per customer type, breaks, discount ceilings per role, margin floor, quote validity, who approves; signed by management. Week 2, catalogue and engine: catalogue taken over with costs and dated prices, server-side pricing engine, refusal under the floor, log. Week 3, quotes and versions: composition from the catalogue, visible margin, PDF per version, validity, one-gesture discount approval.
Week 4, acceptance and order: signature on the phone or SMS code, order created from the accepted quote, deposit requested and reconciled. Week 5, delivery and invoice: signed delivery note, delivered quantities, invoice of what was delivered, deposit deducted, credit note; gapless numbering. Week 6, follow-up and reminders: quotes to chase and expired, acceptance rate, realised against quoted margin on the dashboard, following the real-time dashboard guide, WhatsApp reminders; first review. Every week ends with a demo, following the delivery without breakage guide.
What makes a quote-to-invoice chain fail
Five causes, seen in applications we take over. The editable price “for special cases”: after a month, every case is special. The uncapped discount: the exceptional discount becomes the price. The overwritten PDF: nobody knows what the customer accepted. The retyped invoice: a line forgotten, a different price, a dispute. The catalogue without costs: a margin you cannot compute, a floor that does not exist.
And one cause of method: leaving the floor and ceilings “to set later”. They condition the engine, the screens and the measurement; the first week exists to write them.
Frequently asked questions
The questions managers and founders ask when they describe quotes in Excel.
- Why a pricing engine rather than a price entered by the rep?
- Because a typed price depends on who typed it, carries no trace of its rules and cannot be defended. A pricing engine applies a sequence of written rules, customer grid, quantity break, discount, in a fixed order and server side; the rep sees the price, the margin and the discount they still have the right to grant.
- How do you limit discounts without blocking reps?
- With a ceiling per role: up to their ceiling, the rep discounts alone and it is logged; beyond, a one-gesture approval, with reason, by the sales manager or management, including from a phone. A margin floor, set by management from the cost, is refused by the server whatever the screen shows.
- What happens when the customer renegotiates?
- A new version of the quote is created, v2, v3, and the previous ones are kept with their PDF. Only one version can be accepted, and after acceptance any change is a new quote. The acceptance rate per version says how many renegotiations it takes on average, per rep and per customer type.
- How does the customer accept the quote?
- By signature on a phone screen or by a code received by SMS, within the quote's validity. The acceptance is dated, attached to the version, with who accepted and how, and it freezes the quote. It creates the order without retyping.
- How do you invoice a delivery in several parts?
- Every signed delivery note produces an invoice of the delivered quantities; the deposit is deducted from the first, and the balance is invoiced at the last delivery. Remainders to deliver and to invoice are differences computed from the order, never typed. An error is corrected by a credit note.
- Why not off-the-shelf quoting software?
- Because it is often the right choice: if your pricing rules, your approval circuit and your documents fit theirs, take it. Custom starts when your grid, your breaks or your approvals do not fit, or when the quote must talk to stock, the B2B portal and field reps in the same application.
- How long does it take to build this chain?
- Six weeks in the typical calendar: one to write the pricing rules, one for the catalogue and the engine, one for quotes and versions, one for acceptance and order, one for delivery and invoice, one for follow-up and reminders. The duration depends on the state of the catalogue and the number of grids.