1. Toggleable one- or two-stage model
Every record starts from the same first stage. What happens after
depends on the stage_mode you choose on the
generator page:
- Malignancy probability — whether this diagnostic workup's
finding is malignant or benign is table-rated, the same
technique life's/health-claims'/property's/susu's own
core-anchor-plus-loadings tables use. A patient-age-band base
malignancy yield is the anchor; family history, age at menarche,
parity, menopausal status combined with obesity, breast density,
mass margin, and tumor size each apply a multiplicative loading on
top, with region a further, decorative loading. This logic is
identical in both stage modes and is computed before
stage_modeis even consulted — single-stage's entire output, and stage one of two-stage. - Stage at diagnosis (two-stage only, computed only where a finding is malignant) — an I/II/III/IV severity measure modeled as a continuous latent score (an intercept plus a weighted sum of tumor size, detection pathway, receptor status, histologic grade, and a mild age effect, plus noise) which is then bucketed into stage categories, the same "continuous score, then bucket" technique this line's own banded-lookup helper uses for its table lookups, applied once more here to produce an ordinal category instead of a numeric loading.
Single-stage is the classic diagnostic-classification shape — the
Wisconsin Diagnostic Breast Cancer dataset's own shape,
malignant-vs-benign only, no staging fields at all.
Two-stage is the default — same "default the richer shape,
allow opting down" reasoning the include-names toggle uses on every other
line — and additionally reports
detection_mode, histologic_grade, receptor_status, and stage_at_diagnosis for malignant rows (benign rows carry empty strings for all four, the
same "always present on the wire, empty-when-not-applicable" convention
property's claim_category/susu's
default_date already use). Whichever mode you
pick is recorded in the dataset's manifest and citation — two downloads
of this line in different modes are, citation-wise, two different datasets,
since a single-stage download simply has no staging columns at all.
Unlike every other line, this one carries no name field at all — a diagnostic workup record has no natural person-name analogue the way a policyholder or susu-group member does, so there's no include-names toggle to speak of here.
2. The four hypotheses
Two hypotheses drive malignancy probability and hold in both stage modes, since stage-one logic doesn't change based on the toggle; the other two are stage-at-diagnosis hypotheses that only exist, and are only verified, in two-stage mode, scoped to malignant records — property's/susu's own conditional-on-occurred technique for a second-stage hypothesis. Tracked separately below rather than in one undifferentiated table, since which mode a factor actually applies in is the thing a reader needs disambiguated.
| Factor | Stage | Direction | Rationale encoded |
|---|---|---|---|
| Patient age | Malignancy probability both modes | Positive | The single most robust, most consistently replicated breast-cancer risk factor in the epidemiological literature — every population-level study agrees on the direction even where absolute rates differ, which is why it carries the base-rate anchor itself rather than a loading on top of one. |
| Family history (first-degree relative) | Malignancy probability both modes | Positive | A first-degree relative's history roughly doubles risk in pooled hormonal-factors literature — the second core hypothesis, and the largest single loading in the malignancy table after mass margin. |
| Tumor size at diagnosis | Stage severity two-stage only | Positive | Directly underlies the T-component of AJCC TNM staging — a
larger tumor is mechanically closer to a higher T-stage by the
staging system's own definition, not just correlated with one,
the more mechanistic of the two stage-severity hypotheses.
Reuses the same tumor_size_mm draw already
used as a malignancy-probability loading — one field, two roles, susu's
loan-purpose/property's property-type reuse pattern. |
| Detection pathway (symptomatic vs. screening-detected) | Stage severity two-stage only | Positive (symptomatic) | Screening exists specifically to catch disease before symptoms appear, so symptomatic (self-presented) cases are, by construction, diagnosed further along their natural history than screening-detected ones. This line's heavy symptomatic skew is also what actually drives its stage distribution toward III/IV — Ghana's low mammographic-screening uptake and Sub-Saharan Africa's well-documented pattern of late, symptomatic presentation (Vanderpuye et al., "Breast cancer management in sub-Saharan Africa", 2017), not a population-level severity assumption bolted on separately. |
All four hypotheses are verified at n=5,000, the same default motor, health-claims, and property already use — checked empirically per those lines' own precedent of not assuming n=5,000 holds without checking. Both malignancy-side directions held comfortably across every regression seed (age correlation never dropping below roughly 0.20, the weaker of the two); both stage-severity directions held too, with the weaker of the two (tumor size vs. stage rank) never dropping below roughly 0.35, and the malignant-only subset comfortably over 2,000 rows per seed at this n — nothing here needed momo's larger n=20,000.
3. Coefficients
Malignancy probability is modeled as
p = clip(base_rate(age_band) · family_history_loading ·
menarche_loading · parity_loading · postmenopausal_obesity_loading ·
breast_density_loading · mass_margin_loading · tumor_size_loading ·
region_loading, min_probability, max_probability), where base_rate(age_band) is the age-band base-malignancy-yield
table lookup and every other term is a named multiplicative loading — postmenopausal
obesity's loading applies only when menopausal status is post and BMI is
at or above a threshold (a gate, not a small effect, the same technique
momo's cash-out gate uses for its own conditional loading). A finding is
then drawn as malignant or benign from that probability. When the mode is
two-stage, stage at diagnosis (for malignant findings only) is modeled as
a continuous latent score,
score = intercept + tumor_size_coef · tumor_size_mm +
detection_mode_loading + receptor_status_loading +
histologic_grade_loading + age_over_50_coef · max(patient_age - 50,
0) + ε, then bucketed into stage I/II/III/IV via ascending score cutoffs
tuned so the detection-pathway skew above pushes the resulting
distribution toward stage II/III, consistent with the
late-presentation literature this line models. These coefficients are
illustrative, anchored against general breast-cancer epidemiology
literature (SEER Cancer Statistics; the Collaborative Group on
Hormonal Factors in Breast Cancer's pooled reanalyses; the BI-RADS
lexicon for mass-margin risk; Vanderpuye et al. 2017 and Jiagge et al.
2016 for the Sub-Saharan-Africa-specific detection and
receptor-subtype patterns), not derived from any real patient cohort's
own data. Exact magnitudes aren't published on this page — see the
current defaults, and change them, in the
Advanced: customize the model panel on the
Breast Cancer generator if your thesis calls for weaker or stronger effects, and note in your
write-up which values you changed from the defaults. The score-to-stage
bucketing cutoffs themselves aren't exposed as editable fields — only the
score contributions feeding into them are.
4. Determinism
Generation runs server-side using a seeded generator (numpy's
default_rng, PCG64) rather than an unseeded
source of randomness — same mechanism as every other line on the
platform. The same seed, record count, stage mode, generator version,
and any advanced-config changes (all stamped in every citation and
manifest — see the Cite section on the generator page) will always
reproduce byte-identical output. Report the seed, record count, and
stage mode alongside your dataset — that combination, together with
the generator version, is sufficient for anyone to regenerate exactly
what you analyzed.
5. What's decorative vs. load-bearing
Region, age at menarche, parity, menopausal status/obesity, breast density, mass margin, and — on the stage side — receptor status, histologic grade, and the mild age-over-50 effect exist to make records look like real diagnostic workups and are internally consistent with each other, but they are not the object of the four hypotheses above. Tumor size is the one field that plays a load-bearing role on both sides at once — a malignancy-probability loading and, unchanged, one of the two core stage-severity hypotheses — rather than being load-bearing on one side and decorative on the other. This line has no name field of any kind (subtask 0's decision — see section 1), so unlike every other line there is no name-inclusion toggle to gate.
6. Known limitations
- This is synthetic data. It should never be presented as, or mistaken for, real patient or clinical data in a publication.
- Malignancy probability is table-rated with multiplicative loadings, not a from-scratch regression — no interaction effects between family history, menarche, parity, density, mass margin, and tumor size are modeled beyond simple multiplication, unless you add them yourself downstream.
- The age-band malignancy-yield anchor represents a biopsy-cohort malignancy yield (roughly 10–50%, conditional on a workup already having been triggered) — the same conditioning the reference Wisconsin Diagnostic Breast Cancer dataset uses — not a general-population incidence rate, which would be under 1% at every age band. Don't read this dataset's malignancy rate as a population incidence figure.
- Stage at diagnosis, receptor status, histologic grade, and detection pathway are only present in two-stage mode and only for malignant records — a single-stage download or a benign record simply has no severity information, by design, not by omission.
- This line reports stage at diagnosis, not an outcome or mortality field — late stage at diagnosis is the closest proxy this shape carries for the region's well-documented mortality-to-incidence pattern, not a direct model of it.
- If your thesis needs a different balance between the four hypotheses, adjust the relevant loadings in the Advanced: customize the model panel on the Breast Cancer generator and say so in your write-up.
7. Citing this tool
Something like: "Synthetic data generated using Dataset Foundry (seed = 42, n = 5,000, stage mode = two-stage), a deterministic Breast Cancer diagnostic data generator built for this thesis in the absence of accessible real-world clinical data." Include the seed, record count, and stage mode so the exact dataset is reproducible from the tool alone — or use the auto-generated citation block on the generator page, which also includes the generator version, stage mode, and any advanced-config changes.