TDG Clinical System · v2

Total Toxin Load Analyzer

Chemical sensitivity · Environmental burden · Internal detox capacity · Cosmetics load · Lab data integration

Test, Don't Guess · Stephen Duncan Nutrition · Edinburgh
DOB
Total Toxic Load
/100
Sensitivity Index
/100
Detox Capacity
/100
Compensation
HRT Readiness
/10

Compensated ← Toxic Load Status → Decompensated

Enter data to calculate
Low (0)Moderate (30)High (60)Decompensated (80)Crisis (100)

🧪 TDG Chemical Sensitivity Index (CSI)

Rate each item 0–10 using the sliders. 0 = no reaction, 10 = severe, life-disrupting reaction.

Domain A

Volatile Chemical & Environmental Sensitivity

0/80
Domain B

Other Substance Sensitivity

0/50
Domain C

Symptom Severity Profile

0/80
Domain D

Life Impact & Functional Status

0/40
Domain E

Adaptation & Masking Indicators

0/40

Masking = the body adapts to continuous re-exposure, losing the ability to perceive dose-response. High masking scores indicate chronic burden with lost self-awareness.

Domain A
0
/80
Domain B
0
/50
Domain C
0
/80
Domain D
0
/40
Masking
0
/40
Total CSI Score: 0/290 Enter data

💄 Cosmetics & Personal Care Product Audit

The average person applies 9–15 products before leaving the house. Lipophilic compounds bypass hepatic first-pass metabolism via dermal/inhalation absorption. Select frequency and tick known high-concern ingredients.

Daily Burden Score
0
/100
Endocrine Disruptor Load
0
/30
Products Flagged
0
categories

⚠️ Key concern ingredients: Parabens, Phthalates (hidden in 'fragrance/parfum'), Benzophenone/Oxybenzone, Formaldehyde-releasing preservatives, Triclosan, Coal tar dyes (hair), Aluminium (antiperspirant), Heavy metals (some colour cosmetics), PEG compounds, Sodium lauryl/laureth sulphate, Resorcinol, Toluene (nail).

🌍 Environmental & Dietary Toxin Exposure

Rate current or recent exposures. Include significant historical exposures in the timeline section below.

🏠 Home Environment

🏢 Workplace & Occupational

🥗 Food & Water Quality

💨 Air & Other Exposures

Environmental Exposure Score
0/100

⚙️ Internal Toxin Drivers

The body generates its own toxic burden — gut-derived endotoxins, impaired detoxification, adipose mobilisation, and pharmaceutical nutrient depletion.

🦠 Gut-Derived Toxin Risk

🔧 Detoxification Capacity

💊 Pharmaceutical Burden

Medications act as force multipliers — they deplete nutrients, impair detox enzymes, and alter gut microbiome. Select all current medications.

⚠️ Fat-Soluble Toxin Mobilisation Risk

Lipophilic toxins (plasticisers, organochlorines, xenoestrogens, many mycotoxins) are stored in adipose tissue. Rapid weight loss, aggressive fasting, or dramatic dietary change can mobilise stored toxins faster than detox pathways can handle. This causes paradoxical symptom flares during "healthy" interventions.

Gut-Derived Load
0
Detox Capacity
100
%
Pharma Burden
0

🔬 Laboratory Data Entry

Enter values from OAT Environmental Pollutants Profile (US BioTek), Mycotoxin Panel (Mosaic/Great Plains), Glyphosate, and Heavy Metals.

Reference: Mosaic Diagnostics (formerly Great Plains) / Vibrant Wellness mycotoxin panels. Units: µg/g creatinine or ppb depending on lab.

Mycotoxin Load
0
OAT Pollutants
0
Metal Burden
0
Glyphosate

📅 Exposure & Symptom Timeline

The sequence matters. Symptoms don't appear randomly — they follow the accumulation logic. Plot key exposures against symptom onset to reveal the compensated-to-decompensated transition.

Life Phase Exposures

This is often NOT the root cause — it's the moment compensatory capacity was exceeded. The cause is everything that came before it.

🧬 Nutrient Depletion Map

Auto-generated from your audit. Toxin-specific nutrient depletions ranked by priority. Replete in order — some nutrients are needed before others work (e.g. selenium before glutathione, magnesium before vitamin D activation).

Complete sections above to generate nutrient depletion map...

⚠️ Symptom Misattribution Flags

Before attributing symptoms to the obvious diagnosis, consider these toxin-driven alternatives. These are pattern hypotheses — not diagnoses.

Complete audit sections to generate misattribution analysis...

🧬 HRT / Hormone Intervention Readiness

Adding hormones into a system with high toxic burden, impaired detox, and gut dysbiosis amplifies problems rather than solving them. This score assesses readiness for hormonal intervention.

The HRT paradox: Exogenous oestrogen added to a system with impaired Phase II glucuronidation, elevated beta-glucuronidase (gut recirculating oestrogen), high xenoestrogen burden from cosmetics and plastics, and depleted adrenal reserve creates a vicious loop. The liver cannot clear the additional hormonal load. Oestrogen metabolites recirculate. The system becomes increasingly dysregulated. More hormones → more symptoms → higher dose → more toxicity.

Detox Capacity
Phase I/II function
Xenoestrogen Burden
Existing hormonal load
Gut Oestrogen Risk
Beta-glucuronidase risk

HRT Readiness Assessment

/10

🔍 Clinical Patterns Identified

Auto-generated from audit data. Each pattern connects multiple domains to form a testable clinical hypothesis.

Complete audit sections to generate pattern analysis...

`); w.document.close(); setTimeout(() => w.print(), 600); } function clearAll() { if (!confirm('Clear all entries?')) return; document.querySelectorAll('input[type=range]').forEach(el => { el.value = 0; const id = el.id.replace('slider_', ''); const vEl = document.getElementById(`val_${id}`); if(vEl) vEl.textContent = '0'; }); document.querySelectorAll('input[type=checkbox]').forEach(el => el.checked = false); document.querySelectorAll('input[type=number]').forEach(el => el.value = ''); document.querySelectorAll('input[type=text]').forEach(el => el.value = ''); document.querySelectorAll('textarea').forEach(el => el.value = ''); document.querySelectorAll('select').forEach(el => el.selectedIndex = 0); recalcAll(); } function calcAge() { const dob = document.getElementById('dob').value; const testDate = document.getElementById('testDate').value; if (dob) { const birth = new Date(dob); const ref = testDate ? new Date(testDate) : new Date(); let age = ref.getFullYear() - birth.getFullYear(); const m = ref.getMonth() - birth.getMonth(); if (m < 0 || (m === 0 && ref.getDate() < birth.getDate())) age--; document.getElementById('ageDisplay').value = age; } } // ============================================================ // INIT ON LOAD // ============================================================ document.addEventListener('DOMContentLoaded', () => { buildCSI(); buildCosmeticsGrid(); buildEnvItems(); buildInternalItems(); buildLabInputs(); buildTimelineItems(); // Wire testDate to age calc document.getElementById('testDate').addEventListener('change', calcAge); // Initial calc recalcAll(); });