← All work

Case study · Self-initiated with Jen Ray · 2026

The Ray Family Story

A thousand pages of one man’s handwritten research, turned into a graph — and from that graph, a 326-year history that can be read, searched, and walked through.

The Family Network view
The Family Network view: 784 people, coloured by surname, ringed by generation out from Francis Ray.

The brief

Jen’s family history existed as well over a thousand pages of one man’s research. We set out to turn it into something a family could read, search and keep adding to — without losing a single citation along the way.

The result is a living, AI-assisted research pipeline and a website with seven ways in: a narrative history, a family network, descendant trees, lifespans, maps, a media archive and a register of everyone — all generated from one graph.

Client
Self-initiated with Jen Ray
Year
2026
Practice
Jason Forrest Agency
Role
Research pipeline, graph database, data visualization, writing, web build

01 · The source

It started as handwriting in a binder.

Robert Phillip Upchurch, a retired professor and dean, took up his family’s history in his seventies and gave it the last quarter-century of his life — driving the back roads of Barton’s Creek Township to stand at each grave, corresponding with cousins for years, transcribing deeds verbatim, and reducing all of it to filing systems of forensic care.

What he left runs to well over a thousand pages. The file on Buckner Ray alone fills fifty. Nathan Ray could not write his name — the clerk wrote it for him and Nathan set his ✕ between the two words. That mark is the only thing he left in his own hand, and it belongs to a man who assembled 192½ acres.

None of it was data. All of it was evidence.

Binder page — Buckner Ray file
A page from the Buckner Ray file: Robert Phillip Upchurch’s transcription and notes.

02 · The method

Every fact travels the same road, and can be walked back.

An AI-assisted pipeline, but the discipline is old-fashioned: sources are immutable — never edited, only added. The database is a build artifact, regenerated from a script, never touched by hand. Nine automated gates verify the whole structure on every build. Unproven links carry an explicit certainty flag instead of being quietly promoted to fact.

  1. 01

    Register

    Each binder page, deed, will, pension file, obituary and interview is scanned and registered as an immutable source.

  2. 02

    Transcribe

    Verbatim transcription — 306,000+ words so far. Quoted phrases in the finished history come straight from these pages.

  3. 03

    Extract

    Facts are pulled into the graph’s own fields, each one cited back to the page it came from.

  4. 04

    Verify

    Nine gates per build: no broken links, no duplicated people, versions in agreement, certainty flags honoured.

  5. 05

    Generate

    Bios, timelines, maps, descendant trees — and the narrative history itself — are all written out of the graph.

03 · What came out

A 326-year story nobody had ever seen whole.

Individually, the binders held a family. Connected, they held a county — one patch of northern Wake County the family called “Ray Country,” a five-mile circle around a crossroads called Rogers Store that contained almost the entire story for a hundred and fifty years.

4,305
pages of source documents, across 61 distinct sources
306,000
words transcribed verbatim, none of it paraphrased
784
people in the graph — 429 of them named Ray
10
generations, from about 1700 to a child born in 2009
1,169
nodes: people, places, events, documents, photographs
1,826
relationships — parent-of, spouse-of, enslaved-by, buried-at
860
images and scans, each tied to what it depicts
23
enslaved people documented, with a chapter of their own

From the archive

Deeds, maps, binders and photographs — every one tied to the people it shows.

Early Wake County home
A home from the early days of Wake County, circa 1775.
Upchurch at the J. K. Ray store
Upchurch’s 1978 visit to the J. K. Ray store.
The Grady deed, 1851
The Grady deed, 1851 — cited in the graph to the page.
Wake County post offices, 1907
Wake County post offices, 1907 — Rogers Store at the centre.
Map of the Falls of the Neuse
An early map of the Falls of the Neuse: Ray Country.
Pedigree chart
Pedigree: the line back to Francis (or Luke) Ray.

04 · Built to be explored

Seven ways in, one source of truth.

Because everything is generated from one graph, no two views can disagree. Filter the network by surname, by region, by whether a link is proven — and the timeline, the maps and the biographies all answer to the same filter.

  • Family Story — the narrative history, itself generated from the graph. Reading it, you are reading data.
  • Family Network — 784 people as a force graph. Rings are generations out from Francis Ray; shapes group families by surname.
  • Family Tree — descendant trees drawn from the same parent-of edges.
  • Lifespans — every documented life as a bar against three centuries.
  • Maps — Ray Country: Barton’s Creek Township, the Falls of the Neuse, and the land now under Falls Lake.
  • Media — 860 scans and photographs, each linked to the people it depicts.
  • All People — the full register, searchable, with certainty flags visible.
rayfamilystory.com — story view
rayfamilystory.com — media archive
rayfamilystory.com — the story view and the media archive.
“So it would be accurate to say that you are currently reading data.”
From the project’s own technical notes. The dashed return path in the schema diagram is the part that matters most: a better reading of an old document re-enters as a new source, and what it displaces is archived rather than deleted.
Made by
Jen Ray and Jason Forrest, building on Jen’s family recollections and Jason’s work in data visualization and software.
Standing on
The research binders of Robert Phillip Upchurch; The Ray Family of Wake Co., NC (William Carroll Ray, 1999); Marl Ellis Ray’s cemetery maps and Ray Country tours.
How it is built
Immutable source registry → verbatim transcription → property-graph build script → nine verification gates → static generation. Nothing in the database is edited by hand.
Next case · 02 / 04→ LA Loves