Bulgarian road-construction group · ~300 employees · €100M+ revenue · in-house asphalt, concrete and fuel sites
Road Builder ERM: Fleet, Plants, Sites
Some 300 people, 180 trucks and machines, in-house asphalt, concrete and fuel sites, and more than €100M a year in public contracts. All of it ran on paper, Excel and what the accountants remembered. Each number was keyed in three times. Management only saw each month's results three to four weeks after the fact, while insurance and inspection deadlines sat in a single person's spreadsheet. We designed one platform to run the entire operation.

- Industry
- Construction & Infrastructure
- Function
- Operations
- Region
- Bulgaria
Results
- < 1 day
- to management reports, instead of 30
- Projected figure, live data.
- 180
- vehicles, machines and plants managed in one place
- Each expiry date under watch.
- 20+
- document types handled without manual entry
- Projected: manual entry falls from 100% to below 10-20%.
01
The challenge
The client is a road-construction group in Bulgaria, with around 300 people and over €100M in yearly revenue. It builds and rehabilitates roads, motorways, bridges and tunnels under public contracts. Across several sites it runs asphalt and concrete plants, quarries, stone crushing and fuel stations of its own. Its fleet counts about 180 assets: heavy trucks, vans, cars, road machines and production plants.
Mechanisation, technical operations and procurement all worked on paper and in Excel. The only point where company data met was finance, so every other department waited on accounting.
The price of working this way
- Everything typed three times. A figure went onto paper, then into Excel, then to the accountants. That cost 40-100+ hours a month, plus one to two weeks each month spent on consolidation alone.
- Decisions without current numbers. Reports trailed reality by 21-30 days. Nobody could see live costs per site or per motorway lot.
- 180 assets, compliance tracked by hand. Dates for insurance, technical inspection, vignettes and tachographs lived in a spreadsheet. Miss one and a truck drives uninsured or a machine stops on a public contract.
- A mountain of driver paperwork. By law each vehicle needs a waybill every day. That is about 2,000 paper waybills a month, stored for years.
- Approvals by chat. Repairs and purchases were signed off in messaging apps, leaving no audit trail.
- One person held the fleet. Knowledge about the vehicles sat with a single employee.
02
What we did
We started at "the paper is killing us" and finished with a platform that is specified, prototyped and costed. That meant process discovery in three departments, a complete specification, a working prototype of the interface, the architecture, and a delivery plan solid enough to sign a contract on.
Enterprise Resource Management built for this business, not a generic ERP
The platform is driven by documents and rests on three pillars: document AI, a single central register and automated workflows. It has its own web and mobile interface and connects to the accounting software finance already runs.
More than 20 document types turned into data
Documents arrive by upload, by email or from a phone. They are split, classified and extracted automatically. In the action centre, users see the original next to the extracted fields, with the source highlighted. They can approve in batches and roll back every change a single document caused.
| Area | Documents handled |
|---|---|
| Finance | Fuel invoices, incoming invoices, acceptance protocols, bills of quantities |
| Fleet | Waybills, log books, registration papers, fuel limit cards, insurance policies, inspection certificates, service documents |
| Site operations | Weighbridge tickets, daily work records, construction acts, bills of lading, accident reports, permits |
| People and contracts | Health cards, employment contracts, rental contracts, powers of attorney, customs declarations, calibration certificates |
17 modules covering the business
- Transport and mechanisation. Each vehicle and machine has a complete file. Fuel cards and stock at the company's own fuel stations are tracked, and fuel is reconciled against supplier statements. GPS routes are recorded. Waybills are exported in the format the traffic police require, so they can be retained as the law demands. Service requests follow approval thresholds set by amount.
- Compliance calendar. Insurance, inspection, vignettes, tachographs, licences: every expiring document, with reminders 30, 15 and 5 days ahead.
- Projects and costs. Work is organised into projects, sub-sites and cost categories. Invoices are split across projects, and cost per site and lot is live.
- Procurement, staff and assets. Requests and purchasing, staff files including licence categories, fixed assets with depreciation.
- Dashboards for management fed by live data, not a report that is a month old.
- Link to accounting. Our own Microinvest connectors, running on self-hosted n8n, keep Microinvest and Plus-Minus in two-way sync. Invoices go out; payroll, clients and depreciation come back. Finance stays on its software, and nobody types the figures a third time.
- Bulk import from 14 source formats, covering everything from fuel statements and GPS routes to insurance and payroll.
- Security. Permissions set per role, per module and per action, two-factor authentication and a complete audit log. The interface scales to a phone, so drivers send waybills straight from the cab.
A prototype people could click through
We designed every key screen and built it as an interactive prototype. Mechanisation, operations and procurement tried their own workflows in it and gave feedback before any production code was written. In practice, this is where most requirements come to light.
A plan built to be delivered
| Phase | What it covers |
|---|---|
| 1 Foundation | Infrastructure, authentication, document AI and automation server |
| 2 Core | Document core, transport and mechanisation, staff, administration |
| 3 Business | Accounting integration, procurement, technical operations, reports, dashboard |
| 4 Data | Import and export, security, performance |
| 5 Go-live | QA, DevOps, acceptance |
The plan runs five phases over 30-36 weeks, with about 3,800 build hours. Each phase has written sign-off and each deliverable has acceptance criteria. Defects follow a severity model with set resolution times, and support comes with uptime commitments.
Stack
| Layer | Design choices |
|---|---|
| Front end | TypeScript, React, Vite, shadcn/ui, Tailwind CSS |
| Back end | PostgreSQL, Node.js, BullMQ and Redis, S3-compatible storage |
| Automation and AI | Google Document AI splitter, custom extractors, n8n (self-hosted) |
| Integrations | Microinvest via our own connectors, Plus-Minus, fuel-card data, GPS tracking |
| Operations | Docker, nginx, Sentry, GitHub Actions, hosting in the EU |
03
The outcome
Every figure in this section is a projection based on the discovery work and the specification.
| Now | Projected, with the platform | |
|---|---|---|
| Data typed by hand | 100%, done three times | Below 10-20% |
| Management reporting | 21-30 days behind | Live, in under a day |
| Lapsed insurance or inspection | Discovered by accident | Reminders 30, 15 and 5 days ahead |
| Document processing | Manual | 60-90% faster, about 80% fewer errors |
| Approvals | Chat apps | Amount thresholds and an audit log |
- Fleet, plants, sites, procurement, people and reporting in one platform for a company of 300 people and 180 assets.
- Over 20 document types handled automatically.
- More than 100 hours a month given back, with accounting no longer the bottleneck.
- Pays back in under 18 months, for about one fifth of what a comparable ERP rollout would cost.
- The specification and prototype have value on their own. Each problem the client brought, from triple entry to slow reports to hidden compliance dates, maps to the module that fixes it.
The risk teams tend to overlook
A packaged ERP knows nothing about Bulgarian waybills or your plants. If documents do not flow in by themselves, within one quarter people are back in Excel and the system goes unused.
Built with
The platforms and tools this engagement runs on.
ReactProven
TypeScriptProven
ViteProven
Tailwind CSSProven
Node.jsProvenExpressProven
PostgreSQLProvenRedisProven
MinIOProven
n8nCore stack
Google Document AIGoogle
Microinvest Delta ProProven
DockerProvennginxProven
GitHub ActionsProven
SentryProven
Microsoft ExcelMicrosoft- Intelligent document processingCore stack
- System integrationCore stack
- Workflow orchestrationCore stack
Scope
Services
Business functions
More case studies
Similar problems, measured the same way.

EU funding agency, public sector · internal audit · nearly €1 billion paid out yearly
An Audit Assistant That Runs On Premise and Cites Every Line
- auditor time saved on each control plan
- ~80%
- auditor time saved on each control plan
- of generated lines backed by a checked citation
- 100%
- of generated lines backed by a checked citation

Independent school with nursery · London · roughly 200 children
An Automation Plan for an Independent School's Finances
- of finance work each week
- 20 h → 1 h
- of finance work each week
- freed every year
- 780 h
- freed every year

Bulgarian accounting practice · 10-15 people · bookkeeping for 100+ companies
AI That Reads and Posts Accounting Invoices
- of documents go through uncorrected
- 97%
- of documents go through uncorrected
- less data entry every year
- 576 h
- less data entry every year