Data management in our family business
30 Dec 25 · business
Choosing the tool
Three years ago, we migrated from a set of loose Excel spreadsheets to Airtable. The main issue we wanted to solve was how difficult it was to keep track of outstanding invoices. The spreadsheet my father used was a simple list of invoices where he deleted the ones that had already been paid. Errors between what had been collected and what was still pending were frequent, not to mention the fact that it was impossible to keep any kind of history or analyse income data.
One day, during a back-and-forth about unpaid invoices with a property management company, they sent us an email via Airtable with our invoice history. I had already been thinking for some time about building something around databases, and Airtable turned out to be an excellent alternative: it combined a database-like system with a friendly, easy-to-use UX/UI. In a way, Airtable found us.
At a high level, we structured our setup around multiple bases, each one acting as a small system focused on a specific area of the business, with shared tables reused across them to avoid duplicating core information.
The system
The first base we created was Cobranzas (Payments). It existed because we couldn’t reliably know what had been invoiced or what had actually been collected, and we had no way of keeping historical, subject-related information.
We started with two fundamental tables: Consorcios, which represents the buildings we work in, and Administraciones, which manage those buildings and pay the invoices. These two tables are shared across all the bases we use.
The Cobranzas table itself is where we manage the status of invoices. In a simple way, we can see how much we invoice per month and to whom. Payments management improved significantly. Different views help us find information more easily, such as Pending, Not sent, and Paid.
About a year later, we created the Trabajo (Work) base. This happened when day-to-day jobs started to exceed what could be tracked informally, and many messages requesting help were lost or simply forgotten.
This base is the one we use daily. It consists of two tables: Trabajo and Empleados. The Empleados table stores data about employees and collaborators. The Trabajo table is where every service job is scheduled; each new row represents a new job.
This base also uses shared tables from Cobranzas. As before, we rely heavily on views to organise information. These include Agenda, a calendar view, and History, a grouped and filtered table used to manage jobs per building over time. This base is also used to manage quotations and invoicing.
Two tables for invoicing? Yes — it’s not ideal, but it’s a conscious compromise to keep the system usable for non-technical users. Cobranzas only contains issued invoices, while Trabajo includes jobs that are yet to be invoiced, along with their corresponding invoice data. A cleaner model was possible, but clarity and adoption took priority.
The newest bases we have are Accounting and Finance. Together, they exist to help us manage everything related to money: invoices, bank movements, taxes, salaries, and expenses.
The Accounting base contains six tables: Suppliers, Invoicing, Banks, Income, Expenses, and Balance. This base allowed us to clearly see the difference between what we invoice and what we actually collect, understand monthly cash flow, and keep a more detailed record of recurring expenses.
The Finance base, on the other hand, is used to schedule upcoming payments and will eventually be absorbed into Accounting.
Reflection
None of these bases were designed upfront. They grew in response to concrete problems, one at a time. Looking back, the system reflects the order in which pain appeared, not an ideal architecture.
Building it this way taught me more about real-world data modelling than many side projects. The main constraints weren’t technical, but human: habits, trust, and ease of use. It forced me to think less like a developer chasing elegance and more like someone responsible for keeping a system alive over time.
Next steps
The bases have grown, although we are still far from reaching the limits of the Team plan. Currently, Cobranzas has around 6,300 rows and Trabajo about 7,200. Accounting contains roughly 2,600 rows. In the Trabajo base, we have used 7 out of the 20 GB available for photos and videos of jobs.
While a large part of our workflow has improved, there are still several manual processes that take time.
Looking ahead to 2026, the goal is to improve and automate various processes. Some of the ideas I have in mind are:
- Improving how information from completed jobs is recorded through an internal application
- Separating quotations from the Trabajo table
- Developing a stock system to manage spare parts
- Automating job intake