Why architecture diagrams mislead
On paper, almost every mid-sized company has a modern data stack. The management presentation shows logos for an ERP, a CRM, a cloud warehouse and a BI tool, connected by neat arrows. If you judge the estate from that slide, you will assume the reporting is automated and the business is ready for add-on acquisitions or AI workflows.
A technical inspection tests whether the underlying systems match that diagram. Where the slide shows an integrated warehouse, the inspection may find that only two tables sync on a schedule, the BI tool is used mainly to export CSVs into Excel, and customer profitability is assembled once a quarter on a single laptop. Knowing that before you close a deal or sign a software contract changes both the sequence of work and the budget.
1. Trace one board figure to the source
Do not start by reviewing tool licences. Pick two headline figures from last month’s board pack—typically net revenue by product line and gross margin by customer cohort—and ask the team to walk you backwards, screen by screen, to the raw database tables.
Watch for three things along the path:
- Manual handoffs: how many times is a file exported from one tool, edited in a spreadsheet, and uploaded into another?
- Undocumented filters: are specific account codes, internal customers or credit notes excluded by a hard-coded list inside a query or macro that nobody has reviewed in two years?
- Reconciliation to the ledger: does the commercial report tie back to the audited trial balance, or does finance maintain a separate bridge to explain the gap?
2. Inspect entity keys and master data
If the business plans to grow through acquisition, cross-sell across divisions, or automate operations, check whether its core entities share a reliable key across systems.
Rather than taking master-data quality on trust, run a profiling query across the CRM and the ERP billing tables to measure what share of active customers—and what share of invoiced revenue—joins deterministically on tax ID or a shared master key, and how many tax IDs map to duplicate CRM accounts:
WITH crm_by_tax_id AS (
SELECT
UPPER(TRIM(tax_id)) AS clean_tax_id,
COUNT(*) AS crm_account_rows
FROM crm_accounts
WHERE tax_id IS NOT NULL AND TRIM(tax_id) <> ''
GROUP BY 1
)
SELECT
COUNT(DISTINCT i.erp_customer_id) AS active_erp_customers,
COUNT(DISTINCT i.erp_customer_id) FILTER (WHERE c.crm_account_rows = 1) AS exact_1to1_matched,
COUNT(DISTINCT i.erp_customer_id) FILTER (WHERE c.crm_account_rows > 1) AS duplicate_crm_matches,
ROUND(100.0 * SUM(i.net_amount_eur) FILTER (WHERE c.crm_account_rows = 1)
/ NULLIF(SUM(i.net_amount_eur), 0), 1) AS revenue_matched_pct
FROM erp_sales_invoices i
LEFT JOIN erp_customers e ON i.erp_customer_id = e.erp_customer_id
LEFT JOIN crm_by_tax_id c ON UPPER(TRIM(e.tax_id)) = c.clean_tax_id
WHERE i.invoice_date >= CURRENT_DATE - INTERVAL '12 months';
Where deterministic coverage is low, any cross-system reporting is being bridged by fuzzy company-name matching in spreadsheets. Running the same check on SKUs, suppliers and chart-of-accounts codes—the same orphan and key-integrity checks built into 16-62 Labs—shows immediately how much master-data work a migration or post-merger integration will require.
3. Audit ownership and key-person risk
A platform is only an asset if the company actually controls it. During diligence or an internal architecture review, verify the operational basics:
- Account and credential ownership. Are the cloud warehouse, ingestion tools and code repositories registered under company-owned accounts with role-based access, or under a former contractor’s login?
- Version control and tests. Do data transformations live in a Git repository with automated quality tests, or as saved views and scheduled scripts inside a BI tool with no change history?
- Single points of failure. If the lead analyst or external agency stopped working tomorrow, is there a written runbook that allows another engineer to run month-end and fix a broken pipeline?
4. Test AI claims on real records
When a company—or a vendor pitching to it—claims an AI workflow is in production or “ready to scale”, ask for three artefacts: the offline evaluation set, the override log, and the monthly unit cost per thousand transactions. If none of the three exists, the system is a prototype, not an operational asset, and should be valued and budgeted accordingly.
What common findings cost to fix
Not every finding is a deal-breaker. Most mid-market data estates have rough edges, and the purpose of diligence is to scope and sequence the remediation accurately.
| Finding during diligence | Operational risk | Remediation pattern | What determines the effort |
|---|---|---|---|
| Board pack assembled in Excel from manual ERP exports | Slow month-end close; restatement risk when finance staff change. | Automate ERP extracts into the warehouse; model the management P&L; run one parallel close. | Number of subsidiary ERPs, local charts of accounts and manual consolidation adjustments. |
| No shared customer or SKU key across entities | Cannot track group margin or cross-sell across subsidiaries reliably. | Build a versioned cross-reference table in the warehouse and enforce tax-ID / SKU rules at entry. | Count of active customers and SKUs requiring deduplication and commercial sign-off. |
| Transformations hidden inside BI dashboard formulas | Dashboards disagree on core metrics; slow report queries. | Extract business rules into a tested SQL metric layer and thin out the BI views. | Number of calculated measures and downstream reports that must be reconciled. |
| Heavily customised legacy ERP blocking upgrades | High vendor maintenance fees; brittle API access for new workflows. | Decouple reporting and operational workflows into a warehouse layer before touching the ERP. | Whether custom ERP tables and stored procedures are documented and accessible via read replicas. |
Having this breakdown before Day 1 turns a vague “technical debt” warning into a sequenced post-close plan with clear deliverables and a grounded budget.