Contact

OPT_BS_THETA Function (Gnumeric)

Financial Intermediate Gnumeric

Calculate annual European-option time sensitivity in Gnumeric with OPT_BS_THETA, carry defaults and clearly scoped daily conversions.

Verification status: Gnumeric 1.12.57 ssconvert bounded OPT-BS-THETA fixtures; pinned/retained 1.12.62 source separate; no GUI. How formula examples are checked

OPT_BS_THETA calculates modeled time decay for a European option under generalized Black–Scholes assumptions. Gnumeric returns the negative derivative with respect to remaining maturity expressed in years. The result is an annual time sensitivity, not automatically a per-day premium change.

Syntax and defaults

=OPT_BS_THETA(call_put_flag,spot,strike,time,rate,volatility[,cost_of_carry])

Use “c” for a call and “p” for a put. Spot and strike use consistent price units. Time is remaining maturity in years. Rate is annual continuously compounded interest, volatility is annualized, and both are entered as decimal fractions: 0.05 means 5%, and 0.20 means 20%.

The final carry argument is optional and defaults to 0. The preceding six arguments are required. For a non-dividend-paying stock under the usual textbook convention, explicitly set carry equal to rate. Omitting carry selects a different model.

The help describes theta per 365.25 days. The callback does not divide its annual derivative by 365.25; that description represents a year. Divide by a chosen day-count convention yourself only when an approximate daily sensitivity is what the application needs.

Worked example

Enter:

=OPT_BS_THETA("c",100,100,1,0.05,0.2,0.05)

The expected result is approximately -6.414027546438 per year. For the corresponding put, changing “c” to “p” gives approximately -1.657880423935. These values concern model sensitivity with the other inputs fixed; they are not predictions of actual daily trading returns.

For an independent numerical check, calculate the generalized Black–Scholes price at maturities 1+h and 1−h for h = 0.00001, subtract the two prices, divide by 2h and negate. The finite-difference results are approximately -6.414027546597 and -1.657880423878, agreeing with the analytic sensitivities to the displayed numerical tolerance.

Omitting carry gives a different call result, approximately -3.397075325585, because Gnumeric uses carry zero rather than rate 0.05.

Advanced use: approximate one-day time passage

Put the call theta result in A1. =A1/365.25 gives an approximate per-calendar-day sensitivity under that convention, about -0.01756065. The approximation assumes a small time step and fixed spot, volatility, rate and carry. It is not a guarantee that tomorrow’s market price will fall by that amount.

A more direct model check is to reprice at maturity 1−1/365.25 and subtract the price at maturity 1, holding all other inputs fixed. That finite difference and theta/365.25 need not be identical because theta itself changes with maturity. Document whether your report uses calendar days, trading days or an annual figure; dividing by 252 describes a different reporting convention, not a Gnumeric default.

Theta can be positive for some parameter combinations, particularly for certain puts and carry conditions. Do not reverse its sign simply to force a universally negative “decay” column.

Errors and troubleshooting

  • An invalid call/put flag such as “bad” returned #NUM! in the native fixture.
  • Use positive spot, strike, remaining time and volatility for the ordinary interior-domain model. Boundary limits require separate analysis.
  • Enter rates as fractions or spreadsheet percentages; numeric 5 is not 5%.
  • Supply carry explicitly when comparing with another model. The omitted default is zero.
  • Keep annual and daily units visible. The returned value has price units per year, unlike dimensionless delta.
  • A theoretical derivative does not incorporate discrete events, changing market parameters or an actual trade’s contract multiplier unless those are modeled separately.

The inspected pinned source is Gnumeric 1.12.62. No precise introduction or retirement release is inferred. Native and independent numerical checks are scoped below.

EXP, LN and NORMSDIST support independent model calculations.

Official sources

Native verification scope

On 17 October 2026, Gnumeric 1.12.57 ssconvert recalculated 4 bounded OPT_BS_THETA fixture records in C.UTF-8. The saved input workbook, exact formula cells, expected specification and output workbook were cross-checked against the native result records. Numerical expectations use independent normal-CDF calculations, finite-difference maturity derivatives or a separately constructed small binomial tree, as appropriate. This is native engine evidence, not GUI or screenshot evidence. Inspected 1.12.62 source is separate from the 1.12.57 executable. Composed helper formulas and distributional identities are mathematical checks unless separately recorded. Other versions and untested boundaries remain outside this scope.

Cross-program scope

These are Gnumeric function names and argument conventions. Similar option or random-distribution functions in other spreadsheets may use different defaults, scaling or parameterizations. Exporting a workbook does not establish that another program will recalculate these formulas; verify support and results in the destination program before relying on them.