Kickstart today.
Where the data lives.
Contents
- 1At a glance — the four places, in one screen
- 2The picture — how the parts connect
- 3Where each kind of data lives — the main table
- 4A plan's trip through Kickstart — step by step, and what each step touches
- 5Cloudflare KV: saved plan work
- 6Airtable: the plan record
- 7Box: source files
- 8Cloudflare D1: Form 5500 lookup
- 9The browser
- 10The services — each Cloudflare Worker and its routes
- 11What is not used
- 12Before moving it
- 13Open questions
- 14How this was checked
- 15Glossary
1At a glance
Kickstart's data sits in four places. Kickstart itself is a single web page that holds nothing; it reaches each place through a small service.
Everything a staff member has loaded and done for a plan, including census detail. One saved file per save. Section 5
The plan directory, plan-year tracking, the team roster and alerts. No participant data. Section 6
Adoption agreements, census files and recordkeeper downloads. Kickstart is not connected to it. Section 7
Files are read and checked in the browser tab. Gone when the tab closes unless saved. Section 9
Is Cloudflare used? Yes: the page, the services, and the saves. Is D1 used? Not for plan data. D1 only holds public Form 5500 filings that Kickstart looks up. Is Box used? For keeping files, yes. Kickstart does not read from it or write to it.
2The picture
Solid arrows are connections Kickstart makes. The dashed arrow is a person carrying a file by hand.
3Where each kind of data lives
This is the table to start from. Each row links to the section with the detail.
| Data | Where it lives | How it gets there | Good to know |
|---|---|---|---|
| Saved plan work: current and prior census, recordkeeper balances, questionnaire answers, adoption agreement fields, corrections, screen state | Cloudflare KV, namespace kickstart-save. One file per save. Section 5 | A staff member saves in Kickstart, or Kickstart saves once when validation passes. | Holds names, SSNs and pay. Each save expires after 90 days. |
| Plan directory and plan-year tracking | Airtable, PDC base. Section 6 | Kept up outside Kickstart. Kickstart only reads it. | Plan-level only. Used to show the plan banner, never as an input to a filing. |
| Team roster and alerts (the bell) | Airtable, PDC base: PDC Team and Alerts tables. | Kickstart reads the roster, and reads and writes alerts. | The one place Kickstart writes to Airtable. |
| Source files: adoption agreements, census files, recordkeeper downloads, samples | Box, Kickstart folder. Section 7 | Put there by people. | Kickstart is not connected to Box. Airtable stores each plan's Box folder link. |
| Prior-year Form 5500 figures | Cloudflare D1, Form 5500 database. Section 8 | Loaded from the public DOL data set. | Public data. Read-only. |
| Files being worked on right now | The browser tab, in memory. Section 9 | Read in the browser when a file is chosen. | Gone when the tab closes unless saved. The adoption agreement PDF is the exception: it is sent out to be read by an AI model. |
| Small conveniences: contacts, metrics, validation and questionnaire drafts | The browser's local storage, on that one computer. | Written by Kickstart as the person works. | Not shared between computers. |
4A plan's trip through Kickstart
Following one plan from start to finish shows which store each step touches.
- Find the plan.The staff member searches by plan name, sponsor or EIN. Kickstart shows a banner with the plan's basics.
Reads Airtable through kickstart-directory - Load the files.They choose the adoption agreement, the questionnaire, the prior-year census, the current-year census and the recordkeeper download from their computer. The files usually come out of the plan's Box folder first.
Browser only - Read the adoption agreement.The PDF is sent to a service that has an AI model pull out the plan provisions.
Leaves the browser: adoptk-vision, then an AI model - Look up last year's 5500.Kickstart fetches the prior-year filing figures for the plan's EIN.
Reads D1 through form5500-lookup - Confirm, validate and correct.Kickstart checks the census, ties it to the recordkeeper balances, and the staff member fixes what needs fixing.
Browser only - Save.The whole working state is written as one saved file. Kickstart also saves once on its own when validation passes.
Writes KV through kickstart-save - Come back later.Opening a save loads that file back into the browser and puts the person where they left off.
Reads KV through kickstart-save - Send a note to a teammate.The bell sends a task or note to another team member.
Writes Airtable through kickstart-alerts - Produce the outputs.The 5500 figures, the 8955-SSA list, the force-out list, the RMD list and the ASC export are built in the browser and downloaded to the person's computer.
Browser only
5Cloudflare KV: saved plan work
KV is a simple store: a name goes in with a value, and the same name gets the value back. Kickstart uses it to keep each save as one file.
How a save is stored
| Namespace | kickstart-save (ID 873021be02b44ccda64295aaa9150580) |
| Name of each save | EIN_year_timestamp, for example 832677397_2025_…. A second copy named EIN_year_latest always points at the newest save for that plan and year. |
| What is stored | A wrapper (name, label, when it was saved, app version, plan name, plan year, EIN, size) around the full working state. |
| How long it is kept | 90 days from the save. After that Cloudflare deletes it. |
| How many there are | 55 saves across 13 plans on Nov 14, 2026. |
What is inside a save
| Group | What it holds | Participant detail? |
|---|---|---|
| Questionnaire | The PRQ answers and the file name. | No |
| Prior-year census | Every row and column of the file, plus the row count and file name. | Yes |
| Current-year census | Every row and column, the raw file text, the column mapping, the row count and file name. | Yes |
| Recordkeeper balances | One line per participant with balances and money types, plus plan totals. | Yes |
| Adoption agreement | The fields pulled from the document and the plan's eligibility rules. | No |
| Validation | The result and whether it passed. | Yes (findings name people) |
| Staff decisions | Data corrections, ownership and family groups, name links, eligibility overrides, 8955-SSA confirmations. | Yes |
| Housekeeping | App version, build date, plan year, contacts, which screen the person was on. | No |
This is the only place in the setup that holds SSNs and pay at rest. It is also the only copy of the staff member's corrections and decisions. Because saves expire after 90 days, none of it is permanent.
6Airtable: the plan record
One Airtable base, the PDC base (ID appRcNScOvJoSppiS), holds everything about plans that is not participant data. It has 14 tables.
| Table | What it is | Fields | Used by Kickstart? |
|---|---|---|---|
| PDC Plans | One row per plan: plan and sponsor name, EIN, last filed 5500 figures, recordkeeper, Box folder link. | 66 | Read (search and banner) |
| Plan Years | One row per plan per year: which documents are in, counts, eligibility provisions, prior questionnaire answers, recordkeeper and contract number, save key. | 81 | Read (banner) |
| Recordkeepers | Recordkeeper names and file format. | 4 | Read |
| PDC Team | Staff names, emails, titles and roles. | 16 | Read (sign-in picker, contact) |
| Alerts | Notes and tasks sent between staff from the bell. | 12 | Read and write |
| PDC Clients | The client list: client ID, plan type, safe harbor, investment company, EINs from ASC and the CRM. | 26 | No |
| PRQ Responses | Questionnaire submissions. | 77 | No |
| Adoption Agreements (ASC) | Plan provisions as held in ASC. | 156 | No |
| PDC Advisors | Advisor contacts. | 11 | No |
| Workflow Templates, Template Tasks, Projects, Project Tasks | Task tracking for staff workflows. | 8, 6, 12, 18 | No |
| Edit Log | A record of changes made to the base. | 14 | No |
"Used by Kickstart" means the Kickstart page reaches that table through one of its services. The PDC Portal, a separate page, reads and writes this same base.
What Kickstart reads from Airtable is for orientation only. Anything that lands on a filing comes from the adoption agreement, the questionnaire or the census, never from the directory.
Table IDs
| PDC Plans | tblclk0N1hsNoS2NP | Plan Years | tbl4uEAFEflu4aWzc |
| Recordkeepers | tblk84ioovMtLVIEI | PDC Team | tblF40egZen0IqgUd |
| Alerts | tblvm8RhebZqPpynL | PDC Clients | tbl3RD5LokskH6UsA |
| PRQ Responses | tblgE2x0XcOKHRbS5 | Adoption Agreements (ASC) | tblwyI3boGn3JtEmp |
| PDC Advisors | tblaAJpik8yTdul3X | Edit Log | tblkkBpolFL3LWBUi |
| Projects | tbl0rGFOUbmfetYss | Project Tasks | tblwCsTCvJi9FbxvL |
| Workflow Templates | tbleWyL0Qoesounpr | Template Tasks | tblE1lEvXxjES6745 |
7Box: source files
Box is where the original files are kept. Kickstart has no connection to it: nothing in the Kickstart page calls Box.
| Folder | What is in it |
|---|---|
| Kickstart (top folder) | Sample and test files: the Anello Photonics test set, recordkeeper sample files, a few plan zip files. |
| Kickstart / Plan Files | 66 plan folders. |
| Kickstart / RK File Schemas | Two write-ups of the John Hancock file layout. |
| Kickstart / Rule Specs | Not opened for this document. |
| Kickstart / kfor1-submissions, STable(k) | Folders for other projects. Not opened for this document. |
The link between a plan and its Box folder is a field in Airtable (PDC Plans has a Box folder link; Plan Years has one for the year).
Back to top8Cloudflare D1: Form 5500 lookup
D1 is Cloudflare's database (tables and rows, queried with SQL). Kickstart uses it for one thing: looking up a plan's prior-year Form 5500 figures.
| What it holds | Public Form 5500 filings from the DOL, in a table named sf_filings. |
| What Kickstart asks for | By EIN (and optionally year and plan number): participant counts, account balance counts, assets at the start and end of the year, employer and employee contributions, distributions, bond amount, plan codes. |
| Direction | Read-only. Kickstart never writes to it. |
| Databases in the account | form5500 and form5500_v2. Which of the two the lookup service is connected to was not confirmed. |
9The browser
Most of Kickstart's work happens in the staff member's browser tab and goes nowhere else.
- In memory. The files a person loads are read and checked in the tab. Closing the tab without saving loses them.
- Local storage. A few small items are kept on that computer between visits: contacts, metrics, validation state and questionnaire drafts, each stored per plan.
- What leaves the browser. A save (to KV), a plan search term (to Airtable), an EIN (to the 5500 lookup), an alert (to Airtable), and the adoption agreement PDF (to an AI model).
10The services
Kickstart is one HTML file on Cloudflare Pages at kickstart-ci1.pages.dev. Each thing it stores or looks up goes through a Cloudflare Worker. All of them are in Tony's Cloudflare account, at addresses ending .tony-e07.workers.dev.
| Service | What it does | What it offers | What it touches |
|---|---|---|---|
| kickstart-save | Keeps and returns saves. | Save, load one save, list saves, delete a save, health check. | KV namespace kickstart-save. Nothing else. |
| kickstart-directory | Finds plans and returns one plan with its plan years. | Search plans, get one plan, health check. | Airtable, read-only: PDC Plans, Plan Years, Recordkeepers, PDC Team. |
| kickstart-alerts | Runs the bell. | List the team, list alerts, create an alert, mark an alert read or done. | Airtable, read and write: PDC Team, Alerts. |
| form5500-lookup | Returns prior-year 5500 figures. | One lookup by EIN. | D1 Form 5500 database, read-only. |
| adoptk-vision | Reads the adoption agreement PDF. | Not re-read for this document. | Sends the PDF to an AI model. |
| parsek-api, chatk-api, carl-api-proxy | Text extraction and the Ask (k)arl chat. | Not read for this document. | Not confirmed. |
The save, directory and alerts services check only that a request carries a particular header. They do not check who is asking. That was acceptable for an internal tool. It is not enough for anything a client can reach.
11What is not used
- D1 for plan data. No Kickstart plan, census or questionnaire data is in D1. A database named
pdc-prqexists in the account, but it is empty: it has no tables. - R2 file storage. The account has two R2 buckets and neither belongs to Kickstart.
- Box from inside Kickstart. Box is where files are kept, but Kickstart does not read or write it.
12Before moving it
Seven things that shape any decision about where this goes next.
| What | Why it matters |
|---|---|
| Saves expire after 90 days | A plan nobody re-saves disappears from KV. Anything that should be kept needs a permanent home. |
| A save is one file, not rows | Nothing can look across plans (for example, every participant at one recordkeeper) without opening each save in turn. |
| Participant detail sits in KV | It is the only store here holding SSNs and pay. Wherever it goes next needs to be chosen for that. |
| Access checks are light | The services check for a header, not a person. This has to change before clients are let in. |
| Everything is in Tony's Cloudflare account | The page, the services, the KV namespace and the Form 5500 database either move together or are rebuilt on the PDC side. |
| Airtable's save key can lag | Plan Years has a field pointing at a save, but KV is the true list of saves. |
| A newer build is waiting | Live Kickstart is v74.8. Version 75.0, which adds the recordkeeper file readers, is built and tested but not deployed. |
13Open questions
For the CRM version. These are decisions, not findings.
- Where should participant detail live long-term: rows in a database, or saved files as today?
- Does the CRM replace Airtable as the plan record, or sit beside it?
- Do source files stay in Box, or move to Cloudflare as roadmap item 5.9 describes?
- Which Cloudflare account owns the services going forward?
14How this was checked
Everything above was checked against the live systems on November 15, 2026, not written from memory.
- The deployed source of
kickstart-save,kickstart-directory,kickstart-alertsandform5500-lookup. - The list of KV namespaces, D1 databases and R2 buckets in the Cloudflare account.
- The table list of the Airtable PDC base.
- The contents of the Box Kickstart folder.
- Every outside address the Kickstart page calls, and what it puts into a save (v74.8 and v75.0).
adoptk-visionwas changed on Nov 15 and was not re-read. In August it sent the PDF to an AI provider and stored nothing.parsek-api,chatk-apiandcarl-api-proxywere not read.- What writes the save key fields on Plan Years.
- Which Form 5500 database the lookup is connected to.
- Record counts in Airtable. Two of the 66 Box plan folders were opened, and both were empty.
15Glossary
| Cloudflare Pages | Where a web page is hosted. Kickstart is one file on Pages. |
| Worker | A small program running on Cloudflare that a web page can call. Each Kickstart service is one Worker. |
| KV | Cloudflare's simple store: a name and a value. Good for whole files, not for searching. |
| D1 | Cloudflare's database, with tables and rows that can be searched. |
| R2 | Cloudflare's file storage. Not used by Kickstart. |
| Airtable base | A set of linked tables in Airtable. The PDC base is the one described here. |
| Save | One stored copy of everything loaded and done for a plan year in Kickstart. |
| PRQ | The annual plan questionnaire the client fills in. |
| ASC | The plan administration system PDC uses today. |