Pregnant After Sex/Data
This subpage contains the data and risk models used on the main page. The data is based on population averages and is used to generate a risk estimate.
Baseline Fertility Parameters
These are single-value constants used in the risk model calculation. The descriptions are linked to the primary sources.
Age-Related Fertility
This table provides a final multiplier based on the woman's age, which adjusts the overall result from the bell curve calculation.
age_description | age_multiplier |
---|---|
Under 25 |
1.0 |
25-30 |
0.9 |
31-39 |
0.65 |
40 and over |
0.25 |
- Reference: Age and Fertility, American Society for Reproductive Medicine (ASRM), 2021.
Menstrual Cycle Profile
This table provides the estimated peak ovulation day (μ) for different cycle profiles. A value of -1 indicates an irregular cycle where a peak cannot be reliably predicted.
cycle_description | cycle_ovulation_day_mu |
---|---|
Regular and short (25 days or less) |
11 |
Regular and average (26-31 days) |
14 |
Regular and long (32 days or more) |
18 |
Irregular or I don't know |
-1 |
- Reference: Your Menstrual Cycle, Office on Women's Health, U.S. Department of Health & Human Services, 2021.
Timing of Intercourse
This table converts the user's time window into a single day of the cycle (x) for use in the calculation (using the midpoint of the range).
timing_description | timing_intercourse_day_x |
---|---|
Don't know/unsure |
-1 |
1-7 days (During or just after my period) |
4 |
8-13 days (About a week after my period) |
11 |
14-20 days (About two weeks after my period) |
17 |
21-28 days (In the week my next period was due) |
25 |
More than 28 days |
-1 |
- Reference: Based on standard menstrual cycle phases.
Contraception Use Case Logic
This table provides mutually exclusive multipliers to simulate conditional logic. Selecting a row sets one multiplier to 1 and the others to 0.
logic_description | logic_typical | logic_perfect | logic_failed |
---|---|---|---|
Unsure (Typical Use) |
1 |
0 |
0 |
It was used correctly (Perfect Use) |
0 |
1 |
0 |
It broke / there was a mistake (Failed Use) |
0 |
0 |
1 |
Contraception Method
This table provides the failure rates for typical, perfect, and failed use cases for each method. A value of 1.0 means no risk reduction.
bc_description | bc_typical_mult | bc_perfect_mult | bc_failed_mult |
---|---|---|---|
None (unprotected sex) |
1.0 |
1.0 |
1.0 |
Male Condom |
0.13 |
0.02 |
1.0 |
The Pill (combined) |
0.07 |
0.003 |
1.0 |
Withdrawal ("pulling out") |
0.22 |
0.04 |
1.0 |
Hormonal IUD (Mirena, etc.) |
0.002 |
0.002 |
1.0 |
Copper IUD (Paragard) |
0.008 |
0.008 |
1.0 |
The Implant (Nexplanon) |
0.001 |
0.001 |
1.0 |
The Shot (Depo-Provera) |
0.04 |
0.006 |
1.0 |
- Reference: Contraception, U.S. Centers for Disease Control and Prevention (CDC).
Risk Models
This model uses a Gaussian (bell curve) function to estimate risk.
RiskModel: Pregnant After Sex/Data:PregnancyRiskPerEvent Content: {{PregnancyResult |{{#expr: 0.33*(e^(-0.5*(({timing_intercourse_day_x}-{cycle_ovulation_day_mu})/2.5)^2))*{age_multiplier}*( ({bc_typical_mult}*{logic_typical})+({bc_perfect_mult}*{logic_perfect})+({bc_failed_mult}*{logic_failed}) ) }} |{{#expr: 0.33*{age_multiplier}*( ({bc_typical_mult}*{logic_typical})+({bc_perfect_mult}*{logic_perfect})+({bc_failed_mult}*{logic_failed}) ) }} |{pagestate} }}
Calculation Explanation: 🔢 This model calculates the distance in days between intercourse (`x`) and the estimated day of ovulation (`μ`), then inputs that distance into a bell curve formula to find the corresponding probability. This result is then adjusted by the age and birth control multipliers. This method reflects the rise and fall of fertility throughout the cycle.
If the exact timing isn't known, the maximum fertility adjusted for age (0.33 * age_multiplier) times the birth control effectiveness factor will be shown instead.
The riskmodel logic was getting very complicated and hard to follow, so a template (Template:PregnancyResult) is used, with all of the calculation done here in the riskmodel and the text to display and logic about which text to display done in the template.
Initially created by Gemini (Sept. 2025).