These tools are designed to support clinical workflow in radiation oncology and general medical practice, providing quick access to diagnostic codes and calculation utilities used in day-to-day charting and patient management.
Each measurement is converted to a point in time (days from the first
value). The calculator fits an exponential model
PSA = A · eB·t by
unweighted least-squares linear regression of ln(PSA) on time
— the standard clinical PSA-doubling-time method. Each measurement is
weighted equally in log space, which is the appropriate error model for PSA,
where variation is multiplicative (roughly proportional to the value).
The doubling time is ln(2) / B. A negative slope means PSA is
falling, and the result is reported as a halving time.
The reported figures around the doubling time mean:
The shaded confidence band around the curve is a confidence interval for the underlying trend, not a prediction interval — it describes uncertainty in the fitted curve, not the range where an individual future PSA measurement is expected to fall. The shaded region to the right of your last measurement is extrapolation.
A single fit over an entire history averages away a change in pace: a series that has recently sped up can look much like one that never did. The calculator therefore also fits the most recent stretch of measurements on its own — a trailing twelve months where possible, widened until it holds at least three values spanning at least ninety days — and compares its growth rate against the earlier values.
The two sets share no measurements, so the comparison uses Welch–Satterthwaite degrees of freedom. This matters in practice: the usual clinical shape is a long history against a short recent window, and the simpler pooled form flags a change in roughly 16% of simulated series whose growth rate never actually changed. The row appears only when the test resolves, because a “recent trend” number with no verdict invites the reader to see acceleration in what may be scatter.
The wording is deliberately descriptive, never causal. Starting or stopping treatment, 5-α-reductase inhibitors, testosterone recovery, benign post-radiotherapy bounce, and a change of assay all produce the same signal, and none of them is visible to this page. A rise that is followed by a below-detection result is no longer the latest chapter, so the comparison is withheld entirely and the doubling time states which dates it describes.
Text pasted from a lab portal or a note carries far more than a date and a
value. The calculator finds the dates first, then sets aside what is
recognisably not a result — clock times (with or without a colon), ages
and durations, accession and record numbers, list markers, and reference
ranges — and chooses among what remains by evidence: a number carrying a
PSA unit, then one following a “PSA” label, then the only
remaining candidate. It does not simply take the first number on the line,
which would read 1/15/24 0830 4.5 as a PSA of 830.
Lines about a different test (testosterone, free PSA, PSA density) are
skipped. An above-range result (>150), a <
that is not beside a valid detection limit, and an impossible date are refused
rather than guessed at. Anything that could not be read is counted and
reported, never dropped silently — but the parsed-measurements
table is the record of what was actually used, and is worth a glance against
your source.
Two draws on the same day are two reads of one value rather than two points in time, so they are averaged into a single observation before fitting. Counted separately they would anchor the curve to that date and narrow the confidence interval on precision the data does not have. The table still lists every value exactly as entered.
On the linear scale the axis is sized to hold the measurements and the fitted curve; the confidence band is allowed to run off the top rather than set the scale, since a band that grows exponentially into the projection would squash the measurements onto the bottom edge. For a fast-doubling series a long projection compresses the measured history for the same reason — shortening the projection, or switching to the log scale, restores that detail. If the recent-trend line leaves the top of the scale, a note says so and names the date.
Measurements with a PSA of zero (or below the assay detection limit) cannot be placed on a log scale and are excluded from the fit; the calculator notes when this happens. The tool applies no cohort-eligibility rules (minimum interval between values, treatment-free interval, assay-change or PSA-bounce handling) that some clinical protocols specify. It is intended for education and quick estimation, not as a validated risk classifier.
Created by Nick Boehling, MD — Radiation Oncologist, Bend, OR — View on GitHub
Have a suggestion or found an error? Send feedback to [email protected].
Oncology Toolkit collects no personal information, no protected health information (PHI), and no patient data. Calculator inputs are processed entirely in your browser and are never transmitted to a server.
The site uses two analytics services to understand aggregate traffic patterns:
_ga and
_ga_* cookies to count unique visitors and measure page
views. IP addresses are truncated by Google before storage. Ad
personalization features (Google Signals) are disabled.
The site also uses browser local storage (not cookies) to remember your theme preference, recent calculator inputs, and cached ICD-10 data for offline use. This data stays on your device and is never sent anywhere. You can clear it at any time through your browser settings.
To opt out of Google Analytics, use a browser extension such as the Google Analytics Opt-out Add-on or enable your browser’s tracking-protection / Do Not Track features.