Our method
How we find and verify information
The feedql method: how to get from one social post to the original source, the steps, the confidence levels and where verification most often goes wrong. With a worked example.
Updated
In short: a social post is not news, it is someone's reaction to something. We look for that something: save the post, write down the clues, keep several explanations open, search in several languages, trace it to the original source, and put every claim in one of three baskets: confirmed, likely, not confirmed. "We found nothing" is an honest result too. And we keep two questions apart: was it said (attribution) and is it true (truth). Confirming the first says nothing about the second.
This is the method we follow ourselves while building feedql, and it is built into the product: every item links to its original, and several retellings of one event fold into one event rather than ten. The page is written around a real case from 16 October 2026.
The main rule: you are the detective, the post is a clue
We work like a detective: take the clues from the post, find who else wrote about it, and go to whoever saw or said it first.
In
A screenshot or a link to the post: text, author, time, reactions, comments.
Out
A report: what happened, what is confirmed and what is not, a confidence level, the list of sources.
Six steps, in order
The verification algorithm
- 1Save the postScreenshot and link. Posts get deleted and edited; without a copy you cannot prove anything later.
- 2Write down the cluesWho, what, when, where. Read the comments: they often say what the post is really about. Convert the time to UTC.
- 3Come up with 2-3 explanationsAlways include "it is an old fake" or "it is just a joke", so you do not fall for the first guess.
- 4Search with different words and languagesShort queries of 3-6 words with names and the date: in Ukrainian, English, German, Russian.
- 5Get to the original sourceVideo, transcript, official site. Only the original shows what was actually said.
- 5 → 4: a new lead means new queries
- 6Sort into basketsConfirmed, likely, not confirmed. Gaps are not filled with guesses.
What goes in and out of each step
| Step | Output | Data from | Method |
|---|---|---|---|
| Preserve evidence | An archived copy, the time it was taken, the original file unchanged | Wayback Machine, archive.today, a local file | Berkeley Protocol: preservation |
| Extract entities | People, actions, claims, time in UTC, author | The post itself and its comments | 5W: who, what, when, where, why |
| Form hypotheses | 2-4 competing explanations, including "nothing happened" | The entities from the previous step | Analysis of competing hypotheses (ACH) |
| Generate queries | A queue: each hypothesis × several languages × the date | The hypotheses | Lateral reading |
| Search and filter | Material inside the time window and on topic; anything older is dropped even if the words match | Search engines, aggregators, search inside social networks, institution sites | Berkeley Protocol: online inquiry and preliminary assessment |
| Find a new lead | New keywords: a name, an outlet, an exact term | The filtered results | Pivoting |
| Trace to the original | The original, and how many sources are truly independent | Transcripts, video, official statements | SIFT: trace to the original |
| Match and decide | What matches (time, people, place, topic), a confidence level, every link | The entities and the confirmed candidates | Berkeley Protocol: analysis and reporting |
Confidence levels
Every claim in a report gets one level. Not the whole post, each claim on its own: one post can hold a fact, a guess and a joke.
Attribution: was it said?
Was the claim actually made, by whom and where. We check it against the recording or transcript of the original appearance. A retelling does not count.
Truth: is it so?
Is the claim itself correct. This is a separate check with its own evidence. A confirmed quote can still be false, and an unconfirmed claim can still be true.
The levels below apply to each question separately. Always say which one you mean.
| Level | Criterion |
|---|---|
| Confirmed | There is an original source, or two or more independent quality sources. |
| Likely | Time, people and topic match, but there is no direct link. |
| Not confirmed | No sources, or a single poor one. An honest answer, not a failure. |
| Refuted | The original source directly contradicts the claim. |
Red flags
Everyone writes the same thing
Often it is one story rewritten ten times. Look at who they cite.
The story feels familiar
It may be an old fake making the rounds again. Check the date.
The quote is translated
After two translations the words change. Find the original.
The source is propaganda
It can hint where to look, but it is not evidence.
Nothing fresh turns up
Search engines need hours. Check official sites and social accounts directly.
The times do not line up
X shows your time zone; Brussels is an hour behind Kyiv.
Worked example: "Ursula stands there scared"
On 16 October 2026 at 11:17 Kyiv time a post on X said "Ursula stands there scared". In the comments someone wrote about Zelensky's "obscene answer" to accusations about weapons. This is what we could reconstruct.
Reconstructed timeline
- 15-16 OctTrump interview with NewsmaxA claim that missiles given to Ukraine were sold on the open market. No evidence given; sources disagree on the date of the interview.
- 15-16 OctEU leaders' summit in Brussels
- 16 Oct · 10:55 Kyiv (09:55 CET)Joint briefing by Costa, von der Leyen and ZelenskyAccording to the transcript: statements only, no questions from journalists.
- 16 Oct · 11:17 KyivThe post "Ursula stands there scared"22 minutes after the briefing began.
- 16 Oct · ~11:30The comment about an "obscene answer"A user's guess, not a fact.
The query log
We ran 16 queries. The breakthrough came not from a more precise query but from changing language: a Russian-language query surfaced the word "Newsmax", and from there everything turned up in English. The first two, standard queries found only background.
Queries by language
The result
- Confirmed Attribution only: the briefing in Brussels on 16 October at 09:55 CET took place, and the statement about missiles was made in the interview. That means "it was said", nothing more.
- Not confirmed The truth of that claim, that missiles were sold on the open market. No evidence was given, and we found none.
- Likely The post reacts to that briefing: time, people and place match.
- Not confirmed Also that Zelensky answered those accusations at all, let alone obscenely, and how von der Leyen actually looked.
Where verification breaks
- Time zones
- X shows the viewer's time zone, EU sites use CET, US media use ET. Convert everything to UTC before comparing.
- Language asymmetry
- A story can dominate one language segment. Such sources point to a lead; they are not evidence.
- Double translation
- A quote that went English → Russian → Ukrainian changes meaning and tone. Find the original video or transcript.
- Source echo chamber
- Ten articles can retell one. That is one source, not ten: check who each one cites.
- Old stories with the same words
- Fakes about resold weapons have recurred since 2022. Filter hard by date.
- Sarcasm and jokes
- Separate the event from the interpretation.
- Indexing delay
- Search engines pick up fresh material after hours. Search social networks and institution sites directly.
- Confirmation bias
- After the first match it is easy to stop looking. Keep "nothing happened" on the list.
- Edited video
- A frame can be cut from another moment. Reverse-search the frame; get the full video from the official source.
- Sites that do not open
- Paywalls, blocks, server errors. Use an archived copy or another source, and mark the gap in the report.
How we judge a source
Status: planned. This part of feedql is being built and is not live yet. This is how it is designed to work.
A source is judged by its record on items we have checked, not by how loud it is or how well known. Two principles follow from that.
- The author and the outlet are rated separately. An author can carry several ratings, by kind: accuracy of facts, accuracy of quotes and attribution, transparency of sourcing, and corrections. They can also differ by topic: reliable on one subject, not on another. An outlet's standing is built from its own record and the records of its authors.
- Too little data means no number. Below a minimum number of checked items we say "not enough data" instead of showing a score.
External lists are inputs, not verdicts. We show them with their origin, so you can see who said it: the EUvsDisinfo database, state-affiliated labels that platforms put on accounts, and the list of IFCN fact-checker signatories.
Signs of a fake or bot site
| Sign | Why it matters |
|---|---|
| A new domain | No history of its own, so no record to judge. |
| A lookalike of a real outlet's domain | The "Doppelgänger" campaign cloned the sites of real media to pass fakes off as their reporting. Check the exact address. |
| No named authors | Nobody to hold responsible, nothing to build a record on. |
| The same text on many sites at once | One source copied many times, not many sources. |
| Unnatural posting rhythm | Identical intervals, round-the-clock output, bursts on a signal. |
One sign is a reason to look closer, not a verdict.
How this works in feedql
- Every item links to its original. You can always go to the source rather than to our retelling.
- Retellings of one event fold together. Ten articles about one thing are one event with ten reports, not ten stories, so an echo chamber shows at a glance.
- Date and source are in plain sight. An old story with the same words does not pass for a fresh one.
- Many languages and kinds of sources. Forums, social networks, institution sites and registries sit side by side, because the lead is often not where you looked first.
- A score with a reason. We say why an item is shown instead of asking you to take our word for it.
- Coming: source and author reputation. A record built from checked items, as described above. Not live yet.
Where to look
Original sources
Council of the EU, European Commission, Office of the President of Ukraine, EC Audiovisual Service, the participants' official accounts.
News and aggregators
Google News with a date filter (another language and country give another set), GDELT.
Social networks
X advanced search: from:handle, since:2026-10-15, until:2026-10-17, lang:uk. Telegram: in-app search, TGStat. The author's profile: creation date, earlier posts.
Fact-checkers
EUvsDisinfo, StopFake, Detector Media, VoxCheck, Centre for Countering Disinformation.
Archives
Wayback Machine and archive.today: save now, find what was deleted.
Photo and video
Google Lens, TinEye, InVID-WeVerify: keyframes, metadata.
What the method stands on
| Method | The idea |
|---|---|
| SIFT (M. Caulfield) | Stop, investigate the source, find better coverage, trace to the original. |
| Lateral reading | Check a source by opening other tabs, not by reading the source itself. |
| Berkeley Protocol (UN / Berkeley) | Online inquiry, preliminary assessment, collection, preservation, verification, analysis. |
| Verification Handbook | The journalism standard: original source, time, place, author. |
| Bellingcat guides | Pivoting, geolocation, chronolocation, reverse search. |
| ACH | Keep several explanations and look for what refutes them. |
Before you believe it or share it
- Do I know who said it first?
- Do the date and time line up?
- Are there at least two independent sources?
- Did I separate the fact from someone's opinion or joke?
- Did I check it is not an old story?