CardioSense
Documentation · v1.0

The methodology.

CardioSense is a cardiovascular risk screening instrument built on a gradient-boosted decision tree ensemble. It ingests eleven structured clinical signals and emits a calibrated probability of disease, intended as a triage aid — never as a substitute for clinical judgement.

Inputs

The eleven signals consumed at inference time.

Age
Years, integer · 1–120
Sex
1 female · 2 male
Height & weight
cm / kg — used to derive BMI
Systolic / diastolic BP
mmHg
Cholesterol
1 normal · 2 above · 3 well above
Glucose
1 normal · 2 above · 3 well above
Smoke / alcohol / active
Binary lifestyle factors

Model

What sits behind the API.

Algorithm
XGBoost gradient-boosted classifier
Training corpus
≈ 70,000 patient records — Cardiovascular Disease Dataset + Framingham-derived features
Output
Probability ∈ [0, 1] · binary label · model confidence
Inference layer
Flask service on Railway, called via TanStack server function
Persistence
Managed Postgres with row-level security per user

Limitations

Read these before trusting the number.

Not diagnostic
Screening only — never replaces clinical judgement.
Population bias
Training data skews adult European demographics.
Static features
No time-series, ECG, or imaging signals are used.
Calibration drift
Probabilities are calibrated on training data; real-world distribution may differ.

FAQ

Common questions about scope and accuracy.

No. It is a screening aid. The output is a calibrated probability intended to support — never replace — a clinician's judgement.

≈ 70,000 anonymised patient records from the public Cardiovascular Disease Dataset, augmented with Framingham-style features.

On held-out validation: ~73% accuracy, AUC 0.79. Performance degrades on populations under-represented in training (notably non-European cohorts).

The original dataset codes cholesterol and glucose as ordinal levels rather than raw mg/dL values, so the model expects the same coding at inference.

In an encrypted Postgres database with row-level security — only your authenticated account can read, write or delete your own records.

Yes. Each record can be deleted from History at any time, immediately and permanently.

⚕ For screening and educational use only

Try it →