Probability Lab

Crypto Probability Calculator

The real odds of any crypto price target, powered by Monte Carlo simulation. Ask whether Bitcoin, Ethereum or an altcoin will finish above a level, stay inside a range, touch a price before a deadline, or hit a target before a stop. Runs entirely in your browser, no signup.

Quick start

Setup

Using 45.0% per year (manual fallback, no data).

50/50
+Model settings

Needs high and low prices. The current data source only provides closes.

Zero by default, and that is deliberate. Assuming a direction is how a probability tool turns into a wish.

Same seed, same paths. Change it to see how much of the answer is simulation noise.

+Compare with a market price

If a prediction market or an option quotes this outcome, put its price here. The tool will tell you whether the model disagrees enough to matter.

What the market charges for this outcome, as a probability.

Below this, the tool reports no edge. The model is not precise enough to argue over small differences.

Optional. Used only to turn a Kelly fraction into a stake.

Live data is not available right now. The calculator still works: set the spot price and the volatility yourself and every number below stays valid.

Where the price could go
Simulated paths, with the middle 50% and 90% shaded. The fan widens with the square root of time, which is why a target twice as far away is much less than half as likely.

Readout

Probability
25.2 %
Range 24.6 % to 25.8 % (engine spread)

Chance that Bitcoin finishes above $125,000 within 7 days (volatility 45%, manual fallback, no data).

What each method says
Formula
24.6 %
Monte Carlo
25.8 %
History
--
Disagreement
1.2 pp
How far the methods are apart. This is the honest uncertainty.

Trade snapshot

Target distance
+4.2 % (0.67σ)
Expected move (1σ)
±7,478
1σ band
112,522 - 127,478
Implied return to hit
212.9 %

The move your target needs, annualized, so a week and a year sit on the same scale. Read it against what this asset has actually returned: if your target demands several times that, the odds above are arithmetic, not a forecast.

Odds per +1 vol point
+0.4 pp
Odds per +1 day
+1.3 pp

Probability alone does not size a trade. Target distance in sigma is the number to read first: under one sigma is an ordinary move, beyond two is a rare one. The two sensitivities show how much of your answer rests on numbers you estimated rather than read.

Distribution at the deadline
Where the price ends up across all simulated paths. The shaded part is the outcome you asked about.

Risk of holding

Value at Risk 95%
9.9 %
Expected Shortfall 95%
12.1 %
Value at Risk 99%
13.5 %
Expected Shortfall 99%
15.1 %
Lognormal reference
9.9 %
Median drawdown
5.9 %
Worst drawdown (90th pct)
11.0 %
Drawdown worse than 10%
13.5 %
Drawdown worse than 20%
0.0 %
Drawdown worse than 30%
0.0 %
Paths ending below entry
50.7 %
Monte Carlo paths
3,000

Value at Risk is the loss you only exceed in the worst cases: the worst 5% at the 95 level, the worst 1% at the 99 level. Expected Shortfall is the average loss across those cases, and it is the number that matters, because it says how bad the bad days actually get.

How the answer moves
The probability across a range of volatilities. A steep line means your answer depends heavily on a number you only estimated.
Probability ladder
The same question asked at levels from 40% below the price to 50% above it. The model line is the formula, the history line is how often this asset actually did it. Where the two part company, the model is assuming something the past does not support.

Volatility

Used for this answer
45 %
manual fallback, no data

Has this model been right before?

No calibration for this question. Corridor and race are decided by the whole path, and the walk-forward test only scores questions it can settle from a single closing price. Short histories also leave too few independent cases to score.

What a crypto probability calculator actually does

Most tools that call themselves a crypto calculator only work out profit and loss: you type a buy price and a sell price and they hand back a return. This is a different instrument. A crypto probability calculator answers the question that comes before any trade: how likely is the move at all? Give it a price target and a deadline and it returns the probability, grounded in how much the asset actually moves, not in anyone's opinion about direction. Direction is your input. Odds are the output.

That matters most when a market already quotes a price for the same question. A Bitcoin prediction market that pays out if BTC clears a level by Friday is quoting an implied probability. This calculator gives you an independent second opinion from the volatility of the asset itself, then shows the gap and whether it survives trading costs. It is the same discipline a desk applies to an options quote, in a form anyone can run in a browser.

When the page loads it preselects the question most people arrive looking for: a round price target just above the current price, finishing above within one week. Change the asset and it retargets automatically. Change the target, the horizon or the question type and it keeps your choice from then on.

How the odds are calculated

The first model is the log-normal approach lifted from options pricing, the N(d2) term familiar from the Black-Scholes framework. It takes the current price, your target, the time remaining and an annualized volatility, and returns the probability that price finishes beyond the target under zero drift. Volatility is measured from live daily closes as the standard deviation of log returns, annualized with the square root of 365, because crypto trades every day of the year.

The second model skips theory. It scans the historical record and counts how often the asset actually moved the required distance within your horizon. If Bitcoin needs to gain 8 percent in 30 days, the tool checks every 30 day window in the lookback period and reports the hit rate. Overlapping windows mean the samples are not fully independent, so the readout also shows the effective number of non overlapping blocks and a Wilson 95 percent interval behind that figure.

The third engine is a Monte Carlo simulation that generates thousands of Bitcoin or altcoin price paths step by step, the same simulation approach quants use to map a probability distribution of future prices. It agrees with the closed form on simple questions, which is a useful self check, but it can also do things the formulas cannot: fat tailed paths, touch questions with heavy tails, and the full price cone you see at the top. One subtlety worth knowing: the fat tail option applies a Student t to the whole horizon return, while the Monte Carlo engine applies fat tails to each step, and many fat tailed steps aggregate toward a normal shape. The two can legitimately differ on long horizons, and that gap is one more honest measure of model risk. The headline number is the median of the three engines. Be clear about what that means: for finish, range, corridor and touch questions the closed form and the Monte Carlo estimate the same quantity and agree to simulation noise, so the median equals the model value and the Monte Carlo mainly acts as a numerical self check; the historical hit rate is the independent reality benchmark, and the spread between the highest and lowest engine is shown as disagreement. Only the race question, which has no closed form, lets the simulation and history set the headline directly. Wide disagreement is information, but read it with care: for a directional bet over a long horizon, part of the model-versus-history gap is the asset's own realized drift and volatility regime, not model uncertainty alone.

Finish, range and touch

These questions have precise names in options trading, and this calculator brings them to crypto. A finish question is the probability of expiring in or out of the money (probability ITM/OTM), the chance price sits above or below a level exactly at the deadline. A touch question is the probability of touching (POT), whether price reaches a level at any point before the deadline, even if it falls back afterwards. The two are not interchangeable. Touch odds are always higher, and for a barrier close to spot they run close to double the finish odds, because price only has to get there once. The tool uses the first passage formula for geometric Brownian motion for touch questions, so a market asking "will Bitcoin hit 130k this week" gets the right answer instead of the much lower finish probability. With fat tails switched on, the Monte Carlo engine handles the touch case directly.

The range question is the difference between two finish probabilities, useful for the common market shape "will the price be between X and Y at settlement".

Implied volatility and fair value

When you enter a market price, the tool solves the model backwards to find the implied volatility, the single volatility that would make the model agree with that price. This reframes the whole question. Instead of arguing about a probability, you compare two volatilities: the one the market is charging for, and the one the asset has actually delivered. If a one week contract is priced as if annualized volatility were 90 percent while Bitcoin has been realizing 50, the contract is expensive, and the model probability sits below the market price. The fair value and expected value block then turns that gap into money: the model price in cents, the expected profit per contract after costs, and the return on the stake.

Probability is not always monotonic in volatility, so the solver scans the whole volatility range and reports honestly when two volatilities reproduce the same price, or when no volatility can reproduce the market price at all. A price beyond the model ceiling means the market is paying for something a pure diffusion does not contain, a directional view or jump risk, and the tool says so instead of forcing a number.

The professional layer

Serious desks do not measure volatility from closing prices alone. A daily candle carries four prices, and range based estimators extract far more information from them: Parkinson uses the high low span, Garman-Klass and Rogers-Satchell use the full OHLC set, and Yang-Zhang combines overnight, open to close and range components into the most efficient unbiased estimator of the family, several times more precise than close to close on the same window. The estimator dropdown switches the 30d, 90d and Blend windows onto these measures whenever Binance candles are loaded.

The second professional habit is treating volatility as a forecast, not a snapshot. Volatility clusters and mean reverts, so the right input for a 30 day question is the expected average volatility over those 30 days, not today's reading. The GARCH(1,1) mode fits the standard variance model to the loaded history with variance targeting and produces exactly that horizon forecast, along with the long run level, the persistence and the half life of a volatility shock. When current volatility is elevated the GARCH horizon number sits below the spot reading, and above it when volatility is depressed. The vol cone line shows where today's volatility ranks against its own history, and the optional variance ratio toggle corrects the square root of time scaling for measured mean reversion or momentum in multi day returns.

The third addition is filtered historical simulation, the method banks use for value at risk. Instead of assuming a normal or Student t shape, the Historical mode divides each past return by its own volatility at the time, then resamples those standardized residuals and rescales them to the current volatility level. The simulated paths carry the asset's real skew and tail weight at today's risk level. Touch questions also became more honest in the history engine: hit rates now check daily highs and lows instead of closes, so intraday touches count. The headline is the median of the three engines, and the spread between them tells you how much the method itself is in doubt. That spread is not the hurdle an edge has to clear, though it is tempting to use it as one. The hurdle comes from the error bar on the volatility estimate instead, because the three engines also disagree about drift, and drift is an assumption you supplied rather than something the market told you.

Corridor, race and jump risk

Version 2 adds the three questions and the one risk source the original engines could not express. The corridor question asks whether price stays inside a band the entire time, touching neither side, the double no-touch of FX exotics. It is a different animal from finishing inside the same band: at 60 percent volatility, a band Bitcoin finishes inside two thirds of the time is held wire to wire barely a third of the time. The tool prices it with the double barrier image expansion (the same mathematics as Kunitomo and Ikeda's curved boundary result), cross checked against the Monte Carlo paths and the historical record of full windows that never left the band.

The A before B race is the trader's real question: does price touch the take profit before the stop loss, within the deadline. Prediction markets quote exactly this shape. There is no simple closed form with a deadline, so the Monte Carlo engine answers it path by path, first barrier hit wins, the history engine replays every past window with daily highs and lows, and the classical gambler's ruin formula supplies the no-deadline limit as an anchor. The readout also shows how often the race is decided at all before time runs out, and the median time to a decision.

The jump diffusion distribution (Merton 1976) accepts that crypto gaps. Bipower variation splits the measured variance into a smooth diffusive part and a discontinuous part (Barndorff-Nielsen and Shephard 2004), a 4-sigma detector on volatility-standardized returns counts the jumps and sizes them, and the finish probability becomes a Poisson mixture of Gaussians. For a far target on a short deadline, where a single jump is the main way to get there, the jump model and the smooth models disagree, and that disagreement is precisely the jump risk premium options desks price. Touch questions under jumps go to the Monte Carlo engine, which throws compound Poisson jumps into every path.

Risk, and whether the model earns its probabilities

A probability alone does not describe what the position can do to you on the way. The risk panel reads value at risk and expected shortfall at 95 and 99 percent straight off the simulated terminal distribution, the coherent risk measure of Artzner et al. (1999) in the exact form Rockafellar and Uryasev (2000) made standard, alongside the odds of suffering a 10, 20 or 30 percent drawdown at some point before the deadline, which the closed forms cannot see because it is a path property. All of it comes from the same paths as the headline probability, so the numbers cannot quietly disagree with each other.

The calibration backtest is the feature the rest of the tool answers to. It replays your exact question, same relative distance and same horizon, at every date in the loaded history, forms the probability with only the data available on that date, and scores the forecasts with the Brier score (Brier 1950), the strictly proper scoring rule for probabilities (Gneiting and Raftery 2007). The panel shows the model's Brier against always guessing the base rate, the resulting skill percentage, and a reliability table by forecast bin. When the model has no skill on your question, the panel says so, and the honest response is to widen your uncertainty, not to trust the headline more. The historical hit rate itself now carries a Wilson score interval (Wilson 1927), the binomial interval that behaves correctly at small effective sample sizes, computed on non overlapping blocks.

Finally the headline probability carries its own error bar. A volatility estimated from thirty candles is uncertain, that uncertainty propagates into any probability computed from it, and the trade snapshot now shows the resulting 95 percent band on the probability itself. It is not a confidence interval around the headline: the headline is the median of several engines, and it can sit outside that band. When it does, the engines are arguing about more than the volatility. The Hill tail index (Hill 1975), measured from the loaded returns, sits in the diagnostics panel further down, where it also names the degrees of freedom your fat tail setting ought to carry, so you can see whether that setting matches the asset's actual tail. For Bitcoin and Ethereum, the diagnostics line also pulls Deribit's DVOL index, the options market's own 30 day implied volatility, the single best external benchmark for whether your volatility input is in the right neighborhood (Christensen and Prabhala 1998).

Why "no edge" is the default answer

The edge check is deliberately strict. The tool only flags an edge when the gap between the model midpoint and the market price beats trading costs and the disagreement between its own models at the same time. Everything else returns no edge, because that is the truthful answer for most liquid markets most of the time. Prediction market prices aggregate real money opinions, and on average the price is close to the probability. A tool that finds a trade in every market is manufacturing signals, not doing analysis. This one is built to say no.

For a stronger benchmark than realized volatility, enter the implied volatility of Deribit options with a similar expiry as manual volatility, and switch on fat tails. If the closed form and the historical hit rate disagree sharply on an extreme target, fat tails usually narrows the gap, which is a hint that the normal distribution was the thing that was wrong.

Three refinements from the research

The tail model adapts to the horizon. Bitcoin returns are extremely heavy tailed over hours and days, but aggregate toward a normal shape over weeks and months, a property called aggregational Gaussianity. With the auto setting on, the fat tail degrees of freedom scale with the deadline: a seven day question gets heavier tails than a ninety day one, which matches the measured tail index rather than assuming a single fixed value. The field shows the value in use as you change the horizon.

The leverage effect is available as a toggle. Crypto, like equities, tends to fall faster than it rises, and this asymmetry is measurable in Bitcoin returns. Switching it on adds a horizon scaled negative skew to the simulation and the closed form, so finish below and touch down questions get the extra downside weight they deserve, and the price cone opens wider below the spot than above it. It is off by default because it is a modeling opinion, not a certainty, but it is the more realistic default for downside risk.

The volatility estimate carries a confidence interval. A volatility number read from thirty candles is itself uncertain, and range based estimators such as Yang-Zhang extract far more information from each candle than a close to close measure. The trade snapshot now shows the ninety five percent band around the volatility estimate and how much tighter the chosen estimator is than close to close, so you can see how much of the probability is resting on a shaky volatility input.

Reading the numbers as a trader

Probability alone does not size a trade. The trade snapshot turns the odds into the figures a trader actually acts on. The expected move is the one standard deviation range for the horizon, the band the price stays inside roughly two times out of three, drawn straight onto the price cone as the plus and minus one sigma lines. The target distance in sigma tells you at a glance whether a level is a routine move or a tail event: under one sigma is ordinary, beyond two sigma is rare. The implied return to hit annualizes the move your target requires, so a week and a year sit on the same scale; read it against what the asset has actually returned, and a target demanding several times that is arithmetic rather than a forecast. The per volatility point and per day sensitivities show how fragile the odds are to your own assumptions, which is where most probability estimates quietly go wrong, and right beneath them the snapshot says how well the volatility is known in the first place: its own 95 percent error bar, how much tighter your estimator is than close to close, and what that uncertainty is worth in probability points.

When a market price is present, the fair value block adds the risk to reward ratio and the breakeven win rate, the two numbers that decide whether a positive expected value is worth the variance. A contract can be cheap and still be a poor trade if the reward is small relative to the risk, and it can look expensive yet pay because the reward is large. Reading probability, risk to reward and expected value together is the whole discipline.

A Monte Carlo simulator for crypto prices

Under the hood this is a Bitcoin Monte Carlo simulation and it works for any coin. It reads the asset's live volatility, then generates thousands of forward price paths under geometric Brownian motion, with an optional fat tailed or historical return shape. The result is a full probability distribution of where price could be at your deadline, drawn as the fanning price cone with its 5 to 95 and 25 to 75 percentile bands. Unlike a point forecast that names a single number, a Monte Carlo simulation shows the whole spread of outcomes and how fast it widens with time, which is the honest way to think about a volatile asset. You choose the number of paths, from a fast thousand to a smooth twenty thousand, and a fixed seed keeps any shared result reproducible.

A fair value and edge tool for prediction markets

If you trade Bitcoin questions on a prediction market like a Yes or No contract on whether BTC clears a level by Friday, this doubles as a fair value and expected value calculator. Enter the market price and the tool backs out its implied volatility, compares it to what the asset actually realizes, and reports the fair price in cents, the expected value per contract after costs, and Kelly sizing. It only flags an edge when the gap beats both trading costs and the disagreement between its own models, so it says no far more often than yes. That is the point: an honest edge check, not a signal generator.

What you can measure

The calculator covers the price questions traders and prediction market participants actually ask. Will Bitcoin finish above a round number by month end. Whether Ethereum stays inside a range into an expiry. How likely Solana, BNB, XRP or Dogecoin is to touch a level at any point this week. Any Binance spot pair works through the custom symbol field, so a thin altcoin is one entry away. Live price and volatility load automatically, or you can type your own numbers and work entirely by hand.

You do not even have to type: the quick start buttons above the calculator set up the most asked versions of these questions against the live price in one click, and the agent API built into this page exposes every engine behind them, so an assistant can pull the full picture programmatically instead of reading it off the screen.

It is built and maintained by unCoded, the self hosted, non custodial crypto trading bot from Swiss ArrowTrade AG. If you want to turn a probability edge into an automated strategy, the documentation is the place to start. The tool itself stays free and needs no account.

The science behind the tool

Every method here is a published result from the peer reviewed literature or a standard numerical reference, not a proprietary black box. Each entry below maps a specific feature of the calculator to its original source, so the numbers can be traced back to their foundations.

Links resolve to the publisher of record or the canonical DOI. The calculator implements standard, well established forms of these methods and is an educational tool, not a claim of novel research. Models simplify reality, and no probability estimate removes market risk.

Black, F. and Scholes, M. (1973). The Pricing of Options and Corporate Liabilities. Journal of Political Economy, 81(3), 637 to 654. doi:10.1086/260062
Powers the log-normal model: the N(d2) probability that price finishes beyond a target.
Kelly, J. L. (1956). A New Interpretation of Information Rate. Bell System Technical Journal, 35(4), 917 to 926. doi:10.1002/j.1538-7305.1956.tb03809.x
The Kelly criterion behind the position sizing panel, always shown at a fraction to respect estimation error.
Bollerslev, T. (1986). Generalized Autoregressive Conditional Heteroskedasticity. Journal of Econometrics, 31(3), 307 to 327. doi:10.1016/0304-4076(86)90063-1
The GARCH(1,1) volatility mode: forecasts the average volatility over your horizon rather than using today's reading.
Parkinson, M. (1980). The Extreme Value Method for Estimating the Variance of the Rate of Return. Journal of Business, 53(1), 61 to 65. doi:10.1086/296071
The Parkinson high-low volatility estimator, the first of the range based estimators offered.
Garman, M. B. and Klass, M. J. (1980). On the Estimation of Security Price Volatilities from Historical Data. Journal of Business, 53(1), 67 to 78. doi:10.1086/296072
The Garman-Klass OHLC volatility estimator selectable for the 30d, 90d and blend windows.
Rogers, L. C. G. and Satchell, S. E. (1991). Estimating Variance from High, Low and Closing Prices. The Annals of Applied Probability, 1(4), 504 to 512. doi:10.1214/aoap/1177005835
The Rogers-Satchell estimator, drift robust, and a building block of the Yang-Zhang estimator below.
Yang, D. and Zhang, Q. (2000). Drift-Independent Volatility Estimation Based on High, Low, Open, and Close Prices. Journal of Business, 73(3), 477 to 492. doi:10.1086/209650
The Yang-Zhang estimator, the most efficient of the family, used as the default range based measure and in the diagnostics line.
Barone-Adesi, G., Giannopoulos, K. and Vosper, L. (1999). VaR without Correlations for Portfolios of Derivative Securities. Journal of Futures Markets, 19(5), 583 to 602. doi:10.1002/(SICI)1096-9934(199908)19:5<583::AID-FUT5>3.0.CO;2-S
Filtered historical simulation, the method behind the Historical return distribution that resamples the asset's own standardized returns.
Begusic, S., Kostanjcar, Z., Stanley, H. E. and Podobnik, B. (2018). Scaling Properties of Extreme Price Fluctuations in Bitcoin Markets. Physica A: Statistical Mechanics and its Applications, 510, 400 to 406. doi:10.1016/j.physa.2018.06.131
Measures a power-law tail exponent between 2 and 2.5 for Bitcoin, heavier than the roughly 3 of equities. The empirical basis for the fat tailed (Student-t) option.
de Sousa Filho, F. N. M., Silva, J. N., Bertella, M. A. and Brigatti, E. (2021). The Leverage Effect and Other Stylized Facts Displayed by Bitcoin Returns. Brazilian Journal of Physics (2021). doi:10.1007/s13538-020-00846-8
Grounds two engine refinements: horizon-scaled tail heaviness (returns aggregate toward normal over longer horizons) and the leverage effect (negative returns raise volatility), which drive the auto degrees of freedom and the leverage toggle.
Wolfers, J. and Zitzewitz, E. (2004). Prediction Markets. Journal of Economic Perspectives, 18(2), 107 to 126. doi:10.1257/0895330041371321
The evidence that liquid prediction market prices are accurate probability estimates, which is why the edge check treats the market price as a serious benchmark.
Merton, R. C. (1976). Option Pricing When Underlying Stock Returns Are Discontinuous. Journal of Financial Economics, 3(1-2), 125 to 144. doi:10.1016/0304-405X(76)90022-2
The jump diffusion model behind the Jumps distribution: finish probabilities as a Poisson mixture of Gaussians, jumps in every Monte Carlo path.
Barndorff-Nielsen, O. E. and Shephard, N. (2004). Power and Bipower Variation with Stochastic Volatility and Jumps. Journal of Financial Econometrics, 2(1), 1 to 37. doi:10.1093/jjfinec/nbh001
Bipower variation, the estimator that splits realized variance into its diffusive and jump parts, used to estimate the jump model from the loaded history.
Kunitomo, N. and Ikeda, M. (1992). Pricing Options with Curved Boundaries. Mathematical Finance, 2(4), 275 to 298. doi:10.1111/j.1467-9965.1992.tb00033.x
The double barrier image expansion family behind the corridor (double no-touch) probability.
Glosten, L. R., Jagannathan, R. and Runkle, D. E. (1993). On the Relation between the Expected Value and the Volatility of the Nominal Excess Return on Stocks. Journal of Finance, 48(5), 1779 to 1801. doi:10.1111/j.1540-6261.1993.tb05128.x
GJR-GARCH: the asymmetric volatility model fitted alongside GARCH(1,1); used for the horizon forecast when a likelihood ratio test says the asymmetry is real.
Artzner, P., Delbaen, F., Eber, J.-M. and Heath, D. (1999). Coherent Measures of Risk. Mathematical Finance, 9(3), 203 to 228. doi:10.1111/1467-9965.00068
Why the risk panel reports expected shortfall and not only VaR: ES is the coherent risk measure of the pair.
Rockafellar, R. T. and Uryasev, S. (2000). Optimization of Conditional Value-at-Risk. Journal of Risk, 2(3), 21 to 41. doi:10.21314/JOR.2000.038
The standard CVaR / expected shortfall formulation computed from the simulated terminal distribution in the risk panel.
Brier, G. W. (1950). Verification of Forecasts Expressed in Terms of Probability. Monthly Weather Review, 78(1), 1 to 3. doi:10.1175/1520-0493(1950)078<0001:VOFEIT>2.0.CO;2
The Brier score, the backbone of the calibration backtest panel.
Gneiting, T. and Raftery, A. E. (2007). Strictly Proper Scoring Rules, Prediction, and Estimation. Journal of the American Statistical Association, 102(477), 359 to 378. doi:10.1198/016214506000001437
Why a strictly proper scoring rule is the right way to judge the model's probabilities, and why the backtest cannot be gamed by hedged forecasts.
Wilson, E. B. (1927). Probable Inference, the Law of Succession, and Statistical Inference. Journal of the American Statistical Association, 22(158), 209 to 212. doi:10.1080/01621459.1927.10502953
The Wilson score interval on the historical hit rate, computed on non overlapping blocks, replacing the plain normal standard error.
Hill, B. M. (1975). A Simple General Approach to Inference About the Tail of a Distribution. The Annals of Statistics, 3(5), 1163 to 1174. doi:10.1214/aos/1176343247
The Hill tail index in the diagnostics panel, measured from the loaded returns; it doubles as a data-driven suggestion for the Student-t degrees of freedom.
Lo, A. W. and MacKinlay, A. C. (1988). Stock Market Prices Do Not Follow Random Walks: Evidence from a Simple Specification Test. Review of Financial Studies, 1(1), 41 to 66. doi:10.1093/rfs/1.1.41
The variance ratio statistic behind the optional horizon vol scaling toggle and the diagnostics readout.
Jarque, C. M. and Bera, A. K. (1980). Efficient Tests for Normality, Homoscedasticity and Serial Independence of Regression Residuals. Economics Letters, 6(3), 255 to 259. doi:10.1016/0165-1765(80)90024-5
The normality test in the diagnostics panel that tells you whether the Normal setting is defensible on the loaded data.
Ljung, G. M. and Box, G. E. P. (1978). On a Measure of Lack of Fit in Time Series Models. Biometrika, 65(2), 297 to 303. doi:10.1093/biomet/65.2.297
The Ljung-Box test on returns and squared returns in the diagnostics panel: the squared-return version is the evidence for volatility clustering that justifies GARCH.
Christensen, B. J. and Prabhala, N. R. (1998). The Relation Between Implied and Realized Volatility. Journal of Financial Economics, 50(2), 125 to 150. doi:10.1016/S0304-405X(98)00034-8
Why the Deribit DVOL options implied volatility benchmark is shown next to your realized vol input: implied vol contains real information about future realized vol.
Broadie, M., Glasserman, P. and Kou, S. (1997). A Continuity Correction for Discrete Barrier Options. Mathematical Finance, 7(4), 325 to 349. doi:10.1111/1467-9965.00035
The discrete-monitoring bias in barrier crossings; the race Monte Carlo applies a Brownian-bridge continuity correction so its first-passage odds match continuous monitoring at any step size.
West, G. (2009). Better Approximations to Cumulative Normal Functions. Wilmott Magazine, 70 to 76.
The Hart-based double-precision cumulative normal used throughout; probabilities read as the upper-tail directly, so deep out-of-the-money odds keep full relative accuracy instead of collapsing to zero.
Self, S. G. and Liang, K.-Y. (1987). Asymptotic Properties of Maximum Likelihood Estimators and Likelihood Ratio Tests Under Nonstandard Conditions. Journal of the American Statistical Association, 82(398), 605 to 610. doi:10.1080/01621459.1987.10478472
Because the GJR leverage term sits on a parameter boundary, the GARCH-vs-GJR likelihood ratio is tested against the correct half chi-square mixture, so the asymmetric model is neither over- nor under-selected.

Frequently asked questions

These are the questions people ask most often about crypto probability: what the number means, where it comes from, and where it stops being useful. The answers here are short. The reasoning behind them is in the sections above.

Can this calculator predict where Bitcoin is going?
No. It does not forecast direction. It estimates how likely a move of a given size is within a given time, based on how much the asset actually fluctuates. Direction is your input, odds are the output.
What is the difference between a finish and a touch question?
A finish question asks where price ends up at the deadline. A touch question asks whether price reaches a level at any point before the deadline. Touch odds are always higher, often close to double for a nearby barrier, because price only has to get there once.
What does the implied volatility figure mean?
It is the volatility that would make the model agree with the market price you entered. If the market implies a much higher volatility than the asset actually shows, the contract looks expensive, and the reverse if it implies a lower volatility. Some market prices are unreachable at any volatility, which means the market is pricing a directional view or jump risk.
Which volatility setting should I use?
Blend of 30 and 90 day realized volatility is the sane default. EWMA reacts faster to a changing regime. For a stress test, enter the implied volatility of Deribit options with a similar expiry as manual volatility.
Which volatility measure do professionals use?
Range based estimators such as Yang-Zhang on full OHLC candles for measurement, and a GARCH style forecast for the horizon, because volatility clusters and mean reverts. This tool offers both, plus filtered historical simulation so simulated paths carry the asset's real return shape.
Why does the tool so often say no edge?
Because that is usually the truth. Liquid prediction markets aggregate real money opinions, and on average the price is close to the probability. The tool only flags an edge when the gap beats trading costs and the disagreement between its own models.
Is this crypto probability calculator free?
Yes, completely free and it runs entirely in your browser with no account. Live price and volatility come from public Binance data with a CoinGecko fallback, and nothing you enter leaves your device.
Which coins does it support?
Bitcoin, Ethereum, Solana, BNB, XRP and Dogecoin are one click, and any other Binance spot pair works through the custom symbol field. You can also enter price and volatility manually for an asset that is not on Binance.
Is this a Bitcoin Monte Carlo simulator?
Yes. The engine runs a Monte Carlo simulation of thousands of price paths from live volatility and shows the resulting probability distribution as a price cone. It also cross checks against two closed form models and the historical hit rate, so you get a simulation and an analytic answer side by side.
What is the probability of touching?
The probability of touching (POT) is the chance price reaches a level at any point before the deadline, even if it does not finish there. It is always higher than the finish (expiry) probability, often close to double for a nearby level, because price only has to get there once. Select Touch up or Touch down to calculate it.
What is the corridor (double no-touch) probability?
The chance the price stays inside a band for the entire period, never touching either side. It is always lower than the chance of finishing inside the same band at the deadline, often dramatically so, because the price must survive every moment in between. The tool computes it with a double barrier formula and cross checks it against the Monte Carlo paths and history.
Can it tell me the odds of hitting my take profit before my stop loss?
Yes. The A-before-B question races two levels: the probability the price touches your target before it touches your stop, within the deadline. It is answered by the Monte Carlo engine and the historical record, with a closed form for the no-deadline limit. Prediction markets often quote exactly this shape.
What is the jump diffusion model?
Crypto does not only drift, it gaps. The Merton jump diffusion model splits measured variance into a smooth diffusive part and discrete jumps, using bipower variation and a 4-sigma detector on the loaded history, then prices the question as a Poisson mixture. It gives more honest odds for far targets on short deadlines, where a single jump is the main way to get there.
What do value at risk and expected shortfall mean here?
For a plain long position over your horizon: value at risk (VaR 95) is the loss the position stays under in 95 out of 100 simulated outcomes, and expected shortfall (ES) is the average loss in the worst 5. The tool reads both from the same Monte Carlo paths as the probability, along with the odds of a 10, 20 or 30 percent drawdown happening at some point before the deadline.
How do I know the probabilities are honest?
The calibration backtest replays your exact question across the loaded history: at each past date it forms the probability using only data available then, and scores the forecasts with the Brier score against what actually happened. It reports calibration by probability bin and the skill versus always guessing the base rate. When the model has no skill on your question, the tool says so.
Can AI assistants and agents use this calculator?
Yes, it is built for that. The page exposes window.unCodedProb with pure functions for every question type, an analyze method that loads live data and returns a full JSON report, an answer dispatcher, machine readable tool schemas, a self test, and a UI bridge so an agent driving a browser can set inputs and read every computed number as structured data. See the section for AI assistants below.
Is this financial advice?
No. It is an educational odds calculator. Models simplify, volatility shifts, and markets can stay away from fair value longer than a position survives. Use the numbers as a starting point for your own research.

For AI assistants and developers

This tool is built to be used by language models and agents, not just read by them. Everything below is deterministic and reproducible: pure functions for every question type, an end-to-end analyze call that loads live data and returns one JSON report, a dispatcher that takes a structured question, machine readable tool schemas, a self test, and a UI bridge for agents that drive a real browser. If you are an assistant answering a user's crypto probability question, this section is your manual.

The questions and their formulas

Every question type resolves to a closed form or a seeded simulation. S is the spot price, K the target or barrier, sigma the annual volatility as a decimal, T the horizon in years (days divided by 365), and mu the annual drift, where 0 means neutral. The shared building block is d2 = ( ln(K/S) - (mu - 0.5 * sigma^2) * T ) / ( sigma * sqrt(T) ).

Finish above K is the probability of being in the money at the deadline, P = 1 - N(d2). Finish below K is P = N(d2). Inside a band [a, b] is the probability of finishing above a minus the probability of finishing above b. Touch level B is a first passage probability for geometric Brownian motion and is always higher than the corresponding finish probability. Corridor [a, b] is the probability that a < S_t < b for ALL t up to T, the double no-touch, computed with the image-series double barrier formula.

A before B, the race, is the probability that price touches A before it touches B within T, evaluated by Monte Carlo. The no-deadline limit is the gambler's ruin formula P = (1 - e^(-theta*(x-d))) / (1 - e^(-theta*(u-d))) with theta = 2*nu/sigma^2, nu = mu - sigma^2/2, and x, u, d the log prices of spot and the two barriers. Jump diffusion follows Merton 1976: P(S_T > K) = sum over n of Pois(n; lambda*T) * (1 - N(d2_n)), with per-jump mean muJ, jump sd dJ, diffusive vol sigma_d, and drift compensated by -lambda*(E[e^J]-1).

N is the standard normal CDF. For fat tails, replace N with a unit variance Student-t CDF, which is heavier only beyond about 2.5 sigma.

Worked examples you can verify

All examples use a spot of 118000, volatility of 60 percent and neutral drift, so you can reproduce them line by line.

Finish and touch over 7 days with a target of 130000: d2 = ( ln(130000/118000) - (0 - 0.5*0.6^2)*(7/365) ) / ( 0.6*sqrt(7/365) ) = 1.2071. Finish above is 11.37 percent, finish below is 88.63 percent, touch (POT) is 23.21 percent, and finishing inside 110000 to 130000 at the deadline is 67.54 percent. The expected 1 sigma move is +/-9805, a band of 108195 to 127805, which puts the target at +10.2 percent or 1.22 sigma.

Corridor versus range for the band 110000 to 130000 over 7 days: finishing inside the band at the deadline is 67.54 percent, while staying inside the band the ENTIRE time is only 36.13 percent, the corridor or double no-touch number.

Race over 30 days, touching 130000 before touching 105000: Monte Carlo with 20000 paths, seed 42 and Brownian-bridge correction gives 49.4 percent, with 94.9 percent of paths decided before the deadline. The no-deadline limit from gambler's ruin is 52.00 percent.

Jump diffusion over 7 days with a target of 130000, sigma_d of 50 percent, lambda of 24 jumps per year, mean jump of -1 percent and jump sd of 8 percent: the Merton finish above is 11.31 percent, where a plain normal at the same total 63.7 percent vol says 12.68.

Risk over 7 days at 60 percent vol for a long position, closed form lognormal: VaR95 is 13.08 percent of the position and ES95 is 16.00 percent; VaR99 is 17.86 percent and ES99 is 20.11 percent.

Historical hit rate uncertainty with 14 hits in 45 non-overlapping blocks: the Wilson 95 percent interval runs from 19.5 to 45.7 percent around the 31.1 percent point estimate.

Quick reference table (no computation needed)

For a rough zero-drift estimate when you cannot execute code: compute the target's distance in sigma, x = ln(K/S) / (sigma * sqrt(T)), then read the row. Both columns are accurate only for small sigma*sqrt(T), say under about 0.2. The touch column uses the reflection doubling rule (touch = 2 x finish); as sigma*sqrt(T) grows it overstates the true touch probability. At sigma*sqrt(T) = 0.6 the doubling reads about 32 percent where the exact one-touch is about 23 percent, an overstatement of roughly 9 percentage points or about 40 percent. Use touchAbove or touchBelow for precise numbers; this table is only a back-of-envelope fallback.

Playbook: user question to API call

The bullets below map a user's phrasing to the call you should make and the field you should read out of the result.

Call the engine directly

While the page is open in a browser, the global object window.unCodedProb runs the same math. Volatility is passed in percent and time in days. Everything is deterministic; Monte Carlo methods take an optional seed and default to 42.

The v1 surface covers the pure closed forms: finishAbove, finishBelow, insideRange, touchAbove, touchBelow, expectedMove, and snapshot, which returns every key number in one object. The v2 surface adds paths, corridors, races, jumps and risk through corridor, hitBefore, valueAtRisk, a jumps option on finishAbove, and monteCarlo with terminal percentiles, VaR/ES and drawdown odds.

Volatility and diagnostics can be computed from your own arrays with volFromCloses, volFromOHLC (including the Yang-Zhang estimator), garchForecast, which compares GARCH against GJR-GARCH and picks by likelihood ratio, diagnostics, which returns moments, Jarque-Bera, Ljung-Box, ARCH, Hill, jumps and stats, and calibrationBacktest.

For market comparison, impliedVol solves the vol the market is charging, and edge returns fair value, net edge, EV, Kelly and actionableAfterHurdle. The hurdlePp argument is the model-uncertainty gate; omit it and it defaults to a 4 percentage point floor, and analyze() supplies it for you.

One end-to-end call, analyze(), fetches Binance live data in roughly a second and returns the full report. The universal dispatcher answer() takes a structured question. selftest() returns passed, failed and cases and should be run first. schema() returns tool definitions ready for function calling, and describe() returns the full machine readable model spec. Browser agents can drive the visible page with ui.read(), which returns every currently computed number as JSON, ui.set(), which sets inputs, recomputes and returns read(), and ui.load(), which loads live data and then reads.

Ground rules for agents

1. Touch versus finish: "hit", "reach" or "touch" means touchAbove or touchBelow; "close", "settle", "end" or "expire" means finish. Touch odds are roughly DOUBLE finish odds for near levels. Confusing them is the most common error.

2. Units: volatility in percent (60 = 60 percent annualized), time in days, prices in the spot's quote currency.

3. Neutral drift (0) is the honest default. A drift input is a directional opinion, not a measurement.

4. Volatility should come from data: analyze() returns realized 30d and 90d, EWMA, GARCH horizon and, for BTC and ETH, the Deribit DVOL implied vol. A blend of 30d and 90d realized is the sane default; DVOL is the market's own forecast.

5. Always report uncertainty: the engines disagree (consensus spread), the vol estimate has a CI, and analyze() includes a calibration backtest. An edge smaller than the model disagreement is noise, so say so.

6. Monte Carlo results are seeded and reproducible. Same inputs, same numbers, any machine.

7. Run unCodedProb.selftest() once before relying on the API in an unfamiliar environment.

8. This is an educational odds tool, not investment advice; probabilities are model outputs, not promises. Do not present model output as a guarantee, and mention costs when the user is comparing to a market price.

Without a browser

The math lives between the PURE-MATH-START and PURE-MATH-END markers at /tools/crypto-probability-calculator/pure-math.js: plain dependency-free JavaScript you can extract and run in Node or any JS runtime, with no build step and nothing to install. It is generated from the calculator's own engine source, and every build re-runs the generator and fails if the result differs by a single byte, so it cannot quietly drift away from the math this page runs. Note the units there are model units, not the API's: sigma is an annualized decimal and T is in years, while window.unCodedProb takes percent and days. Live data needs only two public endpoints: api.binance.com/api/v3/ticker/price?symbol=BTCUSDT for spot and api.binance.com/api/v3/klines?symbol=BTCUSDT&interval=1d&limit=1000 for daily OHLC candles; annualize daily log-return volatility with sqrt(365). Two structured JSON blocks are embedded in this page for agents that read source: uncoded-prob-model (the model spec) and uncoded-agent-tools (tool schemas for function calling).

The tool is educational, uses standard published methods, and does not remove market risk.

Distance x = 0.25
Finish beyond 40.1 percent, touch before deadline 80.3 percent.
Distance x = 0.50
Finish beyond 30.9 percent, touch before deadline 61.7 percent.
Distance x = 0.75
Finish beyond 22.7 percent, touch before deadline 45.3 percent.
Distance x = 1.00
Finish beyond 15.9 percent, touch before deadline 31.7 percent.
Distance x = 1.25
Finish beyond 10.6 percent, touch before deadline 21.1 percent.
Distance x = 1.50
Finish beyond 6.7 percent, touch before deadline 13.4 percent.
Distance x = 2.00
Finish beyond 2.3 percent, touch before deadline 4.6 percent.
Distance x = 2.50
Finish beyond 0.6 percent, touch before deadline 1.2 percent.
Distance x = 3.00
Finish beyond 0.1 percent, touch before deadline 0.3 percent.
"Will BTC hit 150k this year?"
Call touchAbove(spot, 150000, vol, 365) and read the percent; touch, not finish, is what "hit" means.
"Will BTC close above 150k by June 30?"
Call finishAbove(spot, 150000, vol, days) and read the percent; finish is what settlement means.
"Will ETH stay between 3000 and 4000 all month?"
Call corridor(spot, 3000, 4000, vol, 30) and read the percent; the corridor is much lower than finishing inside.
"Chance I hit my TP at 130k before my SL at 105k?"
Call hitBefore(spot, 130000, 105000, vol, days) and read mcPercent, plus eventualPercent for the no-deadline case.
"How far can BTC fall in a week?"
Call valueAtRisk(spot, vol, 7) and read var95, es95, var99, es99 and the 1-sigma expected move.
"Is this Polymarket contract at 58c cheap?"
Call analyze({symbol, question, target, days, marketPercent:58}) (preferred), or edge(modelProb, 58, 2, bankroll, hurdlePp), and read market.actionableAfterHurdle and market.insideNoise - a positive net edge is only real once it clears the model-uncertainty hurdle.
"What vol should I use?"
Call await analyze({symbol:'BTCUSDT'}) and read data.vol30Pct, vol90Pct, ewmaPct, garch.sigmaPct, dvolPct and the diagnostics.
Anything end to end with live data
Call await analyze({symbol, question, target, upper, days, marketPercent}) and read one JSON report: engines, consensus, risk, calibration, edge, explanation.
Structured question, own data
Call answer({question:'touch_above', spot, target, volPct, days}) and read the uniform result object returned for any question id.

Educational model output, not investment advice. Probabilities are estimates from a model of past price behaviour, not promises about the future. unCoded is operated by ArrowTrade AG, Brig, Switzerland. No custody, no deposits, no financial advice.