← Help

Quotes

Pricing a job from its costs, sending the quote, and turning it into an order or invoice.

What a quote is for

A quote prices a print job before you commit stock or printer time. You build it from your products or one-off lines, and material, electricity and labor costs feed the price. Unlike an order it moves no stock and schedules nothing; it is a proposal you send to the customer. Once accepted, you convert it to an order in one step and the lines carry over. Every plan can create quotes. The Free plan includes 3 new quotes each calendar month (UTC), and every new one counts, including one made with Duplicate. Deleting a quote does not give the slot back that month. After the third, New quote shows a lock and a link to upgrade to Pro. The count starts again on the 1st of the month. Pro and Farm have no limit, and existing quotes stay viewable and editable on every plan.

Building a quote

A quote is a list of lines, usually for a customer. FoxTrack works out each line's cost from your rates and prices it, and you can type your own unit price instead.

Add lines from your catalog or type one-off lines. On each line you can set a printer, a filament with grams per unit, print hours and inventory items per unit. Hours appears once a printer is picked on the line. Labor min is the minutes of your own time per unit, priced at the labor rate; it shows while the Labor switch under Cost adjustments is on.

From these, FoxTrack works out the material and electricity cost of the line using the rates in Settings → Quoting and tax (electricity rate per kWh, labor rate per hour, default markup, waste % and overhead % of the material total).

Each line also has a Unit price field. Leave it empty and the line is priced automatically: its share of the lines' total cost plus the markup, shown grayed in the field. Type an amount and that is the unit price the customer sees for that line, to the cent; the other lines keep their automatic price and the quote total follows. Under each line you see its cost next to the amount the customer pays. A saved quote keeps its stored prices: opening and saving it again does not re-price a line at today's filament, power or labor costs. A line is priced from current costs again only when you change one of its cost inputs (the product, printer, print hours, labor minutes, filament or inventory items).

The Description box above the lines prints above them on the PDF, and Notes print below them, for scope, assumptions, validity or terms. The quote number is assigned on the first save. Once the quote is saved, Add photo on a line attaches up to 3 reference photos.

Someone else changed this quote

If someone else saved this quote after you opened it, Save asks before it replaces their work: Load the latest drops your changes and reloads the quote as it is now, and Keep mine saves your version over theirs. It works as it does for orders (see Someone else changed this order, in the Orders topic).

While you edit, the form may already warn that saving will ask first. PDF, Email and Save & convert save first, so they ask too, with This quote was changed by someone else after you opened it. If the quote was deleted in the meantime, the form says so and your changes stay on screen until you close it.

Markup, discount and tax

Markup, Discount and Tax sit below the lines. Markup raises the price of lines without a typed unit price, Discount takes an amount off, and Tax uses the workspace's default rate, which you can change per quote.

Markup adds a percentage or a flat amount on top of the lines. It only affects lines without a typed unit price; a Typed unit prices row, shown only when a line has one, gives the net effect of the ones you priced yourself. An automatic unit price is settled on a whole cent, so a line can come out a cent above or below its exact share, and a Rounding row shows that difference when there is one.

While your markup is 0%, a note under Markup links to Settings → Quoting and tax. The link opens in a new tab, so the quote you are typing stays put. A default you set there reaches a new, unsaved quote when you come back to it, unless you already changed that field by hand. A saved quote keeps its own numbers, so on a saved quote the note asks you to type the markup on the quote itself. On a new workspace, where the labor rate, waste, overhead and markup are all still 0, a note at the top of the totals says the prices are filament only until you set them.

Discount takes a percentage or a fixed amount off. Tax is applied at the workspace's one default tax rate, the Tax rate card under Settings → Quoting and tax (the same rate new invoices use; 0 disables it), which you can change per quote. The Tax exempt switch under the rate (it shows your own tax word) takes tax off this quote. The stored rate is what the quote keeps, so later changes to the default do not alter old quotes. Whether the cost breakdown and the tax row print on the PDF is set under Settings → Documents → Quotes.

Under the totals a Profit row shows the quote's price before tax less its cost, with the percent of the price. The percent is lower than the markup, because markup is a share of cost (a markup of 40% leaves about 29% of the price as profit). While no labor rate is set, the row shows only the amount, with a note that says Estimate: labor not set and links to Settings → Quoting and tax, because the cost leaves labor out.

Covering failed or wasted prints

To record a print that failed on the floor (the grams lost and a reprint), use Print failed on the line (see Recording a failed print, in the Fulfillment topic). FoxTrack does not bill a failed print to the customer on its own, so build the cost of the prints that fail into your prices.

Settings → Quoting and tax has a default waste % that adds that share of the material cost to every new quote, to cover filament lost to failed prints, purges and test prints. Raise it if failures cost you more than a couple of percent of what you print. The same figure sits on the quote itself, under Cost adjustments, so you can raise it for one riskier job without changing the default for every quote. Overhead % works the same way for the fixed costs a reprint adds, such as a printer running unattended or time spent re-slicing.

If you already know what a specific reprint cost you, type that line's Unit price by hand. FoxTrack stops pricing it from cost and uses exactly what you type, so the reprint is already inside the price the customer sees.

Quote statuses

A quote is Draft, Pending, Accepted or Rejected. Draft is where you build it; Pending means it has been sent and you are waiting; Accepted and Rejected record the customer's answer. Change the status on the quote form. A quote never expires by itself, and the only automatic change is that emailing a Draft quote from FoxTrack moves it to Pending. Only an Accepted quote can be converted with Save & convert; on a Draft or Pending quote, Accept & make order does both in one press. The status chips on the Quotes page filter the list. The Expired chip shows Pending quotes whose expiry date has passed; with it on, owners and admins can press Mark N expired as rejected, which asks first and moves each of those quotes to Rejected (nothing is deleted, and a quote can be set back to Pending on its form).

Quotes grouped by status

The Quotes page opens grouped by status: one block each for Draft, Pending, Accepted and Rejected, with the number of quotes in each. A status with no quotes has no block. Accepted and Rejected start folded, so the quotes still waiting on you come first.

Press a block's heading to fold or unfold it, or use the By status and List switch beside the search box for one table of every quote. Both work as on the Orders page and are remembered in this browser (see Orders grouped by status, in the Orders topic). While a search, a status chip or the Expired chip is on, every block opens.

Sending the quote PDF

A saved quote has a PDF button and an Email button at the foot of the form.

  • PDF downloads the quote PDF, made in your browser with your logo and business details from Settings, the lines, the description and notes, and the totals. Each quote has a language selector for the PDF (English, French, German, Spanish or Dutch). A new quote starts in the workspace language. The PDF prints your shop's address, email and phone from Settings → General, Business info. While all three are empty, the quote form says so at the top (to owners and admins), because a customer who gets the PDF would have no way to reply.
  • Email sends the same PDF to the customer. The dialog shows the customer's email in To (it cannot be typed), an optional Subject, and Customize email for the greeting, body, sign-off, reply-to, CC and BCC. The words start from Settings → Documents → Quote, receipt, reminder and credit note emails. Press Send: unsaved edits are saved first, then the PDF is attached. A Draft quote becomes Pending when it is emailed; the dialog says so. Afterwards the form shows when it was sent and to which address.

Email is grayed out, with the reason on hover, when the quote has no customer or the customer has no email address (add one to the customer first). A PDF larger than 8 MB cannot be emailed; remove some photos and try again.

Duplicating a quote

Duplicate, at the foot of a saved quote, turns the open form into a new, unsaved quote copied from what is on screen, including edits you have not saved yet, titled New quote (copy of QUO-0007). It works like duplicating an order (see Duplicating an order, in the Orders topic): nothing is saved until you press Create quote, so numbering and the monthly count apply as for any new quote. On the Free plan the copy counts toward the 3 quotes a month.

The copy keeps the customer, every line (materials, printer, hours and any typed unit price), markup, cost adjustments, discount, tax, description, notes and language. It gets a new quote number, starts as Draft and is dated today. The expiry date keeps the same number of days from today as the original had from its issue date, or stays empty if it had none. The copy is not linked to any order or invoice. Photos are not copied, and the form says Photos are not copied when the original had some.

Converting to an order or an invoice

A quote can become an order with Save & convert, once it is Accepted, or go straight to an invoice with Generate invoice. Each happens once per quote.

On a Draft or Pending quote, press Accept & make order in the form's footer. One press sets the quote to Accepted, saves it as shown and creates the order. If a Pending quote's expiry date has passed, it asks first whether to accept it at the old price. Or set the status to Accepted yourself and press Save & convert: the quote is saved as shown (a form with no edits skips the save), an order is created with the same customer and lines, and you are taken to it. The quote keeps its own number and the order gets its own. Generate invoice creates an invoice directly from the quote instead, for jobs you bill without an order; it opens as a Draft dated today, to check before you send it. An invoice that was voided does not count, so a new one can be generated. The form shows what the quote has already been converted into.

The order takes the first line of the quote's Description as its project title; the rest of the Description and the Notes go into the order's notes. Orders carry no tax, so an order made from a taxed quote shows its total before tax, and its notes say so; the invoice adds the tax again.

Once a quote became an order or an invoice, its lines, cost adjustments and pricing are locked: the form says This quote became ORD-0012 and INV-0042, and that changes here do not update them. Customer, status, dates, description and notes can still change. To change the price, press Duplicate to revise and send the new quote.

Deleting a quote

Delete on the quote form removes it after a confirmation. Deleting from the Quotes list is for owners and admins. A deleted quote cannot be recovered, and an order already made from it is not affected.

Still stuck?

Email info@foxtrack.studio or ask on the FoxTrack Discord. Inside the app, the question mark in the top bar sends a bug report or feedback.