The whole build on one screen: budget, costs, what has been certified, safety paperwork, snags, the daily diary and every document.
For owners, developers and project managers on the Costa del Sol.
Scan it and WhatsApp opens with the first message already written.
La cartera
€2,847,400
across 6 obras · 3 obras left out of the total: their figures are on a different VAT basis
Desviación
+4.2%
spent against budget · 2 obras over
What needs looking at
And nobody typed any of it in
Send us the budget you were given — a .bc3, an Excel, or the PDF from the architect — and we set the job up so you see it with your own numbers. It is a phone, not a support queue: the person building this reads it and answers it.
You find out about the overrun in week 6, not week 14.
01 — La obra
Open the job and it is all there: what was budgeted, what has been spent against each line, what has been certified, the licencia and the referencia catastral, the CAE folder, the snags with the photo they came from, who is on the job in what role, every document, and everything that has happened, in order. You did not fill any of it in and neither did your contractor — it is what arrived, read and filed, with the message, photo or PDF still sitting behind every figure.
Contrato
€70,000
what the client signed
PEM (sum of the partidas)
€56,971
the gap is not explained here
Certificado
€38,412
2 certificaciones · a origen
Partidas over budget
2
fontanería +12% · iluminación +20%
Nine panels, and not one of them is a form somebody has to fill in.
Presupuesto de contrato and PEM — the sum of the partidas — side by side, then certificado, gastado and desviación (the drift). The gap between the two presupuestos is named and never explained away — gastos generales, beneficio industrial, IVA and alcance are indistinguishable from here, so hilo does not pretend to tell them apart.
The presupuesto as the work breakdown it actually is, straight off the .bc3, the CSV or the Excel. Every cost that arrives lands on one of these lines, and the ones nothing has landed on are just as visible as the ones drifting.
Número, periodo, líneas — and «a origen» printed on every single row. Reading a cumulative figure as a period figure is a mistake worth tens of thousands, so the label is never left to memory.
The contractor's safety paperwork (PRL) by scope and by expiry: red past due, amber inside thirty days. Twelve document types, and the ones that are missing get chased instead of sitting in a folder nobody opens until the inspection.
Dated, photographed and attributed to whoever reported them. Severity comes back marked sugerida until a person confirms it, because characterising a defect is the técnico's job and not a model's.
Promotor, proyectista, director de obra, director de ejecución, coordinador de seguridad y salud, constructor, jefe de obra. The DO/DEO split that every foreign tool collapses into "architect" — and it is exactly the distinction that decides who signed a certificación.
Emplazamiento, municipio, referencia catastral, zona del PGOU, número y fecha de licencia, inicio, fin previsto, acta de recepción. Empty fields read no consta, never «falta» — half a ficha is the normal state of a real obra, not an error.
Contratos, facturas, licencias, informes técnicos — and you can open every one of them, which sounds obvious and was the gap that took longest to close. Albaranes sit beside them with delivered-against-billed next to each supplier.
The timeline, with the author and the provenance on every entry: what was agreed, on what day, by whom, and which message it came out of. Quotable word for word four months later, which is the only version worth having.
Nothing on that screen is a status somebody forgot to change. There is no dropdown where an obra is set to «en ejecución» and then rots. What the page says is what the record can prove: «activa · hoy», «no movement for 21 days», «finalizada» once an acta de recepción is on file. And progress is money — % certificado, % gastado, desviación — because on a building site the money is the only progress figure nobody can round up. Where there is no presupuesto to divide by, it shows nothing at all, since «0%» claims that nothing has been done.
02 — How it fills itself
The record fills from the three places a job already produces information: the site's WhatsApp, the inbox the paperwork lands in, and a link on the crew's phone. All three go through the same pipeline — a receipt photographed on scaffolding is read, classified, attributed to a partida and put on the timeline exactly like the same receipt forwarded from a chat. One writer, so the timeline never quietly starts meaning two different things.
hilo.build
online
Save the number once and it behaves like any other contact. Forward the builder's voice note, drop the factura straight in, log the hours on the drive back, ask what a partida has left. Nothing for the client or the industrial to install.
For whoever is on site, that's the trade: a fifteen-second voice note instead of five minutes of paperwork at the end of the day. If it doesn't save the encargado time, he stops sending, and then none of the rest of this works.
Every obra gets its own address. Forward the invoice, the contract, the licence or the surveyor's report — attachments and all — and it lands against the same budget as everything else. Anyone can send to it; only the people on the obra get answered back, or the address becomes a way to read somebody else's money.
One link per person, opened straight from their phone. Three buttons and nothing else: a photo, a voice note, and what got done today. No app, no account, no password — the camera opens on the first tap rather than a file picker.
Because the link belongs to a person and not to the obra, everything sent through it arrives with their name on it: «lo mandó Miguel el 18 de agosto» is a fact the record holds rather than a thing to go and ask about. And you withdraw the link the day they leave the job.
hilo.build/s/•••••••• · Miguel Ángel Ortega · encargado
03 — Presto y Arquímedes
hilo does not plug into Presto, and it does not need to — it speaks the same file. The presupuesto goes in as a .bc3 and the certificación comes back out as a .bc3, the format Presto, Arquímedes and Menfis have read and written for years. Nobody changes software, nobody re-types a budget, and nothing you do today has to stop.
Out of your software
And back in again
La certificación, as the same .bc3 your software already imports.
You certify where you certify today. hilo checks the numbers before it writes the file and refuses to export one that will not reconcile — every certified line has to exist in the budget, the capítulo subtotals have to sum to the stated total, no partida may certify more than it budgeted, and a follow-up has to certify something its predecessor did not. When one of those fails, nothing is exported and the message names the partida. A file a quantity surveyor discovers is wrong three weeks later is worse than no file.
No obra worth tracking is starting on Monday, and nobody is going to pause one to onboard software. So the normal case is the one that has to work: import the presupuesto of a job already running, then forward the facturas you have already received.
Each one is filed under the date printed on it, not the day you happened to send it. A factura from July lands in July. So the gastado, the desviación and the % certificado are right for the whole job to date — not just from the afternoon you signed up.
And the certificaciones you have already issued are not left behind. Tell hilo the last number and its total a origen — «nº 3, 132.800 €, hasta el 31 de julio» — and it continues your sequence instead of restarting at nº 1. The next one it writes is nº 4, and it subtracts that total to state its own amount, which is what stops a certificación claiming the whole job to date as one month's work.
What it does with a gap, said plainly: that carry-forward is a figure you typed, not one hilo derived, so it is labelled that way on the screen and on the printed control de obra — never shown as though hilo had checked it. And if you declare €132,800 already certified while only €80,000 has reached the lines, hilo refuses to build the next certificación and tells you the difference in euros: those are the facturas from before it that have not been forwarded yet. A document built on half a job's costs is not one confirmation away.
Villa Cascada · already at week 12 when it arrived
Weeks of the job already in the record
12
Spent, with its real dates
€146,220
Drift you had not seen
+4.8%
Next certificación
nº 4
However the presupuesto turns up
Becomes
One list of capítulos and partidas that costs can land on.
A .bc3, a CSV or an Excel goes in by itself — send the file, the lines are there. A PDF, a photo of a quote or nothing written down yet: during the beta we build it with you on the first obra, by hand if that's what it takes, because a budget nobody structured is the normal case, not the awkward one. Start with six lines and refine later: when a corrected presupuesto comes in, the costs already attributed carry forward by código de partida instead of being reset.
Send us the .bc3 — or the PDF, or the Excel — and we'll show you what hilo makes of it, on your obra rather than on a demo villa. It costs you one message and you get to keep the answer either way.
04 — El panel
An obra page answers questions about one job. El panel answers the one you actually start the morning with. Every widget leads with a single figure in words and puts a chart underneath as its evidence — and you drag them into the order you read in, hide the ones you never look at, and it stays that way.
Adding a presupuesto con IVA to one sin IVA gives a figure about 21% wrong that looks entirely reasonable, which is the worst thing a number on a dashboard can be. El panel sums the biggest basis group and prints what it left out on the same line as the figure: «3 obras left out of the total».
«Certificado en 2 de 8 obras» is stated rather than averaged over the rest. A retención shown as 0 € would tell a builder he has nothing to collect when the plazo de garantía closes, and that is a claim about his money.
Gasto against plazo is the chart that says a job is in trouble before the total does. An obra whose ficha has no dates sits in its own lane behind a dashed rule. Zero on the plazo axis says «starts today», which is a claim; the lane says «no dates in the ficha», which is what the record holds.
Nothing blends an expired seguro and a €40,000 overrun into one number out of ten. That number would mean nothing and hide both. What you get instead is the expired seguro and the €40,000, ordered by a criterion the screen names.
Drag to reorder, hide what you never read, reset it. It lives in your browser, not on the obra — this is one person's arrangement of their own screen, not a fact about the job. Works by touch and by keyboard, because half of this product gets used one-handed.
Certified this year
€612,400
against €704,900 invoiced by suppliers
Retención held to date
no figure
no certificación carries a retención percentage · «0 €» would say something else
Hours this week
386 h
14 people · 3 names with no owner
Spend against schedule
7 of 8
no dates in the ficha · they go in their own lane, not at zero
Recent activity
05 — El dinero
Not a folder and not a feed. The presupuesto becomes capítulos and partidas, each cost that arrives is attributed to one of them, and the message, photo or PDF it came from sits behind it. The ones hilo could not place don't disappear into a total — they go into a queue with your name on them, across every obra at once.
One euro on the wrong partida costs you more trust than fifty right ones earn. So when hilo isn't sure which line a cost belongs to, it doesn't pick the closest guess — it leaves the cost outside the totals with your name on it and asks. Nothing is quietly absorbed.
A button labelled «poner» reads as a recommendation, so it only appears when the match is real. An «alquiler de andamio» invoice is not offered «01.01 Demolición de tabiquería» as its best guess — with nothing matched you get one «elegir partida» button, which is honest about knowing nothing and costs exactly the same click.
A cost goes onto a line in one click or gets split across several. A payment is matched to the bill it clears, or spread across a few. A vendor's agreed credit period is recorded, which is what turns «sin vencimiento» into a date — labelled por condiciones, because a derived date is an inference about somebody's contract and never passes for one printed on a bill.
A split that doesn't add up to the base imponible writes nothing at all, and says by how much: «Suma 780,00 € — faltan 400,00 €. No se ha guardado nada.» A settlement may clear less than the payment — one transfer covering a bill and a deposit — and never more, because spreading €7,000 of a €5,000 transfer reports a debt as paid that nobody paid.
A cost goes on a partida in euros sin IVA, because a partida is a line-level figure. A bill is cleared in euros con IVA, because that is what you actually pay. Both forms are on the same screen, so the row prints both figures rather than making you work out which one it means.
A line crossing its threshold produces one message on WhatsApp, that afternoon. One per crossing, not twelve — a PM who mutes the alerts has been given nothing. And every figure points back at the message, photo or PDF it came from, with who sent it and when. Including the ones an AI read, marked as suggested until a person confirms them.
18 partidas · 6 capítulos · base sin IVA
Alicatado y solados
€8,050
of €8,200
Instalación de fontanería
€13,890
of €12,400
+12%Iluminación exterior
€1,824
of €1,520
+20%Not on a line yet
hilo wasn't sure. It asked instead of guessing.
€1,180
needs you06 — Preguntar
A screen decides in advance which question it answers. «¿Cuántas horas hizo Miguel en julio y en qué obras?» has no screen and never will, because there are hundreds of those and each would be a page nobody opens. hilo sits in the corner of every screen in the app — the question almost always turns up while you are looking at something else — and it reads your obras to answer.
What do I have to pay this week?
Two invoices falling due inside the week:
Fontanería Ruiz · FR-1140
Villa Marbella Paraíso
€3,240.00
4 days overdue
Eléctrica del Sur · EDS-2026-88
Villa Cascada · por condiciones, 30 days
€4,312.00
due 22 August
There are 2 more invoices with no due date. They are not urgent: they are unknown, because nobody has recorded the credit period agreed with those suppliers.
And what is the average margin across my obras?
There is no margin in this record, and I am not going to invent one. The gap between the presupuesto de contrato and the PEM is not margin: gastos generales, beneficio industrial, IVA and scope all sit inside it, and from here they cannot be told apart.
What I do have, obra by obra: contrato, PEM, gastado, certificado and desviación. Tell me which of those you want and I will pull it.
Counting the rows it got back is reading, and that is allowed. Summing, averaging, extrapolating, prorating and converting between tax bases are not. When a question asks for a number the record does not hold, the answer says so and names the numbers that do exist — which is a complete answer, not a failure.
Seven tools, each one a projection of a screen's own loader, and no SQL written by a model anywhere in it. The answer in the chat and the figure on el dinero cannot disagree with each other, because they are the same function call.
«Reading the money queues.» «Reading the diary for Villa Cascada.» The sentence naming where an answer came from does not vanish the moment the text arrives — on a product whose whole claim is that the figures come off the record, that line is the evidence.
Ask it to put a cost on a partida and it points you at el dinero and refuses. Those writes carry refusals you have to argue with — a split that doesn't reconcile, a settlement bigger than the payment — and a refusal buried inside a chat message is a worse version of the same product.
The Marbella, Estepona and Benahavís PGOUs, LISTA, the CTE documentos básicos, the VUT decree, Propiedad Horizontal — quoted with the article rather than paraphrased from memory. A question asked inside an obra already knows its municipio and its zona de PGOU. And if you name a different municipality in the question, yours is never quietly added alongside: one town's ordinance answering for another is exactly the mistake worth refusing.
07 — The rest of it
Three screens that answer the questions the money never does: what happened on Tuesday, who was there, and where that document went.
The one screen organised by day, because a jefe de obra is asked «¿qué pasó el martes?» far more often than «¿cuánto llevamos gastado?». Photos, hours, albaranes, incidencias and everything that came in, all filed under the day they belong to — and the day is in the URL, so a parte is a link you can send.
Which day a photo belongs to is not cosmetic on a dated document, so the boundary is a real Madrid day and not a UTC timestamp: a message sent at one in the morning on the 19th belongs to the 19th, whatever the server thinks. The weather is recorded on the day and frozen, so a parte printed in November still says what it said in August.
parte-2026-08-19-villa-cascada.pdf
7 people · 52 h · 2 albaranes · 24 °C, clear
Everyone the record can actually prove: their obras, their role on each one, their hours, when they were last on site, and the PRL paperwork that names them. Adding somebody looks for them first and creates second, so the same man does not end up on the job twice under two spellings.
A tie matches nobody. Hours land on a person by name, per obra, and when two Miguels could both be the Miguel in the voice note, the hours go to neither and the ambiguous name is listed so you can fix it. Putting eight hours on the wrong man is a larger error than putting them on none, because nobody ever goes looking for it.
work_log · «Miguel, 8 h, encofrado»
2 people are called Miguel on this obra — unassigned
work_log · «Miguel Ángel, 6 h»
Miguel Ángel Ortega · encargado · Villa Cascada
Every file the obra ever received, in one place, filtered by a URL you can paste to somebody — and a list of filenames turned into a list of facts, because the record already knew what each file became.
A file's kind is what it turned into, never its extension: the same .pdf is a factura, a seguro or a plano, and the extension cannot tell them apart. When nothing has been read out of a document yet, the archive says so in words rather than leaving the row blank.
handwritten-site-note.png
Factura BC-260718-0942-17 · €12.40
presupuesto-villa-cascada.csv
Presupuesto v1 · 18 partidas
memoria-de-obra.pdf
nothing has been read out of it yet
08 — One record, six documents
El control de obra, the client's pasaporte, el parte diario, the Friday email, la certificación and the evidence pack are not six products. They are six views of one record, which is why they never disagree with each other — and why a control de obra downloaded in March and one downloaded today are the same link and different sheets.
El control de obra is the whole money picture: contrato and PEM side by side, the budget by partida, what is committed against each one, which lines are drifting, the document behind every figure, the certificaciones a origen, the hours logged on site, the cambios, the incidencias and the timeline with its provenance. El pasaporte is the same job with the presupuesto taken out — timeline, photos, incidencias, cambios and what has been invoiced, but no partidas, no desviación and no contract total. The propiedad sees what it has been billed, never what the job was budgeted at. You decide when it hears about an overrun, not a link.
Lucía Ferrer (owner) · Marco Ruiz (jefe de obra)
2
Snags
1
Change orders
€3,240
Approved extras
Latest
The owner in Stockholm is never going to log in, and shouldn't have to. On Friday they get the week in their own language — spent against budget, what is drifting, what is waiting on them.
It leaves as FIEBDC-3, the format Presto, Arquímedes and Menfis import — hilo feeds the software they already certify in rather than asking them to leave it. And it checks the numbers first: it refuses to export a file that won't reconcile, and tells you which partida is the problem.
certificacion-vmp-2026-08.bc3
Period 1–31 Aug · a origen · 18 partidas · €38,412
One topic — the damp in the master bathroom, the lighting extra — pulled out as a dated PDF dossier with every message, photo and document behind it, and a fingerprint on the last page. For when a conversation stops being friendly.
evidencia-fontaneria-2026-08-06.pdf
14 items · sha256 9d41c07be2f8a6… · generated 6 Aug 2026
The document's language follows the obra, not whoever opened it. A control de obra gets printed, forwarded and filed, so it has to read the same every single time — the aparejador who downloads it in English and the constructor who downloads it in Spanish would otherwise be holding two documents with one name.
09 — Where we stand
You get an app. Nobody else has to. Your crew gets a link, your client gets a link, your industriales get an email address, and the site keeps sending the same WhatsApp it sends today. One account on the job — yours.
There is no invented number on it. No % completado, no health score, no margin, no status somebody forgot to change. Where the record holds nothing, the screen says so instead of showing a confident zero.
It watches the money, not the men. Costs, partidas and dates. Nobody's hours turn into a performance report, and no photo is a check-up on the person who sent it. Site people use it because it saves them admin, which is the only reason anyone keeps using anything.
It records. It doesn't protect. The warranty periods are Spanish law — LOE article 17 — not something hilo hands you. What hilo does is make it easier to show what happened and when.
It doesn't do your job. It keeps the record while you do, and it never signs anything, certifies anything or tells you whether something is allowed. That is the dirección facultativa's call, not a chatbot's.
It exports, it doesn't capture. The certificación leaves as FIEBDC-3, which is the file Presto, Arquímedes and Menfis import. We feed the software you already certify in instead of trying to replace it.
Spanish and English, both first-class. Read the builder's Spanish, get the answer in English, send the reply back in Spanish. The owner's Friday email arrives in whichever one they read — and the printed documents follow the obra, not the reader.
Running today
Being built
10 — Straight answers
No. You get the app; nobody else does. The site sends the same WhatsApp it sends today, suppliers email the same attachments to the same kind of address, your client opens a link, and the crew taps three buttons on a page with no password. One person on the job has an account, and that person is you.
No — it feeds them. The presupuesto comes in as a .bc3 and the certificación goes back out as a .bc3, the same file your software already reads and writes. You keep certifying exactly where you certify today.
hilo keeps the same kind of record — budget, costs, changes, snags, documents. The difference is where the data comes from. A big platform is a set of forms, and somebody has to fill them in; getting your own people to actually do that is the part that kills it. Nothing in hilo is a form the site has to complete — it reads what the job already sends. It does not do planning charts, BIM or CAD, and it isn't trying to.
No. A .bc3, a CSV or an Excel loads by itself. A PDF, a photo of a one-page quote, or nothing written down yet — during the beta we build the lines with you on the first obra, by hand if that is what it takes. Six lines is a real budget.
There is a model reading the messages, and hilo tells you so rather than hiding it: anything an AI extracted is marked as suggested until a person confirms it, and every figure links back to the message, photo or PDF it came from. The assistant is forbidden from doing arithmetic — it reads figures the product already computed and is not allowed to make new ones. Asked for a number the record does not hold, it says so instead of producing something plausible.
Only the people you add. The client gets a private link with the timeline, the photos, the incidencias and what has been invoiced — but not the presupuesto: no partidas, no desviación, no contract total. Each person on site gets their own link, which you can withdraw the day they leave, and a withdrawn link looks exactly like one that never existed. The money view is yours. Nothing is public and nothing is shared between obras.
The opposite. The encargado sends a fifteen-second voice note instead of five minutes of paperwork at the end of the day. If it doesn't save him time he stops sending, and then none of the rest of this works — so that trade is the first thing we protect.
The control de obra and the pasaporte linked on this page are real renders of a real obra in the system, not drawings. For the app itself: write on WhatsApp and we'll walk you through it. There is no self-serve trial yet, and sending you off to poke at one would waste your afternoon.
Nothing during the beta. We haven't set a price yet, and we would rather find out what it is worth to you on a real job first.
Private beta
Not a support queue and not a bot — a phone. Tell us what you're building and we'll tell you straight whether hilo is any use to you yet. We set obras up one at a time, so the list moves in order rather than all at once.
Scan it and WhatsApp opens with the first message already written.
A person reads it. Nobody adds you to a list you didn't ask for.
Free during the beta. Costa del Sol.
See the example