Lu TaorminaFrom spreadsheet to software
§ 01The problem

Your company runs on a spreadsheet. I turn it into software.

Five days on your process · €2,500 · the document is yours either way

Somewhere in your company there is a file that decides what you charge, what you build, or what you pay. One person understands it. When they are away, answering a customer takes three days instead of ten minutes.

Before
XCosting PRO.xlsm — Excel− □ ×
FileHomeInsertFormulasDataView
BW9872fx=IF(COUNTIF(Articles!BW2:BW9872,">0")=0,0,ROUND(SUMIFS(…)/COUNTIF(…),2))
AB…BVBW
9869Steel Ø407.85…0.0018.40
9870AISI 4307.75…0.00#REF!
9871Flat bar7.85…0.006.12
9872…
Foglio1MachinesMaterialsMaterialsNewCustomers+16
Ready21 sheets · 1,376 formulas
After
yourcompany.app/quotes/4182
Quote — bracket, 40 offDraft · v3
Material — steel, Ø40 bar€ 84.20
Turning — 42 min at €48/h€ 33.60
Milling — 18 min at €62/h€ 18.60
Heat treatment — outsourced€ 22.00
Setup, spread over 40€ 9.75
Price each · margin 31%€ 245.60
Material price dated 12 Aug — still current

Is yours like that one? Drop your own file into the check-up and read the report: duplicate sheets, cells in error, hidden sheets, numbers typed inside formulas. It takes ten seconds, and the file is opened in your browser — it stays on your computer.

§ 02You are not unusual

More than half of all small companies are in exactly this position.

59% of small companies in the EU have no software that makes accounting, production and stock talk to each other. None — neither bought nor built in-house. Eurostat, EU enterprise ICT survey, 2025 data
89% of large companies have one, against 41% of small ones. You are not behind: that software is designed for companies ten times your size. Eurostat, EU enterprise ICT survey, 2025 data
15–20% of the build cost is what the industry charges you, every year, in compulsory maintenance. I charge none. what four software suppliers publish in their own price lists, 2026

When one of these projects goes wrong, the software is rarely the reason. It goes wrong because nobody wrote down what the company actually does before the building started — so the price was a guess. That is the single thing my first week exists to prevent.

The four costs already on your books

One person knows it

They cannot be ill in the week of your biggest quote — and they know it, and so do you. If they leave, part of what they know leaves permanently.

Errors nobody catches

A margin two points wrong is invisible in one quote and expensive across a year of them. A spreadsheet never tells you it has stopped being right.

It gets fed at night

The work happens in the day, the file gets updated in the evening. That is unpaid time, and it is the sort of thing people eventually quit over.

Growth hits a ceiling

You cannot hire your way past a file only one person can operate. The company stops growing at whatever that person can hold in their head.

§ 03Case studies

Three files, taken apart and replaced.

Each one below: what it was, what was actually wrong with it, what I did, and what came out. Every figure is counted from the real file and from the finished code. No company is named and no customer data is shown.

The workbook that priced every job in a machine shop

Manufacturing · 14 stages
The situation

A precision machine shop quoted every job from one Excel workbook with macros underneath. It had been growing for years: a sheet added whenever a question came up, a column added whenever a customer asked something new. It decided the price of everything that left the building, and one person could safely open it.

The file as I received it
XCosting PRO.xlsm− □ ×
BW9872fx=IF(COUNTIF(Articles!BW2:BW9872,">0")=0,0,ROUND(…))
AB…BW
9870AISI 4307.75…#REF!
9871Flat bar7.85…6.12
9872…
MachinesMaterialsMaterialsNewMaterialsDemo+17
Ready21 sheets · 2.1 MB
What replaced it
yourcompany.app/jobs/4182
Job 4182 — priced from the drawingReady to send
Title block, read from the PDFauto
Stock bar, read from the STEP fileØ40
Machine time — three operations60 min
Material price, dated12 Aug
Price each · 40 off€ 245.60
Checked by 861 automatic tests
What was seriously wrong
  • Two live price lists. Materials and MaterialsNew both open, both in use. Quotes were being written from whichever one the person happened to click, and only one of them was current.
  • Eight duplicate sheets, kept in step by hand. A full parallel set ending in Demo. Every price change had to be made twice, from memory, by the same person — and there was no way to tell whether it had been.
  • A formula reaching row 9,872, column seventy-five. Nobody could see the whole of it, so nobody checked it. When a reference below it broke, the workbook did not stop: it returned a number that was simply wrong.
  • A #REF! sitting in the material cost column. Not an alarm — just a cell, in a sheet nobody scrolls to, feeding a total somebody quoted from.
  • Foglio1, the default name, never changed. Nobody remembered what was on it and nobody dared delete it, so it stayed, and it was still being recalculated.
  • Macros written in 2024 that nobody had opened since, and that nobody still at the company could read.

The workbook was not going to fail loudly one morning. It was going to keep producing prices that looked exactly like the right ones.

What I did

Fourteen stages, in the order the shop needed them rather than the order that was easiest to build. The costing engine first, with the arithmetic pulled out into small pieces that can each be tested on their own — which is why there are 861 automatic checks and not forty. Then price lists and machine records, customers, quote documents, cost drift over time, estimate against actual, and last the job sheets that go out to the floor.

  • One price list, with history. The duplicate sheets are gone. A price change happens once, and the old value is not overwritten — it is kept with the date it stopped applying.
  • Prices carry a date, so old quotes still explain themselves. A quote written in March can be reconstructed in November, and a price increase goes out with a letter that shows the customer the arithmetic.
  • A quote starts from the drawing. The title block is read out of the PDF and the stock bar out of the STEP file, instead of two people retyping both and one of them mistyping.
  • The shop floor got a screen of its own, written separately from the office one. Different hands, different light, a different question being asked.
  • Nothing fails silently. Where the workbook returned a plausible wrong number, the software refuses and says which input is missing.
  • Several sites on one system, each seeing only its own numbers.
The result
Sheets to keep in step
21 → 1
Unchecked formulas
1,376 → 0
Automatic checks
861
People who can safely change it
1 → all

The point was never the app. It was that the shop stopped having one person it could not afford to lose.

This one is not just a case study: it can be bought

The costing engine became a real product, with its own free trial and its own price. If you run a turning or milling shop, there is nothing to rebuild: it exists, and you can try it on your own parts.

Try it — truepartcost.com

If your way of working does not fit inside it — which happens, especially to shops that built something of their own over the years — then we talk about rebuilding yours, starting with the five days below.

How it actually looks

The dashboard: what you charge per hour against what the hour costs you
What you charge an hour, against what it costs you
The archive of costed parts with cost, price and margin
The archive, and how far the estimates are off
The shop-floor screen: one large search for the code on the job ticket
The shop floor: one thing, large, for dirty hands
Quotes sent: how many are waiting, how many need chasing, how many are won
Quotes sent: how many you win, and who is worth a phone call

Real screens, running on the demonstration workshop: nobody’s data is in there.

The quotes that got written at the kitchen table

Trades · product with billing
The situation

No spreadsheet here. The file was a notebook and the process was the evening: measurements written on a page during the day, turned into a quote at nine at night, sent two days later. In a trade where the job usually goes to whoever answered first, two days is the whole problem.

21:40, kitchen table
Third quote of the eveningBy hand
Measurements, half from memory?
Price list, in another folder2023
Time spent, unpaid40 min
Reached the customer+2 days
Spoken, walking back to the van
quotes.app/new
Say the job out loudRecording
“Two radiators, first floor, copper…”●
Your own price list, applied2026
Document, ready to sendPDF
Reached the customer30 sec
Before you have parked
What was seriously wrong
  • The price list was two years old and lived somewhere else. Materials had moved since; the margin was whatever it had been in 2023, applied to 2026 costs.
  • The delay cost the jobs, not the price. Quotes that arrive third arrive after a decision has been made, however good they are.
  • Nothing was written down twice. A quote existed once, on paper, in a van. Nobody could tell you what had been quoted to whom, or at what margin, six months later.
  • The unpaid hours were invisible. Forty minutes an evening is two hundred hours a year that nobody counts and nobody bills.
What I did

Built the whole thing around the only moment that was actually free: the walk back to the van. You describe the job out loud, the software applies your own price list and produces the finished document. Subscriptions, quotas and rate limits were in it from the first week, because a product that cannot charge is a demo.

  • Your price list, not a generic one — loaded once, then applied every time, so the margin stops being a memory.
  • Every quote is kept and searchable, with what was offered and at what margin.
  • The running cost of each quote is shown against the subscription price on a live dashboard. A supplier doubling its rates should appear on a screen, not in an invoice at the end of the quarter.
The result
Time per quote
40 min → 30 sec
Reaches the customer
2 days → same visit
Automatic checks
502
Independent modules
39

How it actually looks

Inside the product: describe the job as you would in a voice note, and the quote details
Inside: “describe the job as you would in a voice note”
The price library inside the product: reference prices trade by trade
Inside: reference prices, trade by trade

Real pages from the product. I do not publish the screens inside: they would hold somebody’s quotes.

The finished quote is not here. The real ones are customers’ work and I do not publish them, and an invented one would say nothing beyond what you can already read above. If you want to see a real one, we look at it together in twenty minutes.

A company's accounts, spread across twenty sheets

Administration · runs on the office PC
The situation

Invoices issued and paid, rent, bank accounts, money moving between two owners, and the periodic reports — one workbook that had grown a new sheet every time a question came up, and then a second copy of that sheet when the first one got messy.

Twenty sheets
XAccounts.xlsx− □ ×
H214fx=SUMIF('Invoices'!$B:$B,$A214,'Invoices'!$G:$G)-H213
AB…H
212Invoice 11812/06…2,410.00
213Invoice 11919/06…#VALUE!
214Invoice 12002/07…—
Foglio2InvoicesPaymentsSummarySummary 2+15
Ready20 sheets
One screen, two logins
runs on the office PC — no internet needed
Invoices — outstandingJuly
Issued, not yet paid€ 41,280
Overdue more than 60 days€ 6,150
Rent due this month€ 3,400
Cash position€ 58,900
Whole history imported — nothing retyped
What was seriously wrong
  • A #VALUE! in the middle of a running balance. Every row below it inherited the error, so a figure the owners looked at monthly had quietly stopped being a number.
  • Two summary sheets, both maintained. When they disagreed, whichever one was open won.
  • Formulas across whole columns ($B:$B), so one paste in the wrong place silently changed totals elsewhere.
  • No access control at all. Anyone who could open the file could change a paid invoice back to unpaid, and nothing recorded that they had.
What I did

For an office that had never used anything but Excel, the design decision that mattered most was not a feature: it was that the program starts with a double click and needs no internet. Data in one file, kept on their own machine, with a backup they can copy.

  • The whole history was imported from the old workbook. Nobody had to retype a year of invoices before the thing was useful.
  • Two logins: one that can change everything, one read-only for whoever just needs to look.
  • One number, computed once. Where there were two summary sheets, there is now a single figure and no argument about which is right.
The result
Sheets
20 → 1 program
Conflicting summaries
2 → 0
History retyped
none
Starts with
1 click

I publish no screenshots of this one. It runs on a real company’s accounts and there is no version of it with invented data, so there is nothing I could show you without showing you their figures. If you are wondering what I would do with yours, that is the answer.

§ 04New products

When there is nothing to replace, I build the first version.

Not every job is a rescue. Sometimes there is only an idea, and what is needed is the smallest real thing that proves whether it works — in front of users, not in a deck. Musivae is mine: an MVP for a consumer music product, taken from idea to something installable and usable, on a backend with no fixed running cost.

Musivae — a photograph, and three songs
musivae.app
Your photo → three tracksReading the scene
Mood · light · energy, written firstread
Candidates fetched for 3 places6
Checked against the real catalogue6 / 6
Invented or karaoke, dropped2
Delivered3 tracks
One slot reserved for something you would never have found

Why it is here

It shows the part of building with AI that is not writing prompts: designing around what the model gets wrong. The model has to write its reading of the photograph before it picks any music, so it chooses against something it has already committed to rather than justifying a choice afterwards. Six candidates are fetched for three places and each is checked against the real catalogue, so invented tracks and karaoke covers lose their place to a reserve instead of leaving a hole in the answer.

Installable web appServerlessNo fixed costModel output verifiedLive cost per request

How it actually looks

Musivae: the opening screen, waiting for a photograph
Waiting for a photograph
Musivae: the reading of the scene and the three chosen tracks
The reading, then the three tracks
Musivae: the diary of kept songs
What you kept becomes a taste profile

Real screens, not mockups. Nothing is retouched.

I also built, and run the advertising behind, the website of a small service business of my own — the half most engineers skip, where the thing has to go and find its own customers rather than merely work.

§ 05The price

What the alternatives cost, so the number has something to stand next to.

RouteCostBefore you can use it
A custom module from your ERP supplier€25,000–80,000
plus 15–20% a year
6–12 months
A software agency€5,000–15,000
their published range for similar work
1–6 months
A packaged supplier€700–3,600
plus a monthly fee · a system they already have, not your process
days
Hiring a developer€40,000 a year
and one day they leave
3 months to hire
Keeping the spreadsheetnothing on paper
one person in practice
—
Thisfrom €9,000
no licence, no yearly fee
4–8 weeks

The figures on this page are what you pay: there is no VAT to add.

I sit in the middle of that range, not at the bottom, and I am not going to pretend otherwise. What differs is not the price on day one: it is two things, and neither is that the work is smaller. First: there is nobody here to coordinate with, and most of a six-month timeline is coordination rather than construction. Second: I am early with outside clients, and I would rather have your name on this page than your last three thousand euros. What you do not pay afterwards is in the box below.

I have no outside proof, and I'd rather say it before you ask. Paying clients: zero. No logos to show you, no testimonials, no case study with somebody else's name in it. What I can hand you are three things you verify yourself, without taking my word for it:
  • The check-up. Drag your file in and you have the report in twenty seconds, before you ever speak to me. It runs inside your browser: the file never leaves your computer, and I don't see it either.
  • The numbers are counted, not estimated. 1,376 formulas written across 15,192 cells, 1,040 cells in error, 16 hidden sheets: a program counted them on real files, and you run the same count on yours.
  • 861 automated checks. Translated: the day somebody else works on this, if they break something they find out immediately. That isn't about me — it's about you, on the day I'm not here.
The first list in the check-up is free for the same reason: it's true and it's checkable, and that is exactly what makes the second list believable.
And the guarantee, which is the thing you actually risk. The risk isn't the price: it's ending up with a new program and the old spreadsheet still open next to it, because the program doesn't do something you needed. If thirty days after delivery you still need your old spreadsheet to do your work, you don't pay the balance. The analysis week stays paid — you got that work, and you keep it even if we stop there — the rest doesn't.
On the yearly fee, where there is one. The industry standard for maintenance is 15–20% of the build cost, every year, for as long as you use it. On a €9,000 project that is €1,350–1,800 a year — €4,050–5,400 over three years — forever. There is none here — and if you want help later, it is a block of hours you buy when you want it and never again.
Three years, added up. The scoping week comes off the price, so a rebuild that goes ahead is €9,000 in total — and then nothing, for as long as you use it. The same three years through the first row of that table, at €25,000 plus 15% a year, is €36,250. Four times. Do the arithmetic on the row you are actually considering: it is the only comparison that counts, and it is the one nobody puts on a price page.
Worth asking your accountant. Custom software can fall under the Italian tax credits for digital investment, which have covered a meaningful share of the spend in recent years. The rules move every year and I am not the right person to advise on them — but the question is worth five minutes of your accountant's time before you decide.
§ 06How it goes

Four steps, and you are allowed to stop after any of them.

When you get something, not just when it is finished. The weeks in the table are the last date, not the first. Ten seconds: the check-up reads your own file and gives you the report, without sending it anywhere. Day five: your process written down as it truly works, and one working piece you can put your hands on — and if that document is wrong, that is where it stops. Every Friday after that: something running. Nothing here waits for the end.
00

One day on your file

€290

It is the first step of the check-up, and it works from here too. You send me the file and the day after you have a document of your own: what it does, what will break, what can be fixed in Excel and what cannot, and what rebuilding it would cost, at a fixed price written inside. All included, paid at booking; if we carry on, it comes off the next step. You can skip it: if you have already decided, start from the five days.

01

Five days on your process

€2,500

I sit with whoever actually runs the file. At the end you have your process written down as it truly works — not as the manual claims — and one working piece you can put your hands on. After this step you can stop, in two ways written here. The first: the document describes your company correctly but you do not want to go on: you have spent two and a half thousand instead of twelve, and the document is yours. The second, for the first three projects: the people who run the file say the written process is not theirs, you tell me within seven days, and the €2,500 come back, document included. If we carry on instead, the 2,500 come off the price.

02

The rebuild

from €9,000

One fixed price, agreed before anything starts, worked out from what week one found. You see something running every Friday, so you are never waiting on a black box.

  • You do not retype a year of invoices. Your history is imported from the old file.
  • You do not stop working. The old file keeps going until the day you decide it does not need to any more.
  • You do not have to teach anyone. Your people are trained, and the manual is written for them, not for a developer.
  • You do not end up tied to me. The code is on your own account from week one, with the automated checks.
03

Whatever comes next — if anything

only if needed · €4,500 / month

These are development days, not a support fee. There is no support fee here: this is a standing slot for building the next thing, if there is a next thing. Optional and never automatic. One month's notice to stop. Most of what you need should already be finished at step two — and most companies should never need this line at all.

There is no compulsory support contract, and that is deliberate. You get the code on your own account, the automated checks, and a manual written for the person using the software rather than for a developer. I would rather hand you something your own people, or your next supplier, can pick up than make you dependent on me.

Five rules, written here before you have to ask.
  • The file is the specification. You run it through the check-up, write me three lines, and within one working day you have a written proposal with the price. No phone call is needed to start; if you want one, we have it, and the written proposal arrives all the same.
  • Every step delivers one thing with a name, and one revision included. The day: the document on your file. The five days: the process written down and one piece that runs. The rebuild: the program, with its manual. Next to the price it says what gets redone once at no cost, and what counts as new work.
  • The date is written next to the price, and it holds. If it passes with nothing delivered, you do not pay for that step. The guarantee on the work is the one above: the old file, thirty days after delivery. What nobody here promises you is a number on your accounts: I could not verify it, and neither could you.
  • The code and the data are yours. The code on your own account from week one; the data exports whenever you want, to a file that opens in Excel, without asking anyone.
  • No fee, as above: the one recurring cost is written down first. If the program runs on a server, the hosting has its amount in the proposal, before anything starts, and you can pay the provider directly. Support, if you want it, is a block of hours you buy when needed: never a line that turns up on an invoice later.
§ 07Questions

The five things everybody asks.

I have never heard of you.

Fair, and true: I am at the beginning with outside clients. It is exactly why you are being quoted from €9,000 rather than the €25,000 this work costs from an established supplier, and why the first week has a way out of it built in — which, for the first three projects, is also a refund. And this price is for the first three projects: after those I will no longer be at the beginning, and saying so would be a lie. What I ask in return, if you end up happy, is permission to write about what we did. That is the trade, and I would rather say it plainly than pretend to be bigger than I am.

How do I know the price will not triple, like everyone says?

Because the price is set after the scoping week, not before it — and that is the whole reason the scoping week exists. Projects overrun when somebody quotes a process they have not yet seen. You will get one number, fixed, in writing, and a written list of what is not included. An overrun would have to come out of that second list, so read it first.

What if you disappear halfway through?

The code is on your account from the first week, not mine, and you pay in two halves — so the most that can go missing is work already delivered. The 861 automatic checks on the first case study exist for precisely this: a developer who has never met me can change something and be told at once whether it broke.

We cannot stop working while this happens.

Nobody can, and you will not have to. The old file keeps running throughout. We move one process at a time, and you decide when each one is good enough to switch — normally after a couple of weeks of both running side by side and agreeing with each other.

Our process is unusual. Everyone says that, but ours really is.

It probably is, and that is the whole point: it is why the software you could buy off the shelf does not fit, and why the file exists at all. It is also why week one is a paid, separate, five-day job rather than a free chat — I would rather discover that your process is strange while walking away is still cheap.

§ 08Contact

Twenty minutes, and you will see it working.

The fastest way to judge me is not a proposal, it is a screen. Send three lines — what the file does, who the one person who understands it is, and what happens when they are away — and I will show you a working system doing that job, with numbers close enough to yours to be worth arguing about.

The button opens an email with the three questions already written in it: no form, no surprise phone call. I answer within a day, and if I think you are better off keeping the spreadsheet I will say so — it happens, and finding out costs you nothing. English and Italian, remote, across European and US time zones.