Better Method.ai
Module 05

Maps and loops

Search finds similar text. A map records how named things connect. CME questions are often the second kind, and a checking loop is how you use either without handing the file over.

You do not need new software for this. You need a way to tell two kinds of question apart.

Some questions live in a paragraph you already wrote: what was the gap for Thursday’s grand rounds? Search finds that.

Some questions live in how named things connect: which faculty still need mitigation before they control content? Folders and a spreadsheet already hold that map. Passage search will not reliably notice a missing row.

You will hear that graphs beat RAG. For a lot of CME work, that is half right. Here is the split in Tuesday words.

RAG (retrieval-augmented generation) is retrieve-then-write. The system finds material and hands it to the model before the model answers. In most products you will meet, that material is passages that sound like your question. That is a good match when you need a clause from a policy, a paragraph from last year’s report, or the wording of an objective you already approved.

A map (what engineers call a graph) records named things and how they connect: this faculty member, this ineligible company, this activity, this mitigation, this Moore’s level. Those connections are stored so you can follow them, not hoped for from similar wording.

Graph methods that retrieve from a map are still a form of RAG. The useful split is what gets retrieved: similar passages, or named connections. Those are different jobs. The activity file is a set of those connections. Neither retrieval style makes the output true. A loop is how you use them: retrieve or follow a connection, draft, check against the source, revise, stop. A named person stays author of record.

When the map is better

Ask whether the answer lives in a passage, or in a join.

QuestionWhat actually answers it
What did we write as the gap for Thursday’s grand rounds?Search. Find the paragraph.
Which faculty teach on both the cardiology RSS and the diabetes enduring module, and does either activity have a relevant relationship without completed mitigation?A map. Names, roles, dates, and status have to connect.
Quote the learner-disclosure sentence we used last cycle.Search.
Which activities targeted Moore level 5 (performance) and only collected satisfaction scores (level 2)?A map. Targeted level and measured level are different fields.
Which people with an upcoming content-control role lack documented financial relationships covering the 24 months before they are involved?A map, plus dates. Absence is the point. Passage search will not reliably notice a missing record.

Comparisons of graph methods with ordinary document search find a split, not a knockout. Graph methods tend to help when the question needs several connected facts, or a view across a whole set of files. Ordinary passage search often wins when you just need a clause, a date, or a quotation. Graph methods also cost more to build, go stale, and can invent relationships that were never in the files. GraphRAG is still retrieval: the map chooses what the model sees. It does not replace checking. These are research findings on document collections, not a study of CME offices.

Your office is already a graph

You do not need new vocabulary for this. You already keep it, usually as folders and a spreadsheet with names copied from row to row.

Things (nodes). Activity or RSS session. Person. Role (planner, faculty, reviewer). Disclosure. Financial relationship. Ineligible company. Practice gap. Objective. Outcome measure. PARS record. Commercial support. Jointly provided nonaccredited entity.

Connections (edges). Activity addresses a gap. Objective targets a Moore level. Person has a role on an activity. Role may control content. Person submitted a disclosure. Disclosure declares a relationship with a company. That relationship is assessed for relevance to the content the person can control. If relevant, it has a mitigation before the role begins. Evaluation uses a measure. Measure maps to a Moore level. PARS record reports the activity.

A few rules that keep the map honest:

  • Faculty and planner are roles, not always different people.
  • A disclosure is not the same as a financial relationship. One form can declare several, or none.
  • Relevance is based on the content the person can control in that role. The same consulting relationship can be relevant to a device session and irrelevant to a communication skills workshop.
  • Mitigation attaches to the relevant relationship and the role. “Disclosure received” is not “mitigation complete.”
  • Commercial support (money or in-kind help from an ineligible company toward the accredited activity) is not a faculty financial relationship.
  • The map is an index. The activity file stays the evidence.

If you want the official names for the independence half, they are in the ACCME guidebook and in Standard 3.

A loop is how you use either one

A single prompt is one shot: you ask, it answers. A loop uses the result of one step to decide the next, until a stop rule or a person.

The useful loop for this office is short and inspectable:

  1. Retrieve or traverse. Search the files, or follow the connections in the table you supplied.
  2. Draft only from that. No extra facts, figures, or relationships.
  3. Check. Every material claim gets a source: a filename, a row ID, a quoted line. Missing stays missing.
  4. Revise once or twice. Then stop. Two or three focused revisions get most of what is available, as fix the draft, don’t start over already says.
  5. A named person reviews. For fixed AI-generated materials that reach learners, ACCME’s January 2026 guidance says the provider must ensure named, qualified people review and approve before dissemination. Record who reviewed what and when. The disclosure log is one way to show that. It is not an ACCME form.

Stop conditions worth writing down:

  • Maximum two revision rounds.
  • Stop sooner when every material claim has a row ID or a quoted source.
  • “Not in the table” stays “not in the table.” The model does not fill the gap from memory.
  • Unresolved conflicts go to the named reviewer, not into another round of prompting.

You can run that loop by hand in one approved chat. You do not need an “agent” product. Vendor features named agent, Work, or Copilot agent change, and the label does not guarantee an autonomous loop. Describe the sequence, the sources, the stop, and who reviews.

Do not point a loop at learners. ACCME’s April 2026 alert: if accredited CE includes AI-facilitated interactions, the provider is solely responsible for the learner-facing content. If you cannot validate, monitor, and name a clinician or other qualified professional who can stop it, do not offer the interaction. Staff drafting from your own files is a different job.

How to do this without a graph database

Three levels. Most offices should stay at the first two.

1. A one-page map and a workbook with IDs. Circle the six records that cause the most Tuesday work: activity or session, person-role, disclosure and relationship, relevance and mitigation, objective and measure, PARS record. Mark which system or folder is authoritative for each. Then a workbook with separate tabs, IDs such as ACT-2026-041 and PER-0087, and links by ID rather than by copied names. Add an evidence column that points at the controlled file.

Do not flatten faculty, companies, objectives, and sessions into one giant activity row. Repeating things need their own rows.

2. Give the table to an approved tool. Put the sanitized workbook (and only that) into a Copilot notebook, a ChatGPT project, or a Claude project your organization has approved. Instruct it to answer from the rows, return the supporting IDs, and treat missing as missing.

Prompt: copy and adapt
Work only from the relationship table I pasted. Do not add people, companies, activities, relationships, or dates that are not in a row.

Treat missing mitigation as "not documented," not as "unmitigated," unless a relevance row says mitigation was required.

For every answer:
1. State the finding in one or two sentences.
2. List the row IDs that support it.
3. List any question you could not answer because a row is missing. Write [NEEDS: what's missing] instead of filling the gap.
4. Do not estimate counts. Count the matching rows and show the IDs.

Question: [paste the connection question]

That is the whole method. Treat the model as an analyst over the table you maintain. You still check the IDs. Instructing it not to invent rows is a briefing, not a guarantee.

3. A real graph stack, if IT owns it. Extract entities from approved documents, store a graph, retrieve by traversal and by search, generate with citations to the original files, and run scheduled updates. That is a software project with a schema, entity resolution, and a quality sample. It is not a coordinator task, and “upload the shared drive to GraphRAG” is usually the wrong next step: PDFs rarely have stable IDs, names drift, disclosure status is dated and activity-specific, and automated extraction can invent a relationship or collapse commercial support with a personal financial relationship.

Start with the five questions you actually ask every month. Technology can follow demonstrated need.

What still goes wrong

Invented connections. Extraction (or a helpful model) will merge two people with similar names, reverse a relationship, or treat proximity in a PDF as causation. Every consequential edge needs a source and a reviewer.

Stale maps. Faculty, roles, commercial relationships, and mitigation status change. Keep the history. End-date or supersede old records, mark which row is current, and keep the link to the source file.

Privacy. Do not dump raw disclosure forms, identifiable eval comments, or unpublished faculty slides into an unapproved graph tool. ACCME’s AI guidance: sensitive and proprietary work belongs on institution-approved platforms; identifiers should be avoided or stripped. See the guardrails.

Fluent retrieval of the wrong row. Graphs change what is retrieved. The generator can still misread it, ignore a date, or overstate a Moore’s level. Run the number audit.

Learner-facing loops. A checking loop on your activity table is staff work. An unsupervised tutor inside an accredited module is a different, higher-risk system. Default that to no unless your office can meet the April 2026 bar.

Try this

Take eight activities or RSS sessions from the last quarter. Build one small table with these columns only: activity ID, title, faculty person ID, role, disclosure date, relevant relationship (yes / no / none declared), mitigation complete (yes / no / not required), targeted Moore level, measured Moore level.

Then ask two questions of an approved tool, with the table attached and the prompt above.

  1. Passage question: “Quote the gap statement for ACT-____.” (Paste the gap next to the table if it is not in a cell.)
  2. Connection question: “Which rows have a relevant relationship and mitigation not complete? Which rows targeted performance and measured only satisfaction?”

The second answer is the one search-from-PDFs can miss. If the table is wrong, the answer will be wrong in a way you can see, which is the point. Fix the row, not the prompt.

If you do not already keep files the table can point at, start with working from your own documents. The map is what those files are for, once you have them.