AI Legal Chronologies for Family Cases: Events Linked to Evidence

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Legal Chronologies for Family Cases: Events Linked to Evidence.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Legal Chronologies for Family Cases: Events Linked to Evidence.

Extract events from each source into one table, one event per row, with fixed columns: date, event in neutral words, a verbatim quote, the source file with a page or message locator, and who recorded it. Merge and sort the rows, then check every quote against its original. A row without a checked source stays out of the chronology.

An AI summary that reads well but cannot point to the page it came from is useless in a hearing and risky in a witness statement. So this method puts the quote and the locator first and the narrative last, works with any assistant, and treats children's details and allegations as sensitive from the first step.

Follow me on Instagram@sagnikteaches

The working chronology and the one you file

These are two different documents, and AI belongs only in the first. The working chronology is long. It holds every relevant event from every source, with issue tags, a note on reliability and flags where sources disagree. The chronology you file or exchange is a short, neutral extract that a lawyer selects from it, and many courts ask for one, so check with the supervising lawyer what this court expects. In the worked example below, a 100-row working chronology yields a 22-row filed version. Nobody should ask an assistant to decide which events matter to the case.

Connect on LinkedInSagnik Bhattacharya

Columns that make every row checkable

ColumnWhat goes inWhy it exists
IDC001, C002 and so onConflicts and gaps can point to a row
Date and time2026-03-14 18:42, year firstSorts correctly and avoids day and month confusion
EventOne event, past tense, neutral: "B replied to the handover message"One event per row makes contradictions visible
WhoA or B, or a role (school, court)Shows who recorded or did it without names in the prompt
Source typeMessage, statement, order, record, emailDifferent sources carry different weight
File and locatorExport file and timestamp; statement and paragraph; order and paragraphThe link to the evidence, so anyone can find it in a minute
QuoteThe exact words, in quotation marksLets a search confirm the row
Issue tagChildren, money, housing, communicationLets the lawyer filter for one argument
Conflicts withIDs of rows that contradict this oneTurns disagreements into a list
CheckedInitials and dateNo initials, no use outside the team

Prepare the sources before the assistant sees them

Most chronology errors begin here, before any prompt. Six steps keep the evidence intact and the data minimal:

Subscribe on YouTube@sagnikteaches
  1. Keep every original untouched in a read-only folder. Work on copies named by date and type, for example 2026-03-14_message-export_A-B.txt.
  2. For WhatsApp, use the chat's own Export chat option, which produces a ZIP file holding the chat as text, with or without media. Open the text file and compare the first and last message dates with the phone, so you know the export covers the whole period. WhatsApp's help page notes that view-once messages are not exported, so ask the client whether any matter to the case.
  3. For screenshots, put the date, time and sender in the file name whenever the image crops them. An assistant can read the text, but a row with no timestamp is unusable.
  4. For PDFs such as statements, orders and school reports, decide what "page" means (the printed number or the file's page) and write it at the top of the table. Orders and statements cite by paragraph number.
  5. Redact for the task: children's names become initials, parents become A and B, and addresses, account numbers and medical details the chronology does not need are removed.
  6. Choose the tool with care. Use a business plan that does not train on your content by default: ChatGPT Business and Claude Team each cost $20 a seat a month billed annually ($25 monthly) with a two-seat minimum. Free consumer accounts are the wrong place for family-case material. Read the engagement letter and your firm's AI-use policy first; the AI use policy clauses tutorial covers what the policy should say.

Upload limits shape the batches. Claude takes up to 20 files per chat at 500 MB each (project files are capped at 30 MB), paid ChatGPT plans allow up to 80 file uploads every three hours, and Gemini takes 10 files per prompt at 100 MB each. A year of messages, two statements and an order fit comfortably, but run one source type per prompt anyway, because the instructions differ for each.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

The extraction prompt for messages

Messages are the largest and messiest source, so start there. The prompt forbids three habits that make a chronology unsafe: tidying quotes, characterising tone and merging events.

You are extracting events for a family-case chronology from a message export.
Return a table with one row per event: DATE_TIME (YYYY-MM-DD HH:MM), WHO (A or B), EVENT, QUOTE, LOCATOR.
- EVENT is one neutral sentence in the past tense with no adjectives.
- QUOTE is copied exactly from the export, including typos. Never correct, translate or tidy it.
- LOCATOR is the date, time and sender exactly as they appear in the export.
- One event per row. If a message contains two events, make two rows.
- Include only messages that record an event relevant to these issues: [handovers, the children's health and schooling, money, housing, arrangements].
- Ignore greetings and chatter.
- Never characterise a message (do not call it threatening, abusive, angry or kind). If a message needs human judgement, set EVENT to REVIEW and give the quote.
- If you cannot give an exact quote and locator, leave the row out and list the message under SKIPPED.
Date format in this export: [day first or month first, confirmed against a message dated after the 12th].
Export: [paste]

The two variants for the other sources change only the locator and the wording rule. Statements and orders usually arrive as PDFs, so run them in a separate prompt each.

SourceLocator formatWording rule for the event
Message exportDate, time and sender as printedNeutral past tense; one event per message
Witness statementStatement name and paragraph numberKeep it an assertion: "A states that B did not reply on 12 March"
Court orderOrder date and paragraph numberRecord each date, direction and finding as written; do not summarise the reasons
School or medical letterLetter date and pageRecord what the document says happened, not what it implies

What a first run looks like, and the three faults to look for

This extract is illustrative. Four rows from a message export show the output format and, below the table, what the reviewer finds when the original is open alongside it.

IDDate and timeWhoEventQuoteLocator
C0142026-03-12 18:42BB replied to A's message about the handover time"Fine, 5pm at the scool gate"12/03/2026, 18:42, B
C0152026-03-14 17:55AA told B the child had been unwell"She's been sick twice, keeping her home"14/03/2026, 17:55, A
C0162026-03-14 18:10BB asked to move the handover to Sunday"Can we do Sunday instead?"14/03/2026, 18:10, B
C0172026-03-14 19:30AREVIEW"That's the last time, you'll regret it"14/03/2026, 19:30, A

The first fault is a quote that has been tidied. In the draft run, C014 came back as "Fine, 5pm at the school gate", with the sender's typo corrected. A search of the export for the corrected string finds nothing, which is exactly how the check catches it; the table above shows the quote as it should be, typo included. The second fault is a date read the wrong way round. A run that guessed day-first would have placed messages stamped 03/04/2026 on 3 April when the phone, set to month-first, meant 4 March, and the symptom is rows landing out of order against the surrounding thread. Fix it by stating the format in the prompt and confirming it against a message dated after the 12th.

The third fault is merging. An early run folded C015 and C016 into one row, "A and B discussed the child's illness and moved the handover", which hides who raised what and when. The one-event-per-row rule exists to prevent it. C017 shows the intended behaviour for a message that could be read several ways: the assistant gave no label, set the event to REVIEW and quoted the words, and the lawyer decides what, if anything, it means.

Statements: keep assertions as assertions

A witness statement mixes events, opinions and argument, so its extraction prompt has one job: record who asserts what, in which paragraph, without turning an assertion into a fact. A short extract looks like this (illustrative):

IDDateEvent as assertedLocator
C0312026-03-12A states that B did not reply to the handover messageA statement, para 14
C0322026-04-02B states that A refused to hand over the child at the school gateB statement, para 9
C0332026-04-02A states that the child was unwell and was kept at homeA statement, para 17

The common fault is dropping "A states that". A first run wrote C031 as "B did not reply to the handover message", which turns a contested assertion into a finding and, as row C014 shows, into a wrong one. The rule that every event from a statement opens with the asserting party and "states that" costs nothing and prevents it. Cite paragraph numbers, not pages, for statements, because paragraph numbers survive reformatting.

Merging the tables, sorting, and flagging conflicts

Paste the outputs into one spreadsheet, sort by date and time, and ask the assistant to compare rows without deleting any. The instruction is: identify pairs of rows that describe the same event, list them by ID, and separately list pairs that contradict each other with a one-line description of the contradiction. A person then merges true duplicates by keeping the message row as the primary and adding the statement's locator as a second source, and keeps both rows where sources disagree.

A typical conflict (illustrative): paragraph 14 of A's statement says B "never replied" about the handover on 12 March, while row C014 shows a reply at 18:42. Mark each row in the other's "Conflicts with" column. The chronology now shows the disagreement as a fact about the evidence, and the lawyer decides how to use it. The assistant must not resolve it, and must not guess which source is right.

The gaps list: what the chronology cannot show yet

A chronology is also a map of what is missing. Ask the assistant to list four things and no more: periods longer than a length you set (say 14 days) that have no source inside windows the lawyer has marked as critical; documents mentioned in one source but absent from the file; orders that refer to schedules or attachments not in the bundle; and events recorded in only one source. A filled-in extract looks like this (illustrative):

GapWhy it mattersWhat to requestFrom
No messages from 20 April to 9 MayBoth statements describe missed handovers in those weeksCheck the export period; ask for the missing monthsClient
A's statement cites "the email of 3 June"; it is not in the fileA key event with no sourceThe email with its headerClient
The order of 2 March refers to a schedule not in the bundleThe order is incomplete as filedThe full order with the scheduleCourt file
School letter records an absence on 14 March; nothing shows who collected the childSits beside C015 and C016The school's attendance recordSchool
A's statement puts a handover on the 9th; messages show the 10thA date discrepancy between sourcesAsk the client; check the diaryClient

The list becomes the lawyer's to-do list for the client meeting. Each gap names what to ask for and who holds it, so nothing depends on anyone remembering what the chronology lacked.

Verify every row before it leaves the building

Verification is a search, not a read. For each row, search the source file for the quote string and confirm that the date, time, sender and locator match where it was found. A quote that does not turn up is either tidied, paraphrased or invented, and the row is corrected or removed. Every row that will appear in anything filed or exchanged gets this check from a person other than the one who ran the prompt. Rows that stay internal can be sampled, say one in four; if a sample finds a defect, check them all. Record initials and the date in the Checked column, because a row with no initials does not leave the team.

Before the table goes to anyone else, run five acceptance checks: every row has a quote and a locator, no event contains an adjective or a conclusion, dates run in sequence against the thread, every conflict is flagged from both sides, and every row has initials. A table that fails any one of them goes back for another pass.

Once the table is verified, the lawyer drafts from it and cites row IDs in the margin of a draft statement: "On 12 March B replied at 18:42 confirming the handover at 5pm [C014]. On 14 March B asked to move it to Sunday [C016]." The IDs make each sentence quick to check before the client signs and quick to find when the bundle is paginated. An assistant can help with a first draft only if it sees the verified rows and is told to use no event outside them, which is the same rule as the drafting routine in the tutorial on drafting a brief and cite-checking it.

One case end to end: 118 candidate rows become 100 checked ones

Take an illustrative case with four sources: a message export covering 14 months, a statement from each parent (43 numbered paragraphs for A, 31 for B), one interim order of 12 paragraphs and a two-page school email. The extraction runs, one source type per prompt, produced 118 candidate rows: 79 from messages, 27 from the statements, 9 from the order and 3 from the school email.

StageRowsWhat changed
Candidate rows from the four extraction runs11879 messages, 27 statements, 9 order, 3 school email
After merging duplicates10414 events appeared in a message and a statement; each became one row with two sources
After verification by search1006 tidied quotes corrected, 3 dates fixed (the month and day mix-up), 4 rows deleted because no exact quote existed
Conflicts flagged7 pairsStatement against message, or statement against statement
Gaps listed6Missing months, a missing email, an order schedule
Filed chronology22Selected by the lawyer from the 100 rows

Time is the other half of the picture. Running and pasting the extractions took about 1.5 hours, verification at roughly 2.4 minutes a row took 4.0 hours, and the lawyer's review of conflicts, gaps and the selection took a further hour, so about 6.5 hours in total. The sums are illustrative and make no claim about a manual alternative. What they show is the shape: the assistant's part is the smaller one, and the checking is where the hours go, which is where they belong in a document that may end up in front of a court.

The filed chronology keeps three columns and drops the rest. An extract of what the lawyer's selection might look like (illustrative):

DateEventSource
2 March 2026Interim order made on arrangements for the childOrder, paragraphs 1 to 3
12 March 2026B replied to A's message about the handover timeMessages, 12/03/2026, 18:42 (C014)
14 March 2026A told B the child had been unwell; B asked to move the handover to SundayMessages, 14/03/2026, 17:55 and 18:10 (C015, C016)
14 March 2026School records an absenceSchool letter, page 1

The quotes, tags, reliability notes and conflict flags stay in the working version, ready if the other side or the court asks for the detail behind a row.

The four rows deleted at verification are worth a note. All four were the assistant's paraphrases of long back-and-forth exchanges, written as if they were single quotes. Each described something that really happened, yet none could be tied to one message, and a row with no exact source is the thing the chronology is meant never to contain. The rows came out, and the lawyer reads those four exchanges directly in the export instead.

Neutral wording, children and allegations

Assistants drift into a vocabulary of conclusions. Left alone, a summary will say that B "sent a series of threatening messages on 19 March". The neutral version is a count and the words themselves: "B sent three messages between 21:02 and 21:15", followed by three rows, each with its quote. Whether the messages are threatening is a question for the lawyer and the court. Keep the assistant to who, what, when and the exact words, and never ask it to judge credibility, motive or the likely outcome.

Children need extra care. Use initials in every prompt, keep health and schooling detail to what the issue requires, and where the case involves allegations about a child, hold that chronology in a separate file with restricted access. The financial disclosure tutorial applies the same caution to bank statements and valuations, and the intake side of the work is covered in the tutorial on turning intake notes into a case chronology.

Finally, remember what a text file is. An exported chat can be edited by anyone, so it is a convenient copy of the evidence and not authenticated evidence. Ask the supervising lawyer how the court expects messages to be produced, which might mean screenshots with device details or a forensic capture, and treat any screenshot supplied by the other side with suspicion until checked; the checklist for spotting AI-generated evidence lists what to look for. For a wider view of which tools suit family work, see what to pay for and what to skip in legal AI for family law.

Questions about AI chronologies in family cases

Can I rely on an AI summary of messages in court?

Not the summary. Rely on the exact messages it points to. Every row needs a verbatim quote and a locator that a person has checked against the original export, so the chronology works as an index to the evidence and never replaces it. A row that cannot be traced back stays out.

How should I handle children's names and sensitive records?

Replace children's names with initials, and strip addresses, account numbers and medical detail the chronology does not need before anything goes into an assistant. Use a business plan that does not train on your content by default, and keep sensitive material in a separate, restricted chronology if the case calls for it.

Should the AI describe messages as threatening or abusive?

No. Record what was said, when and by whom, in neutral words, and quote the message. Characterisation is for the lawyer and the court. Tell the assistant to avoid adjectives and to flag a message for human review instead of labelling it.

What if the WhatsApp export has dates that look wrong?

Dates in an export can be written day first or month first, so 03/04/2026 could mean 3 April or 4 March. Find a message dated after the 12th to confirm the order, and check the first and last dates against the phone so you know the export covers the whole period the case needs.

Is a chronology itself evidence?

Usually it is a working document, or a summary the court asks for, and not evidence in itself. The evidence is the underlying messages, statements and orders. Ask the supervising lawyer what the court expects, because the format and the status of a chronology differ between courts.

Further reads

Sources: the ChatGPT Business and Claude Team pricing pages, the file-upload help pages for Claude, ChatGPT and Gemini, and WhatsApp's help page on exporting chat history. Checked 4 November 2026.

Want a chronology routine your team can check in minutes?

On a 1:1 call we'll look at how your team builds chronologies today, set up a source-linked table and a gaps list, and agree who verifies each row before it goes anywhere near a court.

Book a 1:1 call with me