An evidence-based network analysis

The Daphne Caruana Galizia murder trial, mapped from the record

Everything below was drawn from what was said in court over 35 days of testimony: who was connected to whom, when each event is said to have happened, and where the record contradicts itself. Click anything to read the exact words it rests on.
Republic of Malta v. Yorgen Fenech · Criminal Court, Valletta
226 actors762 ties 532 dated moments33 contradictions 3,320 verbatim citations Source: daily trial transcripts, Times of Malta and MaltaToday, 1 July to 10 Aug 2026 AI-generated · not fact-checked
✓ Every claim carries the verbatim quote it rests on ✓ All 3,320 quotes machine-checked against the source text ✓ The build is refused if a single quote fails An independent record. Not affiliated with the Courts of Justice, with any outlet credited, or with the Caruana Galizia family.

This tool needs a wider screen

It puts a network, a reading panel and the full transcripts side by side, which does not survive a phone. Open it on a laptop or desktop, or rotate to landscape on a tablet.

You can dismiss this and continue anyway, but expect it to be cramped.

Find an actor

Tie type

Minimum confidence

Evidence weight

ties with ≥1 supporting quote

Trial days

Contested only

Actor group

Focused on
Ties Communication
Money
Institutional
Investigative
Dashed = contested Actors colour = group · size = evidence volume

Read this first

This analysis was generated by an AI system and has not been fact-checked by a human. It was built by MyRAresearch using Claude, Anthropic's language model, reading the trial transcripts and structuring what it found. No journalist, lawyer or editor has reviewed the result.

One thing here is mechanically verified: every quotation is checked, character by character, against the paragraph it cites, and the build is refused if any quote fails. So the words in quotation marks are reliably the words in the source. Everything around them — which claims were picked out, how they were labelled, how confident the analysis says it is — is model judgement and may be wrong.

Treat this as a research aid that tells you where to look, not as a finding of fact and not as a substitute for reading the transcripts. Nothing here is a verdict, and none of it is legal advice. Yorgen Fenech has pleaded not guilty, denies the accusations, and is presumed innocent until a verdict is delivered. Others named in this record are not on trial in this case and deny what is alleged against them.

This is an independent record produced by MyRAresearch, built with Claude. It is not affiliated with the Courts of Justice, with any of the outlets whose reporting it draws on, or with the Caruana Galizia family, and carries no endorsement from any of them.

Which version you are reading

Version 35.3320 · built 11 August 2026 · covers Days 1–35. The version number is the last trial day followed by the total number of citations, so any two copies can be compared at a glance.

A SHA-256 fingerprint of this file is published in CHECKSUMS.txt alongside it. Because anyone can download this page, alter it and republish it, the fingerprint is how you tell an authentic copy from a doctored one. If the hash of your copy does not match the published one, do not trust it.

What this is

A map of who is connected to whom in the trial record, when each event is said to have happened, and where the record contradicts itself — with the exact words behind every line.

Each tie in the network means a claim was made in court, with this much support. It does not mean the claim is true. A tie marked "High confidence" is well-evidenced within the trial record, which is a statement about corroboration, not about proof.

The source material

35 day-by-day live-blog transcripts of the trial as reported by Times of Malta and MaltaToday, covering 1 July to 10 Aug 2026, supplied as Word documents — roughly 179,000 words across 10,985 paragraphs.

These are journalists' contemporaneous accounts, not the official court record. Reporters compress, paraphrase and occasionally mishear. A quotation here is an exact quote of the reporting, which is not the same as an exact quote of the witness.

How it was built

  1. Each .docx was converted to plain text with every paragraph numbered, so any statement can be traced to a specific paragraph of a specific day.
  2. Every transcript was read in full and each relationship claim recorded as one row, with a verbatim quote copied from the source — 2,758 rows.
  3. A second pass, restricted to date-bearing paragraphs and their immediate context, extracted 562 dated events for the chronology.
  4. Every quote was machine-checked as an exact substring of its cited paragraph. Anything failing would have been removed; nothing did.
  5. Name variants were merged into canonical actors, claims about the same pair were merged into ties, and the confidence rubric below was applied.
  6. The record was scanned for places where it conflicts with itself, producing the contradictions tab.

What is checked, and what is not

ElementStatus
Quotation wordingVerified. Character-exact against the cited paragraph, re-checked on every rebuild.
Citation (day, date, timestamp, paragraph)Verified. The paragraph is confirmed to contain the quote.
Which claims were extractedNot verified. Model judgement. Coverage is thorough but not guaranteed exhaustive — material may have been missed.
Labels (tie type, evidence type, hearsay, contested)Not verified. Model judgement applied to each claim.
Confidence levelsNot verified. Computed by a fixed rubric from unverified labels, so a mislabelled input yields a confident-looking wrong output.
Analytic and assessment notesNot verified. Model-written commentary.
ContradictionsNot verified. The pairings are model-identified. Both sides cite verified quotes, but whether they truly conflict is a judgement.
Event datesNot verified. Many are inferred from phrases like "the day after". Each carries a "dating basis" stating how it was arrived at.
Entity mergesNot verified. E.g. "Edwin Brincat" and "Edgar Brincat" were treated as one person on the basis of a shared nickname.

Tie types

Every line in the network is one of four kinds.

Communication
Calls, messages, meetings, in-person contact, or an intermediary passing word between two people.
Money
Payments, promised payments, financing, salaries, bets, gifts, and the funding of legal fees. Direction runs from payer to recipient.
Institutional
Employment, government or ministerial role, company ownership or directorship, family ties, and business partnership.
Investigative
Who investigated, arrested, questioned, searched, pardoned, charged or gave evidence about whom — the state-and-process layer. These are connections created by the case rather than ones that existed before it. Known weakness: this category currently also absorbs journalistic scrutiny (the victim's own reporting on Keith Schembri, a newspaper staking out a boat) and bare charge status, which are different things. It is the largest category at 293 ties, and reads busier than the police layer really is.

Evidence types

What kind of thing the claim rests on. The first six count as non-testimonial support in the confidence rubric; the last two are the weakest.

document
A document exhibited or read into the record.
recording
Audio or video played or described in court.
phone_data
Call records, cell-site data, message extractions.
financial_record
Bank records, invoices, transfers.
court_record
A procedural fact established on the record.
admission
A party conceding a fact against their own interest.
testimony
Sworn witness evidence given in court.
advocacy
Asserted by prosecution or defence counsel in submissions. An assertion, not evidence.
reporter_summary
Stated in the journalists' own summary rather than attributed to a witness.

Confidence

Each tie is scored by a fixed rubric, not by impression. The score starts at zero.

+2
Supported by at least one non-testimonial evidence type.
+1
Two or more independent asserters.
+1
The tie recurs on three or more separate trial days.
+1
At least one first-hand, non-hearsay account.
−1
Every account of the tie is hearsay.
−1
It rests only on counsel submissions or the reporters' summary.
−1
It is contested in court and has no documentary support.
High / Moderate / Low
Score of 4 or more / 2 to 3 / 1 or less.
(contested)
Added whenever at least one underlying claim was challenged in cross-examination or denied. Contested lines are drawn dashed. "High (contested)" is common and meaningful: well-evidenced and fought over.
hearsay
The witness is relaying what someone else said rather than what they personally saw. Marked per quote.

The timeline

The chronology is a second index of the same corpus, ordered by when each event happened rather than when it was described in court. A witness testifying on Day 25 about a September 2019 meeting produces a moment dated September 2019; the trial day becomes the citation.

Date precision
How precisely the evidence fixes the date: day, month, quarter, year, range or approximate. Only 184 of 532 moments are fixed to a specific day.
Dating basis
How the date was arrived at. Essential for events dated by reference — "the day after the Castille meeting" — where the date is an inference.
Date disputed
Witnesses gave different dates for the same event. 43 moments carry this flag.
Accounts
Where two witnesses describe the same moment, both accounts are kept rather than reconciled.
Coverage limit
The chronology pass read only date-bearing paragraphs plus their immediate context. An event described with no date marker nearby may have been missed.

Contradictions

Places where the record conflicts with itself: incompatible accounts of the same event, a witness contradicting their own earlier evidence, an allegation flatly denied, or documentary evidence cutting against sworn testimony. Each side cites existing verified quotes rather than new text, so the contradictions inherit the verification of the claims they point at. Whether the two sides genuinely conflict is a judgement, and that judgement was made by a model.

What the checking has actually caught

Any analysis can claim to be careful. What follows is the record of the times this one was wrong, and how it was found out — because that is the only evidence of checking that means anything.

The work was built in four passes, each of which found errors in the one before.

Pass 1 — read every day
2,152 claims. Thorough, but it sampled: it recorded what it noticed and left no trace of what it didn't.
Pass 2 — the gap sweep
Prompted by a single miss a reader spotted, a filtered re-read of paragraphs the first pass had skipped added 333 further claims. More telling, 24 ties already in the network changed confidence level — the first pass had been under-corroborating links it had already found. Arnaud→Cutajar moved from Low to High.
Pass 3 — a verdict on everything
Every remaining paragraph was read and given an explicit decision, which added 273 more claims across all 35 days — including Adrian Vella's 5.03am call to Keith Schembri, and Schembri conceding a fingerprint expert was appointed "because we had both touched the document" four paragraphs before saying he never touched it.
Pass 4 — auditing the audit
2,274 of the no-tie decisions declined a paragraph on the ground that the point was "already recorded at paragraph N". That is the weakest reason available, so every one was machine-checked. 15 pointed at a paragraph that carried nothing. All 15 were re-adjudicated: 13 weretwo-hop chains where the fact was recorded a step further on, 2 were right to decline for other reasons, and none was a lost claim. That check now runs on every build and fails loudly.

Across all of it, 3,320 quotations are machine-verified character by character against the paragraphs they cite, and the build refuses to produce a file if a single one fails. That is a guarantee about the words. It is not a guarantee about the judgements around them, and the table above is the honest measure of how often those needed correcting.

The Audit tab is the raw material for all of this. All 10,985 paragraphs, each with its verdict and reason, filterable and searchable. Search an actor's name to see every paragraph mentioning them and what was decided about each. Or press Check a claim at random and audit one at the roll of a dice: it shows the assertion, the quotation, the paragraph it came from and the verdict, side by side, so a single falsification takes about ten seconds.

Checking anything yourself

Every passage carries a "read in source" link. It opens the full transcript of that trial day in the side panel, scrolled to the cited paragraph, with the quoted words highlighted in place — so you can see what came immediately before and after, which is where a quote taken out of context usually gives itself away. All 3,320 citations in this file open that way.

Every citation also gives a trial day, a date, a live-blog timestamp, a source document and a paragraph number. The numbered plain-text transcripts sit alongside this file in "transcript text (citation source)", and paragraph numbers there correspond exactly to those in the citations. The "copy quote + citation" button gives you both together.

If you publish from this

Verify independently before relying on anything here. Check the quote against the original reporting, and preferably against the court record. Where an allegation is denied, the denial is recorded in the data — carry it across. And keep the distinction that runs through the whole analysis: this documents what was said in a courtroom, not what happened.

drag to pan · scroll to zoom · double-click an actor to focus