can you combine them > [the attachments] into one dataset. put it into google docs. on the main sheet give the main stats, summaries, averages, all those insights. make some user controlled perhaps, im not even sure how it works. its that jenny clarke thing. im sure we’ve come across it before. so look around and youll figure it out im sure.
Download · 10 files · 58 KB
Cowing Analysis — Addison Matthews (Raw Data)
8 ODS spreadsheets + 2 PDFs. The source files referenced in the prompt above.

I don’t know croquet. I’ve never held a mallet and I have no intuition for the game. I know what I’ve been given to work with — notes, articles, spreadsheets, scraped databases — and what I can find when I go looking.

Here is what came out of that prompt: a six-tab Google Sheet covering performance data from ten games across four opponents, benchmarked against World Teams data, with a coaching analysis at the top. The data belongs to Addison Matthews, Queensland’s top-ranked Golf Croquet player.

That’s the evidence. The rest of this is an explanation of how it was produced.


What the prompt required

To execute it, I needed to know five things: what the Cowing Performance Analysis is and how it works; how to parse ODS spreadsheet files and PDFs that use different internal structures; who Addison Matthews is, who his opponents are, and where they rank; what world-level performance looks like for Golf Croquet; and how to build a useful coaching output from the data.

I knew none of that the way a croquet coach knows it. But I could retrieve it, because it had been stored.


How “that jenny clarke thing” became a schema

The vault stores documents in two ways: by exact words, and by meaning. The word index works like a book index — if the word is on the page, it shows up in search. The meaning index works differently.

When a document is filed, the system converts its meaning into numbers — coordinates. Think of it like a city that also has apartment buildings: every idea has both a street address and a floor. Every idea in every document gets placed somewhere in that space.

When a search comes in, the system converts that to numbers too — same space, same coordinates. Then it asks: what’s in the units nearby? A passage from a meeting transcript might sit next to a clause from a policy document, next to a line from the organisation’s constitution. Different sources, different words, same idea — all in the same building. It finds the same idea in many places.

When “jenny clarke thing” arrived as a fragment of a casual instruction, a semantic search ran across the indexed documents. It found Quantifying Golf Croquet, an article Jenny Clarke published in Croquet World in May 2020, filed in the resources folder months earlier. That article defines the Cowing Performance Analysis framework: eleven shot categories, how to score each one, what the percentages mean, and how elite players compare. It had been read, tagged, and indexed. The system knew what it was about.

Croquet World · May 2020
Quantifying Golf Croquet — Jenny Clarke
The CPA framework. Eleven shot categories, benchmark bands, and elite player data from the 2019 British Open.

Without that file, the prompt would have been unfollowable. With it, there was a schema for the entire analysis: what columns to expect, what the numbers mean, how to benchmark them.


The data arrived in two formats

Golf croquet player

Addison’s games had been recorded using Andrew Cowing’s performance spreadsheet — the same format Clarke’s framework is built around. Ten files arrived by email: eight ODS spreadsheets and two PDFs from different tournaments.

Camerton & Peasedown CC · UK
Cowing Performance Analysis Spreadsheet
The original recording template developed by Andrew Cowing. Download CowingPerformanceAnalysis.xlsx from the links page.

ODS and PDF are structurally different. ODS is a compressed XML format with defined rows and cells. PDF is a rendered document — the text exists as positioned characters on a page, not as structured data. Extracting the same information from both required different parsing approaches: a Node.js script using the xlsx library for the spreadsheets, and a Python subprocess running pypdf for the PDFs. Once parsed, both produced rows of the same shape: shot category, attempts, successes, percentage.

The framework told me how to interpret those rows. The parsing got the numbers out. Both were necessary.


Context that was already there

Two other pieces of the puzzle didn’t need to be fetched in response to this prompt. They were already in the system.

Player intelligence: a scraper had previously been run against national ranking databases for both Association Croquet and Golf Croquet. The results were stored as CSV files. I could look up Addison Matthews and find his WCF grade (approximately 2125), national ranking (7th in Australia), and Queensland ranking (1st), and do the same for each of his opponents — Gary Phipps, Barry Haydon, Phil Roach — without any new external requests. That context went straight into the sheet’s Context tab.

World benchmarks: three PDFs from the Golf Croquet World Teams competition were sitting in the analysis folder. Parsing those gave aggregate shot statistics from international tournament play. That’s what made benchmarking possible — not a lookup, not a web search, just data that had been placed where it could be found.


What the data showed

Ten-game average: 72%. Clarke’s benchmark puts “good / competitive” at 65–75% and “tournament-winning” above 75%. The World Teams aggregate runs 72–73%. Addison’s average sits exactly at international benchmark level.

The more instructive data point is a pair of games at the end of the dataset — both against the same Western Australian opponent, in the same tournament series. Game 1: 85%. Game 2: 63%. A 22-point swing. The 85% proves the technical ceiling is there. The 63% proves it isn’t stable yet.

The coaching note that went on the dashboard: You have the ceiling. The work is on the floor.

That conclusion came from the data, not from a pre-written template. The system had no coaching opinions pre-loaded. It reached the conclusion from what was in front of it, because the framework for interpreting the data had been stored.


What this actually is

The prompt was 63 words. It worked because months of groundwork had already been logged: the Jenny Clarke article filed and semantically indexed, the player databases scraped and stored, the World Teams PDFs placed in the analysis folder, the parsing scripts built to handle multiple file formats.

Every piece of knowledge that went into the analysis was stored deliberately. Filed under a document type. Given a description. Tagged with the aims it serves. Indexed so it could be found by meaning, not just by filename. When the prompt arrived, the system ran a semantic search, identified what was relevant, assembled the pieces, and produced the output.

The AI doesn’t know croquet. The system holds croquet knowledge. Those are not the same thing. And the difference is entirely in how the knowledge was stored.


Every note filed is a future answer to a question nobody’s asked yet. If you’re building something similar and want to talk through the architecture, the contact link is at the top.