Form MMC-3 · Content audit
Fixed at deploy · No patient data
Anatomy of the generator
The Monday Morning Clinic is a satirical generator that turns a bad work week into a mock medical discharge note. This page is its audit: 150 pieces of genuine advice, a 27-digit address space, and every figure below counted from the writing itself.
Summary of findings
The generator’s totals, smallest first. The largest counts addresses, not jokes.
- Treatments written
- 150
- Distinct suggestions in the prescription pool. Three are drawn per visit.
- Diagnosis names
- 16,384
- 32 modifiers by 32 complaint roots by 16 qualifiers. A first visit can reach 2,048 of them.
- Ordered prescriptions at severity 10
- 3,307,800
- Three treatments drawn from the 150 eligible at the top of the scale, in the order the note prints them. Ignore the order and it is 551,300.
- Distinct discharge notes
- 6.06 x 10 to the power of 15
- Every document printable with no checkboxes ticked: complaint by onset by severity by recurrence by modifier by qualifier by course by exacerbation by ordered prescription by follow-up by practitioner. A lower bound.
- Addressable records
- 3.87 x 10 to the power of 26
- Share codes the intake can express, a 27-digit number, each a permanent URL. 63,823,203,110 of them per distinct note.
What a count can mean
Three ways to count a generator: pool, wording, address.
- Pool size
- What a field can draw from. The only figure here that rises by writing more.
- Reachable wordings
- What the engine will actually show, after the triage band has restricted a name’s modifiers and severity has withheld the heavier treatments.
- Address space
- What the codec can express. Mostly not variety: 63 of its bits are the two checkbox masks, and ticking a box retargets a prescription rather than adding a wording that did not exist.
A name is a modifier, a complaint root and a qualifier, so the pools multiply. The gating is the interesting part: clinical baggage is reserved for a condition you have admitted to having before, and a first visit is allowed two of the 16 qualifiers.
- Diagnosis names, first occurrence
- 2,048
- Diagnosis names, recurrent
- 15,360
- Diagnosis names, distinct overall
- 16,384
- Prescriptions at severity 1, ordered
- 1,815,726
- Signature blocks (19 practitioners, 16 follow-ups)
- 304
- Distinct visible notes, no boxes ticked
- 6.06 x 10 to the power of 15
The last line is summed across the severities and recurrences, because each changes what the fields below it may draw from. It is a lower bound: holding both checkbox fields at zero drops the comorbidity lines and the tag weighting that aims the prescription.
Register of pools
The content pools: what has actually been written.
Every alternative the Monday Morning Clinic can reach for. Four are index-encoded into the share link, so their capacity is fixed: a pool can be appended to, never widened, or every link ever shared decodes to the wrong thing.
| Field | Entries | How it is reached |
|---|---|---|
| Chief complaints | 32 / 32 | Index-encoded, append only |
| Aggravating factors | 32 / 32 | Bitmask, append only |
| Onsets | 8 / 8 | Index-encoded, append only |
| Recurrences | 4 / 4 | Index-encoded, append only |
| Severity levels | 10 | Fixed at 10 by design |
| Diagnosis modifiers | 32 | 8 plus 8 plus 8 plus 8 by triage band |
| Diagnosis qualifiers | 16 | Seeded draw, reorderable |
| Treatments | 150 | Seeded draw, weighted, reorderable |
| Practitioners | 19 | Seeded draw, reorderable |
| Follow-up lines | 16 | Seeded draw, reorderable |
4 of the 10 fields are at capacity: chief complaints, aggravating factors, onsets, recurrences. The aggravating factors split 17 at work and 15 outside work.
Eligibility by severity
Severity gating: the scale withholds the heavier advice.
27 of the clinic’s 150 treatments carry a minimum severity. Telling somebody who rated their week a 2 to work out what a month of their life is worth in money does not land, and telling somebody who rated it a 10 to open a window is not an answer.
- 1 · Fine, honestly
- 123 of 150
- 2 · A faint hum
- 123 of 150
- 3 · Noticeable
- 123 of 150
- 4 · Persistent
- 125 of 150
- 5 · Intrusive
- 137 of 150
- 6 · It is affecting the weekend
- 144 of 150
- 7 · I am not sleeping properly
- 148 of 150
- 8 · I think about it constantly
- 150 of 150
- 9 · I have started looking
- 150 of 150
- 10 · I do not know how much longer I can do this
- 150 of 150
Bars run from zero to the full pool of 150, so the climb looks as small as it is. The rating is the patient’s own and the site never overrules it.
Where the content is thin
Thin coverage: the numbers an audit is supposed to bury.
A treatment can be tagged to the factors it answers, and a tagged match heavily outweighs base weight. A factor with only one tailored treatment is worse than a factor with none: the box visibly does something, does the same thing every visit, and the reader correctly concludes the site is not listening. Hence the floor of 3.
- Tailored treatments per factor, mean
- 4.9
- Tailored treatments per factor, range
- 3 to 12
- Factors sitting exactly on the floor of 3
- 7 of 32
- Treatments tagged to nothing, drawn for any intake
- 35 of 150
These 7 factors are next in line for a fourth tailored treatment:
- Camera-on policy
- Open-plan noise
- Sunday admin
- The family group chat
- Something in the flat that needs fixing
- Nothing in the fridge
- The clocks changed
The consented corpus
Contributed notes: the only numbers here that came from people.
- Notes contributed
- 1
- Publishing threshold
- 30
Too few to divide. A distribution over one contributionwould be one person’s Monday presented as a finding, so nothing is derived until there are 30. The count is real and is the only thing claimed.
No figure in the sections above describes a visitor: they count the writing that ships with the site, so every reader sees the same numbers. Nothing else is collected and nothing else is planned. No intake log, no account, no visit counts, no share counts, and no analytics that can see an answer, because a diagnosis is computed from the code in the URL and opening a note increments nothing.
Method and provenance
Where every figure comes from, and how to check it.
- Source of every figure
- lib/stats.ts
- Counted from
- lib/content/
- Counted at
- Deploy, from the compiled content
- Independent implementation
- scripts/report-content.mjs
- Single-choice intake states
- 10,240
- Aggravating-factor subsets
- 4.29 x 10 to the power of 9
- Comorbidity subsets
- 2.15 x 10 to the power of 9
- Free-text fingerprints
- 4,096
- Addressable records, in full
- 386,856,262,276,681,335,905,976,320
No figure here is transcribed, so none can go stale: editing a pool changes this page on the next build. A second and older implementation of the same arithmetic lives in the report script, and the two agreeing is the check that neither has drifted.
If you would rather read the output than the census, here is a specimen Monday Morning Clinic discharge note, assembled on this page from a mid-scale intake and produced by no visitor. Or state your own symptoms: ninety seconds, and it adds to nothing above unless you press the button at the foot of your note, which asks first.