Learn / price an option
Price a European call
Change a sample market input. Price and Greeks use Black–Scholes–Merton, with explicit decimal rates and years to expiry.
Try it
Sample dataChange a sample market input. Price and Greeks use Black–Scholes–Merton, with explicit decimal rates and years to expiry.
European callOption price · USD / share
Exact chart data
| Series | Underlying price · USD | Option price · USD / share |
|---|---|---|
| European call | 70 | 0.00007436772427411604 |
| European call | 71 | 0.00013834634551955754 |
| European call | 72 | 0.0002506011453697714 |
| European call | 73 | 0.00044248041148476497 |
| European call | 74 | 0.0007623304942515619 |
| European call | 75 | 0.0012827848346888895 |
| European call | 76 | 0.0021102324290399183 |
| European call | 77 | 0.003396723103711738 |
| European call | 77.99999999999999 | 0.005354446682725472 |
| European call | 78.99999999999999 | 0.008272745172492157 |
| European call | 80 | 0.012537384939741547 |
| European call | 81 | 0.01865154134933955 |
| European call | 82 | 0.027257651892743873 |
| European call | 83 | 0.039159003403250514 |
| European call | 84 | 0.0553396674468003 |
| European call | 85 | 0.07698121964691174 |
| European call | 86 | 0.10547460472891901 |
| European call | 87 | 0.14242556307595544 |
| European call | 87.99999999999999 | 0.18965222876583088 |
| European call | 88.99999999999999 | 0.24917384152762256 |
| European call | 89.99999999999999 | 0.3231899689659805 |
| European call | 90.99999999999999 | 0.4140501799354084 |
| European call | 92 | 0.5242147031873543 |
| European call | 93 | 0.6562071986657614 |
| European call | 94 | 0.812561311835502 |
| European call | 95 | 0.9957631277694219 |
| European call | 96 | 1.2081919536772041 |
| European call | 97 | 1.4520620108674542 |
| European call | 98 | 1.729367599188528 |
| European call | 99 | 2.041834113337103 |
| European call | 100 | 2.3908769595711306 |
| European call | 101 | 2.777569973233703 |
| European call | 102 | 3.2026244098542804 |
| European call | 103 | 3.6663790170210575 |
| European call | 104 | 4.1688011320720335 |
| European call | 104.99999999999999 | 4.7094982294731835 |
| European call | 106 | 5.287738892448992 |
| European call | 106.99999999999999 | 5.902481828412654 |
| European call | 108 | 6.552411300078745 |
| European call | 108.99999999999999 | 7.235977207678516 |
| European call | 110.00000000000001 | 7.951438027980856 |
| European call | 110.99999999999999 | 8.696904881597817 |
| European call | 111.99999999999999 | 9.470385145137655 |
| European call | 112.99999999999999 | 10.269824229996104 |
| European call | 113.99999999999999 | 11.093144394734864 |
| European call | 114.99999999999999 | 11.938279723415604 |
| European call | 115.99999999999999 | 12.803206670189681 |
| European call | 117 | 13.685969825923578 |
| European call | 118 | 14.58470279405789 |
| European call | 119 | 15.497644262149834 |
| European call | 120 | 16.423149517923576 |
| European call | 121 | 17.359697782473887 |
| European call | 122 | 18.305895819404213 |
| European call | 123 | 19.260478329963732 |
| European call | 124 | 20.222305664894137 |
| European call | 125 | 21.190359378740183 |
| European call | 126 | 22.163736127194838 |
| European call | 127 | 23.141640367952405 |
| European call | 127.99999999999999 | 24.123376275479032 |
| European call | 129 | 25.108339224460252 |
| European call | 129.99999999999997 | 26.096007139132027 |
Assumptions & conventions
{
"price": {
"conventionsVersion": "0.0.1",
"dayCount": "ACT/365F",
"compounding": "continuous",
"timeToExpiryYears": 0.25,
"dividendModel": "none",
"units": {
"theta": "perDay",
"vega": "per1Percent",
"rho": "per1Percent"
},
"model": "black-scholes-merton",
"engine": "black-scholes-merton"
},
"greeks": {
"conventionsVersion": "0.0.1",
"dayCount": "ACT/365F",
"compounding": "continuous",
"timeToExpiryYears": 0.25,
"dividendModel": "none",
"units": {
"theta": "perDay",
"vega": "per1Percent",
"rho": "per1Percent"
},
"model": "black-scholes-merton",
"engine": "black-scholes-merton"
}
}Diagnostics & warnings
{
"price": {
"engine": "black-scholes-merton",
"method": "closed-form",
"converged": true,
"warnings": []
},
"greeks": {
"engine": "black-scholes-merton",
"method": "closed-form",
"converged": true,
"warnings": []
}
}Full result · JSON
{
"price": {
"value": 2.3908769595711306,
"assumptions": {
"conventionsVersion": "0.0.1",
"dayCount": "ACT/365F",
"compounding": "continuous",
"timeToExpiryYears": 0.25,
"dividendModel": "none",
"units": {
"theta": "perDay",
"vega": "per1Percent",
"rho": "per1Percent"
},
"model": "black-scholes-merton",
"engine": "black-scholes-merton"
},
"diagnostics": {
"engine": "black-scholes-merton",
"method": "closed-form",
"converged": true,
"warnings": []
}
},
"greeks": {
"value": {
"delta": 0.3677186551805255,
"gamma": 0.03768050654865944,
"theta": -0.0244146324714278,
"vega": 0.1884025327432972,
"rho": 0.08595247139620354
},
"assumptions": {
"conventionsVersion": "0.0.1",
"dayCount": "ACT/365F",
"compounding": "continuous",
"timeToExpiryYears": 0.25,
"dividendModel": "none",
"units": {
"theta": "perDay",
"vega": "per1Percent",
"rho": "per1Percent"
},
"model": "black-scholes-merton",
"engine": "black-scholes-merton"
},
"diagnostics": {
"engine": "black-scholes-merton",
"method": "closed-form",
"converged": true,
"warnings": []
}
},
"priceCurve": [
{
"x": 70,
"y": 0.00007436772427411604
},
{
"x": 71,
"y": 0.00013834634551955754
},
{
"x": 72,
"y": 0.0002506011453697714
},
{
"x": 73,
"y": 0.00044248041148476497
},
{
"x": 74,
"y": 0.0007623304942515619
},
{
"x": 75,
"y": 0.0012827848346888895
},
{
"x": 76,
"y": 0.0021102324290399183
},
{
"x": 77,
"y": 0.003396723103711738
},
{
"x": 77.99999999999999,
"y": 0.005354446682725472
},
{
"x": 78.99999999999999,
"y": 0.008272745172492157
},
{
"x": 80,
"y": 0.012537384939741547
},
{
"x": 81,
"y": 0.01865154134933955
},
{
"x": 82,
"y": 0.027257651892743873
},
{
"x": 83,
"y": 0.039159003403250514
},
{
"x": 84,
"y": 0.0553396674468003
},
{
"x": 85,
"y": 0.07698121964691174
},
{
"x": 86,
"y": 0.10547460472891901
},
{
"x": 87,
"y": 0.14242556307595544
},
{
"x": 87.99999999999999,
"y": 0.18965222876583088
},
{
"x": 88.99999999999999,
"y": 0.24917384152762256
},
{
"x": 89.99999999999999,
"y": 0.3231899689659805
},
{
"x": 90.99999999999999,
"y": 0.4140501799354084
},
{
"x": 92,
"y": 0.5242147031873543
},
{
"x": 93,
"y": 0.6562071986657614
},
{
"x": 94,
"y": 0.812561311835502
},
{
"x": 95,
"y": 0.9957631277694219
},
{
"x": 96,
"y": 1.2081919536772041
},
{
"x": 97,
"y": 1.4520620108674542
},
{
"x": 98,
"y": 1.729367599188528
},
{
"x": 99,
"y": 2.041834113337103
},
{
"x": 100,
"y": 2.3908769595711306
},
{
"x": 101,
"y": 2.777569973233703
},
{
"x": 102,
"y": 3.2026244098542804
},
{
"x": 103,
"y": 3.6663790170210575
},
{
"x": 104,
"y": 4.1688011320720335
},
{
"x": 104.99999999999999,
"y": 4.7094982294731835
},
{
"x": 106,
"y": 5.287738892448992
},
{
"x": 106.99999999999999,
"y": 5.902481828412654
},
{
"x": 108,
"y": 6.552411300078745
},
{
"x": 108.99999999999999,
"y": 7.235977207678516
},
{
"x": 110.00000000000001,
"y": 7.951438027980856
},
{
"x": 110.99999999999999,
"y": 8.696904881597817
},
{
"x": 111.99999999999999,
"y": 9.470385145137655
},
{
"x": 112.99999999999999,
"y": 10.269824229996104
},
{
"x": 113.99999999999999,
"y": 11.093144394734864
},
{
"x": 114.99999999999999,
"y": 11.938279723415604
},
{
"x": 115.99999999999999,
"y": 12.803206670189681
},
{
"x": 117,
"y": 13.685969825923578
},
{
"x": 118,
"y": 14.58470279405789
},
{
"x": 119,
"y": 15.497644262149834
},
{
"x": 120,
"y": 16.423149517923576
},
{
"x": 121,
"y": 17.359697782473887
},
{
"x": 122,
"y": 18.305895819404213
},
{
"x": 123,
"y": 19.260478329963732
},
{
"x": 124,
"y": 20.222305664894137
},
{
"x": 125,
"y": 21.190359378740183
},
{
"x": 126,
"y": 22.163736127194838
},
{
"x": 127,
"y": 23.141640367952405
},
{
"x": 127.99999999999999,
"y": 24.123376275479032
},
{
"x": 129,
"y": 25.108339224460252
},
{
"x": 129.99999999999997,
"y": 26.096007139132027
}
]
}Use it in your project
Returns a number: the option price in USD per share. No array conversion or chart setup is needed. Use blackScholes.greeks(input) for a named Greeks object, or .explain(input) for assumptions and diagnostics.
import { blackScholes } from '@insiderfinance/totalfinance/options';
const input = {
"type": "call",
"spot": 100,
"strike": 105,
"timeToExpiryYears": 0.25,
"volatility": 0.2,
"riskFreeRate": 0.04,
"dividendYield": 0
} as const;
const result = blackScholes.price(input);
console.log(result);
Output of this example
2.3908769595711306
Reproduce this entire playground
This complete example reproduces every chart point and the full playground result. Sample generation and chart mapping are example setup, not required conversions of library outputs.
import { blackScholes } from '@insiderfinance/totalfinance/options';
const input = {
"type": "call",
"spot": 100,
"strike": 105,
"timeToExpiryYears": 0.25,
"volatility": 0.2,
"riskFreeRate": 0.04,
"dividendYield": 0
} as const;
const priceCurve = Array.from({ length: 61 }, (_, index) => {
const spot = input.spot * (0.7 + index / 100);
return { x: spot, y: blackScholes.price({ ...input, spot }) };
});
const result = {
price: blackScholes.price.explain(input),
greeks: blackScholes.greeks.explain(input),
priceCurve,
};
console.log(result);Both examples use the last successfully calculated inputs. The first call may show fewer scenarios or selected report fields, as labeled above. Displayed metrics are rounded; copied calculations retain exact values.
Continue with the full API reference or the API levels guide.