Architecture of Automation 10 October 2023
Eliminating "Spreadsheet Friction": Automating BI Pipelines for Bookings and POS Data
For many high-growth organisations, the "manual dashboard" is a familiar bottleneck. While teams are often proficient at exporting CSVs from Point of Sale (POS) systems and building formulas in Excel, this manual intervention creates a glass ceiling for scalability.
At Nexoryx, we view the transition from manual exports to automated data pipelines as a critical step in achieving Enterprise Data Maturity. Below, we explore how to bridge the gap between fragmented POS data and real-time leadership insights.
The Hidden Cost of Manual Reporting
The true danger of manual dashboarding isn't just the hours lost to "data janitoring"—it is the introduction of silent errors. Manual data manipulation, no matter how skilled the operator, eventually leads to:
- Version Fatigue: Multiple versions of "truth" circulating via email.
- Integrity Erosion: Uncaught spreadsheet errors that lead to flawed strategic decisions.
- Operational Lag: Decisions made on "last week’s data" rather than real-time shifts.
Integrating the Source: Bridging the API Gap
In a recent project environment involving fragmented retail data, the primary challenge was consolidating data from disparate platforms—specifically Roller (bookings) and GoodTill (sales and inventory).
While these platforms offer user-friendly interfaces and CSV exports, the strategic move is to bypass the GUI entirely. By leveraging Application Programming Interfaces (APIs), we can programmatically "pull" raw data directly into a secure, centralised environment.
The Architecture of Automation
To move from raw JSON data to a decision-ready dashboard, we follow a structured, serverless engineering path:
- 1. Serverless Data Acquisition: We utilize Python-based scripts running in a Cloud Environment (GCP/AWS). This "serverless" approach ensures the infrastructure only runs—and costs money—during the minutes it takes to fetch and process data.
- 2. Validation and Cleaning: Before data hits the database, it must be "vetted." We use Python to scrub the data, ensuring that formatting is consistent and validation rules are met.
- 3. The Central Repository: We implement a Relational Database (such as MySQL or PostgreSQL) to store both current and historical data. This acts as the "Single Source of Truth" that powers all future reporting.
- 4. Metric Engineering: We initially model KPIs using libraries like Pandas for rapid prototyping and client feedback. Once the logic is perfected, we productionise these calculations directly within the SQL environment for maximum speed and stability.
From Pipeline to Dashboard
Once the pipeline is scheduled (e.g., daily or weekly refreshes), the final step is connecting the database to a visualisation layer like Looker Studio, Power BI, or Tableau.
The result is a "hands-off" ecosystem where dashboards update automatically. Leaders no longer ask, "Is this data current?" instead, they ask, "What does this data tell us to do next?"
Executive Summary of the Automation Workflow:
- Connect: Native API integration with Roller, GoodTill, and other POS systems.
- Centralise: Consolidating bookings and inventory into a cloud-based SQL repository.
- Standardise: Automated cleaning and KPI calculation using Python and SQL.
- Visualise: Seamless connection to BI tools for real-time, error-free reporting.

