A dependency-free Java 17 library that converts supported practice-exam inputs to an educational Step-score estimate and combines multiple inputs with an uncertainty interval.
The implementation is the reusable baseline calculation core from NBMEcalc. It runs entirely offline and performs no tracking or network requests.
This package is an independent educational planning tool. Its mappings are model assumptions, not official NBME, FSMB, USMLE, UWorld, AMBOSS, or CMS conversions. Do not use it for clinical decisions or as a guarantee of an examination result.
After the first Maven Central release:
<dependency>
<groupId>io.github.jiankn</groupId>
<artifactId>nbmecalc-core</artifactId>
<version>1.0.0</version>
</dependency>For local development before publication:
mvn clean installimport io.github.jiankn.nbmecalc.PracticeExam;
import io.github.jiankn.nbmecalc.Prediction;
import io.github.jiankn.nbmecalc.ScorePredictor;
import io.github.jiankn.nbmecalc.StepKind;
import java.util.List;
var exams = List.of(
PracticeExam.nbme(240, 30, 21),
PracticeExam.uwsa2(250, 7),
PracticeExam.free120(76, 2)
);
Prediction result = ScorePredictor.predict(exams, StepKind.STEP_2, 10);
System.out.printf("Estimate %d (%d-%d)%n",
result.pointEstimate(), result.ciLower(), result.ciUpper());- NBME three-digit practice scores, with optional form bias for forms 28-32
- UWSA 1 and UWSA 2 three-digit practice scores
- Free 120 and AMBOSS percentage scores
- CMS percentage or three-digit inputs, treated as lower-weight subject signals
The public API exposes single-input conversion through ScoreConverter and multi-input aggregation through ScorePredictor. Algorithm compatibility is identified by Prediction.algorithmVersion().
mvn clean verify
mvn javadoc:javadocThe test suite checks anchor interpolation, source adjustments, form bias, uncertainty widening, recency handling, and output bounds on Linux and Windows.
Apache-2.0. The NBMEcalc name and product branding are not granted for unrelated products by the software license.