There comes a point in the life of every distribution company when Excel stops being a management tool and becomes a management problem. The symptoms are always the same: each department head has their own spreadsheet, the figures never reconcile between departments, and senior management makes decisions on information that is anywhere from two to seven days old. That was exactly where our client stood when they got in touch.
The frozen food distributor operates across three islands — Gran Canaria, Tenerife and Lanzarote — with annual turnover of just over €14 million. Its range includes more than 600 active product lines: fish, seafood, meat, poultry and ready meals. It has around 280 active customers spanning hotels, restaurants, supermarkets and institutional catering.
When we arrived, the technology landscape looked like this: the main ERP was Oracle SIGES, used for purchasing, sales, invoicing and accounting. Alongside it sat an in-house PostgreSQL database where the warehouse team managed stock in real time (limitations in the SIGES stock module had prompted this parallel development). And then there were the spreadsheets: at least eight different Excel files that various members of the finance and sales teams updated by hand every week from ERP exports.
The core problem was a lack of visibility over margins. Management knew how much it was selling and buying overall, but could not answer basic questions: which product category has the best margin this month? Which island is most profitable? Which customers generate the most volume but the least margin? Answering any one of these took the finance manager three to five days of manual work.
Sales and purchases lived in Oracle SIGES. Actual stock lived in PostgreSQL. Weighted average costs (WAC) — a critical metric in distribution for calculating the real margin on each sale — lived in Excel. None of the systems talked to each other. To work out the margin on a sale, someone had to manually match the selling price from SIGES against the WAC in the relevant spreadsheet.
At best, the data available in management dashboards was 24–48 hours out of date. SIGES exports were run by hand and processed in Excel the following morning. In practice, most reports were between three and seven days old.
There was no systematic report of margin by product category, customer, island or sales rep. The calculation existed as a concept in the ERP, but the SIGES table structure (in particular the TCABMOVISTOCKS table and its CDCLADOC document types) made it difficult to extract a per-sale margin directly without a dedicated ETL process.
Ninety per cent of the knowledge about how to interpret the data sat in the heads of two people: the finance manager and the purchasing manager. If either was away, the information ground to a halt. There was no process documentation, no automated validation and no audit trail of changes made to the spreadsheets.
We proposed an architecture built on three components: a managed PostgreSQL data warehouse on AWS as the storage and transformation layer, ETL pipelines using Python and Apache Airflow to extract and load data from the sources, and Power BI Embedded as a browser-based reporting layer with no need for desktop licences.
Extracting from SIGES was the most delicate part of the project. The Oracle database has a legacy table structure with cryptic naming, and stock movement types are encoded in the CDCLADOC field of TCABMOVISTOCKS, with values that determine whether a movement is a sale, a return, a transfer between warehouses or a stock adjustment. It was essential to pin down exactly which CDCLADOC values represented genuine sales (to end customers, excluding internal transfers) in order to build the management P&L correctly.
The extraction pipeline uses a JDBC connection to Oracle and runs through Airflow with hourly refreshes, incrementally loading the movements from the previous hour. Dashboard latency fell from 24–48 hours to under an hour. Data is loaded into a staging layer and then transformed, using version-controlled processes, into the dimensional tables of a star schema.
Weighted average cost is the single most important metric for a distributor: it reflects the true cost of each unit sold, weighted across the different purchases that make up the available stock. The formula is simple in theory (WAC = (Previous stock × Previous WAC + Quantity received × Purchase price) / (Previous stock + Quantity received)), but in practice it depends on being updated correctly on every inbound movement.
In SIGES, WAC is updated automatically with every goods-received note, but some situations distort it: customer returns put back into stock at selling price, stock adjustments, and purchases with retrospective discounts. The ETL pipeline includes a WAC validation layer that detects and flags statistical anomalies (changes of more than 15% in a product's WAC in a single day).
The end result is a set of four main views in Power BI, accessible from the browser with corporate sign-on:
The most immediate impact was not the time saved but the discoveries. In the first week of using the dashboard, management identified three situations that had been invisible under the old set-up:
The month-end close went from five days of manual work by the finance manager to two hours of reviewing and validating the dashboard. The project paid for itself within four months, counting only the savings from correcting ready-meal prices and optimising seafood stock.
We knew SIGES was complex before we started, but its true scale only becomes clear once you are working with the data model. The table naming (TCABMOVISTOCKS, TDETMOVISTOCKS, TARTIGEN, TCLIENTES) follows a logic of its own that takes time to understand before any reliable extraction can be built. Properly documenting which CDCLADOC to use for each movement type was critical to making the management P&L reconcile with the statutory accounts.
The second lesson was the importance of involving the finance team from day one — not as sign-off reviewers at the end of the project, but as co-designers of the data model and the KPIs. The margins that matter to the finance manager are not the same as those that matter to the managing director. Having that conversation in week one rather than week six saved two weeks of redesign.
We can take you from where you are today to an executive dashboard with margin visibility refreshed every hour — whichever ERP you use.
Let's talkMay 2026
CybersecurityApril 2026
ServiceView the full service
A secure network between branches, Oracle SIGES as the common system and AI reading invoices, delivery notes and orders.
Let's talk
Tell us about your project and we will propose the most suitable solution, with no obligation.