Create an offer for a purchase agreed with the customer in the browser version. Your organization must have Field service management enabled, and you need permission to view and create offers. Editing a saved offer requires edit permission. The Android and iOS apps do not have an equivalent form for creating and pricing offers.
Basic offer details
Open Customers → Offers from the browser menu and select New offer at the top of the page. Complete the Offer Details tab of the form. Open a section by clicking its heading if needed.
- Title & Description: enter the required Title and write a customer-facing Description.
- Offer Information: check the Offer Number, Status and, if needed, Offer Type. The default status for a new offer is Opportunity.
- Customer: search for and select a registered customer and, if needed, their Customer Contact. Also check Offer Created By, which defaults to the current user.
- Dates & References: check the required Date, which defaults to today. Complete Valid Until, Delivery Date, Our Reference and Customer Reference if needed.
- Terms & Delivery: check Payment Terms, Delivery Method, Delivery Terms, Language and Currency. The defaults are 14 days net, the interface language and EUR.
The offer number must be unique. On the form, the number is read-only and is generated automatically when you save. If automatic numbering is disabled, you cannot save a new offer with an empty number, and you cannot type a number into this field. Ask an administrator to check Service settings → Offer settings → Offer Numbering → Offer Number → Auto-generate numbers. Numbering uses the next available sequential number and adds leading zeros if needed to make it eight characters long.
An offer of type Project also receives a separate project number if automatic project numbering is enabled. The number may be generated when a Project offer is saved; the offer does not have to be won first.
If the customer is not yet registered, leave the customer selection empty and complete the Prospective customer details shown in the same section: name, customer number, address and contact person as needed. These details are saved on the offer. They do not by themselves create a registered customer or enable use of that customer's price table. A registered customer and contact person are optional.
Select the customer before pricing the products. Changing the customer clears the contact selection, but does not automatically recalculate the prices of all existing offer rows. Check their prices separately.
Keep the customer-facing description separate from internal comments. Enter internal information in the Internal Comments field on the Additional Details tab; these comments are not printed in the offer PDF. In addition to the offer's Language field, the PDF has its own language settings, so check the language of the finished PDF too.
Add and arrange offer rows
Open the Pricing tab. The buttons for adding rows are below its Product Rows area:
- Add product row: select a product from the product register. The product's name, code, stocking unit and prices calculated according to the pricing rules are retrieved for the row. Wait for the price lookup to finish before checking or manually changing a price.
- Add freetext row: enter a name and price, for example, labor or another item without selecting a product from the product register. Enter the quantity, unit, unit price and net price yourself.
- Add subtotal row: enter a section name if needed. The row totals the priced rows after the previous subtotal row, or the group starting at the beginning of the offer. It does not add the same amounts to the offer's grand total again.
On priced rows, check Qty, Unit, Unit price, Disc. %, Net price and VAT %. The quantity must be greater than zero. A new row defaults to quantity 1, discount 0%, VAT 25.5% and inclusion in the PDF. Prices on a freetext row are initially zero. A product row's unit comes from the product; check it especially when using a quantity other than a number of pieces.
The warehouse icon next to the product selection on a product row opens Select warehouse. Select a product first. Selecting a warehouse or clearing the warehouse selection retrieves the net price again and may also replace a manually changed sales unit price with a newly calculated price. The warehouse selection affects the inputs used for pricing; saving the offer does not itself reserve products or deduct them from stock.
You can rearrange rows by dragging their handles. Row order affects subtotal grouping and the order in the PDF. The trash icon at the right of a row removes the row from the offer when you save; the product remains in the product register.
Clearing a row's PDF checkbox hides the row from the PDF, but the row still contributes to the offer's sales, cost, profit and VAT totals. Delete the row if the item should not be included in the offer at all.
Where does the net price come from?
Net price is the cost value of one unit used to calculate the offer's profit margin. It does not mean the sales price after discount, nor is it necessarily the purchase price of the actual purchase batch. You can change a row's net price manually.
The automatic net price uses the organization's shared product cost pricing setting. Without waterfall rules, a single selected pricing method is used. When waterfall rules are enabled, the first rule that returns a valid cost determines the price. Zero is also a valid result and stops the rule chain. If no suitable result is found, the offer row's net price may be zero.
With the default settings, the waterfall is disabled and the net price is based on the product register's Selling price value. The net price may therefore equal the sales unit price, resulting in zero profit before any discount. Do not infer the cost used solely from the name of the Net price field.
The selected method has the following effect:
- Moving average cost (MAC) requires a MAC warehouse. It uses the product's latest shared weighted average cost valid at the time of calculation. If no calculated average cost exists yet, the fallback calculation weights the selected warehouse's batch prices by their original received quantities.
- Weighted average purchase in warehouse weights the selected warehouse's batch prices by the remaining product quantities. Average purchase price in warehouse instead gives each purchase batch equal weight; fully used batches may also be included.
- FIFO/LIFO (batch price) uses the price of the oldest received batch in a FIFO warehouse or the newest received batch in a LIFO warehouse, provided the batch still contains stock. It does not calculate the cost of the entire offer quantity by splitting it across multiple batches. This method is not used in a MAC warehouse. If no suitable batch is found, the result may remain the product's sales price.
- Last buy price retrieves the price of the product's most recently received batch across all warehouses, not just the warehouse selected for the row.
- The waterfall's Customer price table uses the customer's direct price table that is currently valid. Customer product cost adjustment primarily applies the customer's product cost discount to the product's sales price or, if no such discount exists, adds the percentage from the customer's profit setting to the product's purchase price. Product buy price and Product sales price use the corresponding value from the product register.
- Current value per product (batch line) requires a specific purchase batch and warehouse slot. The offer form does not provide these inputs, so this rule does not determine the offer's net price.
View Pricing Settings is above the row area on the Pricing tab. It displays the shared cost setting, the sales price calculation order and the default sales margin, but retrieving the settings requires administrator permission. Ask an administrator to check the settings in use if needed. See also the principles for calculating inventory value and product cost.
Where does the sales unit price come from?
The sales price has a calculation order separate from the net price. The first rule that returns a price greater than zero wins. The results of different rules are not automatically combined. The default order is:
- Base Selling Price (Product): the sales price in the product register.
- Customer-Specific Price: the price in the customer's active, currently valid price table.
- Product Price with Customer Discount %: the product's base sales price minus the customer's currently valid product cost discount.
- Product Price with Customer Profit Settings: the product's base purchase price multiplied by 1 + the percentage in the customer's profit setting / 100.
With the default order, a positive base sales price therefore takes precedence over the customer price table and customer discount. If the customer price should take priority, an administrator must check the order of the sales pricing rules. The row's Disc. % is deducted separately from the selected unit price; it can also reduce a price already calculated with a customer discount.
When retrieving a customer-specific sales price, a direct customer price table takes priority over a contract price table for each product. A contract price table is searched only if the product is not found in direct price tables. The price table must be active and currently valid. The contract must have the status Waiting for start date, Active or Waiting for end date. The lookup uses the current time in the customer account's time zone, rather than the offer's Date field; the contract price table's start and end dates are included in its validity period.
If the product appears in several price tables that meet the conditions, the first matching product row in the price table created first is selected. If a direct price table contains the product at a zero price, calculation moves to the next sales pricing rule rather than to a contract price table for the same product. Creating a price table is described in creating a price table and linking customers.
If none of the sales pricing rules returns a positive price, the fallback calculation is net price ÷ (1 − default sales margin / 100). The default sales margin is 20%. For example, a net price of €80 produces a sales price of €100 with this fallback calculation. The fallback requires a positive net price and a default margin below 100%; otherwise the calculated price is zero. Always check the Unit price displayed on the row.
The percentage added to the purchase price by the customer's profit setting and the offer's sales margin percentage are different things. For example, adding 20% to a purchase price of €80 produces a sales price of €96 and a sales margin of 16.67%, rather than 20%.
The tooltip on the information icon next to the net price lets you inspect the pricing methods. When a saved offer is opened, the method descriptions are retrieved again using the current settings, but the saved prices are not updated at the same time. The tooltip alone therefore does not prove which rule produced a previously saved price.
Totals, profit and VAT
The Profit Summary on the right side of the Pricing tab displays the offer's total revenue, total cost, total profit, profit margin, VAT and grand total. On a priced row, the calculation is:
- Total, meaning the sales amount excluding VAT = quantity × unit price × (1 − Disc. % / 100).
- Net total, meaning cost = quantity × net price.
- Profit = sales amount excluding VAT − cost.
- Mar. % = profit ÷ sales amount excluding VAT × 100. If the sales amount is zero or negative, the displayed percentage is zero.
Total profit is the difference between the sales total and cost total of all product and freetext rows that have not been deleted. The overall profit margin is calculated against the entire sales total excluding VAT; it is not the average of the rows' profit margins. Subtotal rows are not counted again. Priced rows hidden from the PDF are also included in the calculation.
VAT is calculated from each row's discounted sales amount using that row's VAT percentage. Different rows may have different tax rates. Calculated monetary amounts and profit margins on rows, as well as automatically retrieved unit prices, are rounded to two decimal places. The grand total including VAT is rounded to the nearest five cents.
For example, quantity 2, unit price €100, discount 10% and net price €60 produce a sales amount excluding VAT of €180, a cost of €120, a profit of €60 and a profit margin of 33.33%. VAT at 25.5% is €45.90, and the grand total including VAT is €225.90.
The view rounds the VAT total to cents before calculating the grand total. When saving, the grand total is calculated from the VAT total before this rounding to cents. At rounding boundaries, also check the final saved amount in the offer list and in a newly generated PDF.
Change prices across the entire offer
Select Adjust prices below the row area on the Pricing tab. In the window that opens, select Adjustment mode, enter the target and select Apply. The change applies to all product and freetext rows that have not been deleted, including rows hidden from the PDF. Subtotal rows are excluded.
- Target Total Price: enter the desired total excluding VAT, which must be at least zero. Unit prices are adjusted in proportion to the current sales total; quantities, net prices and discount percentages remain unchanged. If the current total is zero, the target is distributed in proportion to the row quantities. Quantities using different units participate in this distribution as they are.
- Target Margin %: enter a value of at least 0% and below 100%. Each row's unit price is calculated from its net price and current discount to achieve the target margin: net price ÷ (1 − target margin / 100) ÷ (1 − discount / 100). Net prices, quantities and discounts remain unchanged.
- Target Discount %: enter 0–100%. The same discount percentage replaces the previous discounts on all affected rows. It is not added on top of the previous discount. Unit prices and net prices remain unchanged.
Unit prices are rounded to cents. For proportional target price and target margin calculations, the system attempts to correct the rounding difference by adjusting the largest row's unit price. This correction is not made when distributing a target price from a zero total. An exact target cannot be achieved with every combination of quantities and discounts. For example, a row with a 100% discount cannot generate a sales amount merely by increasing its unit price, and the target margin calculation leaves such a row's price unchanged. Always check the resulting total and margin before saving.
Apply changes the prices on the form, but does not yet save the offer. The changes affect the offer rows and do not update prices in the product register or price tables.
Save and verify the result
Save a new offer with the Save offer button at the bottom of the form. On the Pricing tab of a saved offer, you can save row changes with Save pricing. This saves the pricing rows; also save any customer and basic details you changed using the Save Details button on the Offer Details tab. Do not rely solely on the Save button at the bottom when you have only changed the price of an existing row.
Verify that saving succeeded and reopen the offer. Check the customer and contact person, offer number, dates and terms, as well as the row quantities, units, prices, discounts, net prices, VAT percentages and order. Compare the total excluding VAT, cost, profit and grand total including VAT with the intended offer. An empty product row with no product selected is not saved as a priced product row.
At the bottom of a saved offer, Print to PDF generates a file from the saved details. When the file is ready, select Download PDF. Save changes before generating a new PDF; a previously downloaded file does not update itself. Check the rows, prices, totals, language and terms visible to the customer. Because of rows hidden from the PDF, the sum of the visible rows may differ from the PDF's grand total. More detailed visibility and layout options are described in offer PDF and contract terms.
If a task needs to be created when the offer is won, check Offer Details → Task Settings → Create task when offer is won and the task settings before changing the status. The organization's shared setting may require a task title and priority when the offer is saved. Simply creating an offer does not create a task. See offer task settings.
In the Won status, pricing and task settings are locked in the interface. Check the pricing before marking the offer as won. Status changes, the associated tasks and copying an offer to create a new one are described in offer statuses and copying.