Where did this price come from, and can you get back to it?
Flow runs an engineer-to-order factory from the enquiry to the closed cost sheet: the site measured, the price built from a formula rather than a memory, the drawing approved before a board is cut, the shortage found before the crew arrives, the flat valued, the variation priced on the same rate card, and the job closed on a margin somebody can walk back to one operation. We built it, we sell it, and we put it in ourselves.
FlowEngineer-to-order manufacturing on Odoo · 19 modules on Odoo 19
The distinction that matters
What Odoo's own Manufacturing has to do with this
A great deal, and it stays. Flow is Odoo — stock, work orders, the tablet view, purchasing, accounting and the portal are Odoo's and are not reimplemented. Odoo MRP is built for a product you make repeatedly, and it is very good at that. Engineer-to-order breaks four of its assumptions, and the four are what Flow is.
The bill of materials comes before the product exists. In MRP you build a BoM and then raise orders against it. Here the opening is 900 mm at the narrowest of three measurements and the cabinet does not exist until somebody has been to site, so Flow prices from a formula against measured dimensions and generates the bill of materials at release.
Nothing in MRP asks where the price came from. A sale order line carries a number. Flow carries the build-up that produced it — direct cost, site difficulty, overheads, escalation, contingency, margin — with every row naming the assembly rule that generated it, so a total walks back to one operation on one machine at one rate.
MRP has no measured progress payment and no variation. Odoo invoices on quantity delivered or on a fixed schedule; this trade is paid on a cumulative valuation with retention and the previous certificate deducted. And a change on a live contract in a generic system is either a new order line, which loses the fact that it is a change, or an edit, which loses the original.
How it runs
The chain, from an enquiry to a closed cost sheet
Every figure is cut by zone — a flat, a room, a floor — because that is the unit this trade is drawn in, made in, delivered in, fitted in and paid for.
- 1The technical enquiry, its scope sheet and the site survey behind it
- 2A parametric estimate: assemblies against measured dimensions, at an AACE class
- 3The cost build-up — direct, difficulty, overhead, escalation, contingency, margin
- 4The quotation, its payment plan and its retention terms
- 5The drawing register, with revisions, submittals, samples and mock-ups
- 6Item codes and a bill of materials generated from the estimate, not retyped
- 7The bottleneck asked before the order exists, not after it is late
- 8Material requirements, and the shortage that stops a launch
- 9Manufacturing per zone, with job cards, non-conformance and rework
- 10Material out to a subcontractor and the pack that waits for it
- 11Packing by zone, delivery to site, and a receipt somebody signs
- 12Install orders, site progress, snagging and the client's sign-off
- 13The valuation, certified, with retention held and released
- 14The cost sheet: actual against estimate, per element, per zone
The refusals
The eight things it refuses to do
Every refusal below is a state transition the code declines and a test proves it declines — not a line in a procedure manual, and not a warning on a form that the person who already knows is the only one who reads.
RefusesReleasing an item to the factory against a drawing nobody approved
This is the most valuable rule in the product: no board is cut before the client has signed the drawing it is cut to.
RefusesLaunching a zone the material for it is not in the building
What is on order is not cover — a beam saw cannot cut a promise. And one board is cover for one requirement, so two zones are never both told the same sixteen boards are theirs.
RefusesPricing an enquiry nobody has scoped
A price against an unwritten scope is an argument scheduled for month four.
RefusesA second estimate from the same scope sheet
Two prices from one sheet is two answers with nothing on either to say which one the client was sent. Re-pricing is a revision, which keeps them comparable.
RefusesTaking an approved estimate back to draft
It is the contractual basis of a quotation the client is holding. The honest exit is a new revision, which supersedes it and leaves both halves on the record.
RefusesAn order line with no zone on it
A line whose zone is guessed at is an item fitted in the wrong flat.
RefusesSending to site anything carrying an open non-conformance
A panel that leaves with an open NCR is a snag raised on site at ten times the cost of fixing it in the shop.
RefusesCertifying a valuation that says nothing about an approved change
The failure is silence, not a wrong figure. A change valued at nought is fine — somebody looked. A change on no line with no reason written against it surfaces at the final account, when the crew has gone and the client has nothing left to gain by agreeing.
Honest limits
What it deliberately does not do
It does not draw. No 3D, no renders, no client visualisation. The cabinet packages have a parametric library decades deep and we are not close to it — the shops that run well run one of those for drawing and cutting and something else for the business, and Flow is built to be the something else.
It does not nest. Flow carries a yield percentage, which buys the right number of boards and offcut against them. It does not tell the saw where to cut, and there is no CNC output — no tooling, no labels, no post-processor.
Multi-currency works and has not been proved at scale, which is a different sentence from works.
It is the wrong answer for a range of standard sizes. If your product is fitted wardrobes in eight sizes made repeatedly, most of what is above is dead weight and Odoo MRP with a good bill of materials is the better fit. Ask us and we will say so.
Questions
What buyers ask us first
How many factories are running it?
More than twenty. It is the most-sold and most-deployed of the systems we build, which is the honest reason it is the one we are quickest to demonstrate rather than describe. None of them has agreed to be named on this page, so there are no logos above — a count we can stand behind is worth more than a wall of marks you cannot ring up.
Does it need Odoo Enterprise?
Yes, for one dependency: the quality module Flow's non-conformance and rework sit on is an Enterprise application. Everything else it depends on is Community. If that is the deciding factor for you, say so early and we will price both routes honestly rather than discover it in month two.
We already use a cabinet package. Does this replace it?
No, and it should not. Keep it for drawing, nesting and driving the machine — that is the half it is genuinely better at. Flow takes the half it does not do at all: the enquiry, the survey, the price and where the price came from, the buying, the site, the valuation, the variation and the cost sheet.
Is this a product or a project?
A product. Nineteen modules, written, tested and installed from packages. What an implementation adds is your assemblies, your rate cards, your work centres and your people — not the software.
What should we make any vendor prove on their own demo?
Five things, live. Show me where this price came from, down to one operation and one rate. Change a dimension and show me what moved. A client changes his mind halfway through — price it, draw it, make it, get paid for it. What has this job cost so far against what we allowed, per element. And: what have we delivered that we have not invoiced? Nobody who cannot answer the last one should be on your shortlist.
How we put it in
Written around this
Flow
See it on your own numbers
A walkthrough on a database seeded with a portfolio, not a slideshow. Bring one tenancy, one owner and one argument you have had with a spreadsheet, and we will show you where each of them lands.
Monday to Friday, 9:00 AM – 6:00 PM (GST)
Prefer we call you?
Leave your WhatsApp number and we will reach out.
