Network Analysis & Computational Thinking
How to actually do network analysis: nodes, the four centrality measures, community detection, and the co-bidding graph that finds a cartel. Plus the trap that invalidates most of it, and the habit of mind underneath.
0. Why this chapter
Network analysis is named in three places at once: as a technique agencies use, as one of Schrepel's three stated specialisms, and as the natural method for cartel detection. It is also the one technique where you can describe a concrete method without claiming to have built it.
1. The vocabulary, with a worked graph
| Term | Plain meaning | In a co-bidding graph |
|---|---|---|
| Node (vertex) | A thing | A firm |
| Edge | A relationship between two things | *These two firms bid for the same tender* |
| Weighted edge | The relationship has a strength | *They co-bid 47 times* |
| Directed edge | The relationship has a direction | *A owns B* — ownership is directed, co-bidding is not |
| Degree | How many edges a node has | How many distinct firms this one has competed against |
| Neighbourhood | The nodes one step away | This firm's direct competitors |
| Path / shortest path | A route along edges; the shortest such route | How many co-bidding steps separate two firms |
| Component | A group where everyone is reachable from everyone, with no edges to outside | A regionally separated market — or a market-sharing agreement |
| Clique | A group where *every* member is connected to *every* other | The shape a closed bidding ring makes |
| Bipartite graph | Two kinds of node, edges only between kinds, never within | Firms on one side, tenders on the other. This is what procurement data actually is |
| Adjacency matrix | A table with nodes as rows and columns, and a 1 (or a weight) where an edge exists | An n-by-n grid. Mostly zeros, so stored sparse |
One small graph, used for the rest of the chapter
2. The four centrality measures — and they mean different things
*Central* is ambiguous, and the four standard measures answer four different questions. Choosing the wrong one is the most common error in applied network analysis, because they often rank nodes quite differently.
3. Density, clustering and community detection
| Method | What it finds | The cartel shape it maps to |
|---|---|---|
| Connected components | Groups with no edges at all to the outside | Market sharing — firms that never compete across a boundary. Also just separate geographic markets, which is why this one needs context |
| Clique detection | Groups where every member is connected to every other | A closed bidding ring. The purest signal, and rare in raw form |
| k-core decomposition | The subgraph where every node has at least k connections *within* it. Peels the periphery away | Excellent first pass — it strips out the one-off bidders and leaves the persistent core. Cheap and interpretable |
| Louvain / Leiden modularity | Partitions maximising internal against expected edges | Sector or regional structure usually dominates, so this finds markets before it finds cartels. Useful as the thing you must control for |
| Structural holes / brokerage | Nodes bridging otherwise unconnected groups | Hub-and-spoke coordination, and the natural companion to betweenness |
4. How you would actually do it, start to finish
The pipeline, with the decision points marked
5. The trap that invalidates most of this — and three others
| Trap | Why it bites | What to do |
|---|---|---|
| Co-bidding is not collusion | Firms in the same sector, size class and region co-bid constantly for entirely innocent reasons. The base rate of co-bidding among genuine competitors is very high | Compare within sector-and-region strata, or include them in a model. An unconditional co-bidding network mostly recovers market structure, not conspiracy |
| The edge definition is the finding | Co-bid once, or five times? Within a year, or ever? Per lot or per tender? Each choice yields a different graph and a different set of suspicious firms | State the definition, and report how the conclusion changes under alternatives. That sensitivity analysis is the same move as the market-definition point in the economic law chapter |
| Missing data distorts structure far more than it distorts averages | A firm absent from the data looks like a firm with no relationships. In a network, a missing node can create an apparent structural hole or break a real cluster — the error is not random noise, it changes topology | Know the coverage of your source. Procurement data below threshold values is often simply not published, which systematically removes small firms |
| Guilt by association | A relational model scores a firm partly on who it is connected to, so a firm with no suspicious conduct of its own can be flagged by its neighbourhood | This is Wisman's objection and it is the right one. It is close to what the UN Special Rapporteur criticised about SyRI — targeting by neighbourhood without individual suspicion. And the counterfactual explanation breaks: *had your turnover been lower* is actionable; *had your competitors been differently connected to each other* is not |
6. Computational thinking — the habit underneath all of it
The phrase gets used loosely. It has a conventional four-part definition, and then a version adapted to what you would actually be doing — which is more useful.
| The standard four | What it means | On a cartel screen |
|---|---|---|
| Decomposition | Break a problem into parts you can solve separately | *Detect bid rigging* becomes: assemble the data, define a relationship, find candidate groups, test against chance, control confounders, triangulate with prices |
| Pattern recognition | Notice that this problem has the shape of one you already know | Rotation is a sequence problem. Co-bidding is a graph problem. Bid spread is a distribution problem. Recognising which shape determines the tool |
| Abstraction | Strip away what does not matter and keep the structure | A tender is not a legal document here — it is a set of firms and a vector of numbers. And knowing what you threw away is part of the abstraction |
| Algorithmic design | Specify steps precise enough that they could be executed without judgment | The seven-step pipeline above. **If a step requires you to *look at it and decide*, it is not yet specified** |
7. How this connects to ATLANTIS, and what is unexplored
| Project | The question | Method |
|---|---|---|
| A null model for enforcement networks | Agencies run co-bidding analyses. Against what baseline? If dense clusters appear in random graphs with the same degree sequence, a cluster is not evidence | Build the bipartite configuration-model null for real procurement data, and report how many *apparently* suspicious clusters survive it. Cheap, and it would either validate or undermine a technique already in use |
| The projection artefact, quantified | How much of the clustering in agency co-bidding graphs is manufactured by bipartite projection rather than present in the relationships? | Compare clustering in projected graphs against the bipartite original across tender-size distributions. A purely methodological finding with direct enforcement consequences |
| Relational evidence and the rights of defence | A firm flagged because of its *neighbourhood* cannot act on that in the way it could act on its own attributes. Is a relational flag contestable at all? | Doctrinal, paired with a demonstration: show that a counterfactual explanation for a relational model is either unavailable or not actionable by the firm. This is Wisman's objection turned into a paper |
8. If you remember ten things
- Network analysis is descriptive statistics on a relational structure — no training, no labels. A graph *neural* network is the ML version and a different thing. Agencies use the first.
- Four centralities, four questions. Degree: who is busiest. Betweenness: who is a broker — this finds the hub. Closeness: who can coordinate. Eigenvector: who is connected to the well-connected.
- **Saying *we ran a centrality analysis* is not a method.** Saying which measure and why is.
- Procurement data is bipartite — firms and tenders — not a table.
- Bipartite projection manufactures cliques. A five-bidder tender becomes a five-way clique by construction, so clustering in a projected graph is partly an artefact. This is the one technical point to make.
- Modularity subtracts what chance would produce, holding degrees fixed. Q above roughly 0.3 suggests real structure. Louvain and Leiden find it; both have a resolution limit that can hide small cartels.
- Without a null model you have nothing. Dense clusters and high-betweenness nodes occur in random graphs too. Configuration model, degree-preserving.
- Co-bidding is not collusion. Same sector and region co-bid innocently and constantly. Control for it or you recover market structure, not conspiracy.
- The edge definition is the finding. State it, and report how conclusions change under alternatives.
- Computational thinking, your version: what shape is the question, what shape is the data really, what would this look like if nothing were going on, and what would change my mind. All four come from your own papers.