Armando Vieira

Delivered consulting project · System design and interactive demo

Agentic Company Network Investigation

I designed a system that investigates unusual payment patterns across companies. It combines temporal graph analysis with a bounded AI agent that tests explanations and assembles a traceable case for an analyst.

Explore the worked case

The problemA payment may look ordinary in isolation. Its timing, counterparties and place in a sequence can give an analyst a reason to investigate.

01 / Interactive demonstration · Synthetic data

Four companies, one hour

Four payments form a loop back to the original payer. Follow the investigation from the initial signal to the evidence an analyst would receive.

Payment and ownership graph

Four-company payment cycle and common ownership A pays B 100,000 euros at 09:00. B pays C 99,500 euros at 09:15. C pays D 99,000 euros at 09:35. D pays A 98,500 euros at 10:00. Owner P controls A and D. Company ACompany B Company CCompany D Owner P €100,00009:00 €99,00009:35 €98,50010:00 €99,50009:15
Payment directionOwnership link

Investigation walkthrough

Company B forwards payments faster

A deterministic company profile flags an increase in rapid forwarding. That gives the investigator a starting company and a time window.

Coverage. The example covers the accounts in the supplied records. Other accounts may change the picture.

Reconstruct the payment loop

The graph tools find A → B → C → D → A. The loop completes in 60 minutes, with a 1.5% spread between its largest and smallest payments relative to the largest. Owner P controls both A and D.

Interpretation. The records establish the sequence and amounts. Tracing the same underlying funds would require additional evidence.

Inspect the synthetic payment records
  • E1 · 09:00 · A → B · €100,000
  • E2 · 09:15 · B → C · €99,500
  • E3 · 09:35 · C → D · €99,000
  • E4 · 10:00 · D → A · €98,500

Ask how unusual the pattern is

The example assumes 12 qualifying cycles in a prespecified group and window. Four of 999 simulations under a constrained baseline produce at least 12 cycles.

Empirical p = 0.005. This measures how extreme the count is under that baseline, before adjusting for multiple comparisons.

Test explanations and hand off

The investigator checks for treasury arrangements, refunds and invoices. The available records leave the economic purpose unresolved.

Disposition. Send the case for analyst review with record IDs, coverage limits and a request for treasury and contractual documentation.

02 / System design

From signal to evidence

The design starts with dated transactions and company identifiers. Where available, ownership and invoice records help explain the relationships behind the payments.

  1. 01 / Detect

    Flag patterns reproducibly

    Scan dated transactions for rapid forwarding, short payment cycles and shifts in company or group activity. Compare candidates with historical or peer baselines.

  2. 02 / Investigate

    Test competing explanations

    One orchestrator uses approved, read-only tools to inspect the network, check coverage and look for ordinary business explanations within a fixed budget.

  3. 03 / Review

    Give the analyst the evidence

    Package the relevant subgraph, source records and open questions. The analyst records the disposition. Any external action requires separate authorization.

Implementation notes

Graph data model and time

Keep each payment as a dated, directed event in a multigraph. Store ownership as a separate, typed relationship. Historical queries use immutable snapshots and account for when a record first became available. Uncertain entity matches and gaps in coverage stay visible throughout the investigation.

Tool boundaries and evidence provenance

The graph engine computes metrics and traversals. The model receives bounded, authorized results through validated tool contracts. Each result carries a snapshot ID, tool version, parameter hash and an evidence manifest. The run ledger records the agent’s actions and stop decision.

How the design would be evaluated

Backtest the detector using data available at each historical cutoff. Measure review yield within a fixed analyst capacity and check whether each factual claim resolves to its evidence. Include missing-data and benign treasury scenarios to test how the workflow handles uncertainty.