Price estimation is time consuming. Why are we still doing it manually?

Frank Sandqvist
Smidyo Codex
Published in
5 min readJun 3, 2019

TL;WR — I’m pitching you our startup Smidyo!

Back in 2012, me and my brother Patrik started a tiny sign-shop in our parent’s basement. Whenever we got an order, we were just excited to even get one — so letting the price just be a wild guess wasn’t such a big deal, as we both still had full time jobs.

Our humble shop in the basement with a Chinese CNC router from eBay.

But as the years went on and we started making our living off this company, the quotation process became all the more important. Even-though this was the main deciding factor whether we got a job or not, and how much money we made in the end, it still ended up being mostly guess-work to save time.

Spending an hour to calculate a quote, taking in to account all of the wealth of variables that make up a service as complex as manufacturing, doesn’t make a whole lot of sense, as you cannot be sure you will get the order or not.

So we thought, automating the quotation process of a complex service or product has got to be possible. Turns out, it’s very much possible.

Codifying a product or service

All it boils down to, is transforming all of the customer’s variables into a number — the price. In some cases it’s just elementary school math, in some cases it’s calculus.

Imagine you’re a company selling sheets of material. In this case it’s pretty easy!

((width * height * material price) + cutting cost) * quantity

Now imagine selling those sheets cut according to a drawing. Things immediately get way more complex. You have something more like this.

I’m not a math guy, so I resorted to pseudo-code expression rather than typing it as an equation.

And that’s leaving out all of the functions needed, as well as how you actually go about collecting the drawing itself from the user.

We went about this problem through something we call “pipelines”.

📝 Form pipelines

Provide an interface for a human to unconsciously break down their parameters into something that can be calculated on. In this example, it’s a widget that allows the user to upload their full drawing, and then pick out what’s relevant to be made. Here they are in action:

⚙️ Process pipelines

This is where the number crunching happens. By stringing together industry specific “calculation blocks” we are able to transform complex data, such as a drawing into a price.

Below is the source code for an operation block which takes in a drawing of data type file-svgand spits out it’s measurements as data type number. You can imagine how this can be calculated into the material price afterwards. (Hint: you multiply 😉)

🏷 Yield pipelines

In the end, we connect a form pipeline (the human interface) to a yield pipeline (the API endpoint). The yield pipeline is the place where we say which payloadlets of data type numberrepresent the price.

Here’s an example of how the final price structure can be represented in the case of selling sheet material.

In this case we’re doing the calculation itself in the price sequence.

We add the base material cost, multiply it with the usage,
add the base cutting cost,
give a percentage off,
finally multiply that with the quantity of what we’re buying.

Automatic quotation, automatic everything

The beauty of breaking down a service into pipelines is that your business now has an API. Meaning what?

Automatic supply chain

Imagine you’re a sub-contractor that provides part of a product to another company. The very peak of LEAN would be receiving an order for that product at the moment the other company sells their product online.

If your product or service is now an API, the other company’s web-shop can simply send an API request to add one product to the cart of the subcontractor. You can then place orders for exactly the amount of parts needed!

Generate data for production / fulfilment

This is like a sweet bonus breaking down the customer’s input into “data-payloadlets”. Now that you know exactly what you’ve got to work with, you can also turn it into exactly what you want.

Imagine you’re selling house signs. All the data you have from the person buying is a number. The number of their house.

By running that number through a “number-to-drawing” block and providing the font, width, and height, you can automatically generate the required drawing for you to later use to cut out the numbers with.

Or, if you’re outsourcing manufacturing, you can take it one step further. You can make it place an order with a company that actually owns the machinery required! You generate a file-svg data type of the house numbers, and the manufacturer also requests a file-svg data type, to know what to actually cut. Connect the dots!

Smidyo & friends at Slush

Exciting times ahead

We’re excited to see where the “codifying” of products and services takes us. And this is not to mention what can be done using machine learning in this area. Having a large data-set of orders placed using standardised, machine-readable JSON inputs has got to yield interesting results.

If anyone would like to reach out and discuss the possibilities for all of this, I’m available on the Twitterverse @kankki or at frank@smidyo.com

--

--