Home / Science / Engineering / Biomedical engineering / Drug release curve fitterTool #682

Drug release kinetics fitter: zero order, first order, Higuchi, Korsmeyer-Peppas, Hixson-Crowell and Weibull with R² and AIC

Paste cumulative drug release against time and fit the six classic release models at once, with parameters and their errors, R², adjusted R², AIC, the best model and what the Korsmeyer-Peppas exponent n says about the mechanism. Also fits first-order mass loss of a degrading biomaterial, with its half-life. Release kinetics only, no doses.

Keep it one tap away for everyday use.

Bookmark Drug release curve fitter?

Press Ctrl + D now. Your browser opens its own bookmark box, where you choose the name and folder.

  1. Paste data
  2. Fit models
  3. Compare
  4. Download
Nothing is uploadedWorks offline once open

Release data

Two columns: time and the cumulative amount released, as a percentage of the total in the dosage form (or as a fraction from 0 to 1). Header rows are skipped. The example is made up. Up to 1,000 points.

Every model is fitted by least squares to the release values themselves (not to a straight-line transform), so the R² and AIC of all models compare like with like. Korsmeyer-Peppas only holds for the first part of the curve, usually up to 60 % released, so it is fitted to those points and left out of the best-model choice when that is fewer points.

Model fits

R² is 1 − SSE/SST about the mean. Adjusted R² and AIC (n·ln(SSE/n) + 2k, k = number of parameters) penalise extra parameters; the lowest AIC is the best model. A good fit does not prove a mechanism; use it with what you know about the formulation. Release kinetics only: this page gives no doses.

Degradation (mass loss, first order)

For a degrading biomaterial (a polymer scaffold, film or implant), first order means M = M₀·e^(−k·t): the same fraction is lost each day. Untick the box to fit the starting mass as well, if the first weighing is uncertain. The example is made up.

Download

What it does

In a dissolution or release test you measure how much of a drug (or any active substance) has left a tablet, film, gel or microsphere over time. Fitting that curve to a kinetic model gives a rate constant to compare formulations and a hint about how release works. This page fits six models at once:

  • Zero order, F = k₀·t: a constant rate, as from a reservoir or an eroding matrix.
  • First order, F = 100·(1 − e^(−k₁·t)): the rate falls with the amount left.
  • Higuchi, F = k_H·√t: diffusion out of a matrix.
  • Korsmeyer-Peppas, F = k·tⁿ: fitted to the first part of the curve (up to 60 % by default). The exponent n tells Fickian diffusion from swelling or erosion, with limits that depend on the shape: 0.5 and 1.0 for a slab or film, 0.45 and 0.89 for a cylinder, 0.43 and 0.85 for a sphere.
  • Hixson-Crowell, (100 − F)^⅓ = 100^⅓ − k·t: particles that dissolve and shrink evenly.
  • Weibull, F = 100·(1 − e^(−(t/τ)^β)): an empirical curve; τ is the time to 63.2 % and β its shape.

Each fit gives parameters with standard errors, R², adjusted R² and AIC, and the model with the lowest AIC is marked best. A second panel fits first-order degradation of a biomaterial’s mass, M = M₀·e^(−k·t), and gives the half-life.

How to use it

  1. Paste time and cumulative release (%), or press Open a file. Choose Fraction if your values run from 0 to 1.
  2. Choose the shape of the dosage form for reading n, and the Peppas limit if you use a different cut-off.
  3. Read the table: compare AIC (lower is better) and adjusted R². The chart shows the data with every model; the best is drawn solid.
  4. For degradation, paste time and mass remaining (or mass lost) in percent. Untick Start at exactly 100 % to fit the starting mass too.
  5. Download the fits as CSV, or the report as an image, PDF or Word file.

Worked example

The made-up release data run from 7.9 % at 0.25 h to 95.8 % at 24 h. Weibull fits best: τ = 4.968 h and β = 0.8107, R² = 0.9992, AIC 0.45. First order follows with k₁ = 0.2034 per hour (R² 0.9840, AIC 33.88); Higuchi (R² 0.9148) and zero order (R² 0.2344) fit poorly, as the curve levels off. Korsmeyer-Peppas, fitted to the 6 points up to 60 %, gives n = 0.664, which for a cylinder is anomalous (non-Fickian) transport: diffusion together with swelling or erosion.

The made-up degradation data fall from 100 % to 14.5 % over 56 days. With M₀ fixed at 100 %, k = 0.03551 per day, so the half-life is 19.5 days and R² = 0.9996.

FAQ

Why not fit straight lines to transformed data? Log and square-root transforms change the weight of each point, and their R² values cannot be compared between models. Fitting the release values directly keeps them comparable.

Is a high R² proof of the mechanism? No. Several models can fit the same curve. Use the fits together with what you know about the formulation.

Does this calculate doses? No. It only describes release curves and mass loss.

Is my data uploaded? No. Everything runs in your browser and works offline.

Where the numbers come from

  • Model forms as reviewed by Costa, P. and Sousa Lobo, J. M. (2001), Modeling and comparison of dissolution profiles, European Journal of Pharmaceutical Sciences 13, 123 to 133; Korsmeyer et al. (1983) and the exponent limits for slab, cylinder and sphere from Ritger, P. L. and Peppas, N. A. (1987), Journal of Controlled Release 5, 23 to 36 (general model facts). AIC in the form n·ln(SSE/n) + 2k used by Zhang et al. (2010), DDSolver.
  • Checked against scipy.optimize.curve_fit: the parameters, standard errors, SSE, R² and AIC of all six models on the example, and the degradation rate constant with the starting mass fixed and fitted; plus exact recovery of each model from noise-free curves.
  • The example release and mass-loss data are made up by fibub; they are not from any product, paper or database.

Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.

Last updated 2026-11-09.

Related tools

Enzyme kinetics fitter #112 Paste substrate concentrations and initial rates, with or without an inhibitor, and fit Michaelis–Menten, substrate inhibition, Hill, or competitive, uncompetitive, non-competitive and mixed inhibition by non-linear least squares. Get Km, Vmax, Ki, kcat and kcat/Km with errors, a model comparison by AICc, and the Lineweaver–Burk, Eadie–Hofstee and Hanes–Woolf values side by side. Binding curve fitter #114 Paste ligand concentrations with total and non-specific binding, or a titration signal, and fit one site, one site with non-specific binding, two sites, Hill or tight binding with ligand depletion. Get Kd, Bmax and the Hill coefficient with errors, a model comparison by AICc, the Scatchard plot and an IC50 to Ki converter. Reaction kinetics fitter #81 Paste concentration against time to find the reaction order, the rate constant with its uncertainty and the half-life; paste k at several temperatures for the activation energy, A, ΔH‡ and ΔS‡. Publication plot maker #27 Paste columns or open a CSV or Excel file and get a clean scientific figure with error bars, sized for a journal column. Download vector SVG or PDF, or PNG at 300 or 600 dpi. Your data stays in your browser. ECG viewer and HRV #680 Open or paste a single-lead ECG, filter it, find the beats with the Pan-Tompkins method and get heart rate, an RR tachogram, time-domain HRV (SDNN, RMSSD, pNN50), a Lomb-Scargle spectrum with LF and HF power, and a Poincaré plot. For study and research, not for diagnosis. Nothing is uploaded. EMG envelope and fatigue analyser #681 Open or paste a surface EMG recording, band-pass and rectify it, get a moving RMS or low-pass envelope, find each contraction's onset and offset from a rest threshold, and follow muscle fatigue as the median and mean frequency fall in sliding Welch windows, with the slope. For study and research, not for diagnosis. Nothing is uploaded.