{"id":27267,"library":"py-lets-be-rational","title":"py-lets-be-rational","description":"Pure Python implementation of Peter Jaeckel's LetsBeRational, providing high-precision computation of implied volatility and option pricing using rational approximations. Current version 1.0.1, released on PyPI with no updates since 2018. Low maintenance but stable.","status":"active","version":"1.0.1","language":"python","source_language":"en","source_url":"https://github.com/domokane/py-lets-be-rational","tags":["finance","options","implied volatility","rational approximation"],"install":[{"cmd":"pip install py-lets-be-rational","lang":"bash","label":"latest"}],"dependencies":[],"imports":[{"note":"Package name uses underscores, not hyphens.","wrong":"from py_lets_be_rational import ImpliedVolatility","symbol":"ImpliedVolatility","correct":"from lets_be_rational import ImpliedVolatility"},{"note":"Correct import from `lets_be_rational`.","wrong":"from py_lets_be_rational import Black","symbol":"Black","correct":"from lets_be_rational import Black"}],"quickstart":{"code":"from lets_be_rational import ImpliedVolatility\nimport math\n\niv = ImpliedVolatility()\n# Example: forward=1.2, strike=1.0, time to expiry=0.5, option price=0.2, call=True\nsigma = iv.implied_volatility(1.2, 1.0, 0.5, 0.2, True)\nprint(f\"Implied Volatility: {sigma:.6f}\")","lang":"python","description":"Computes implied volatility using Let's Be Rational algorithm."},"warnings":[{"fix":"Use `from lets_be_rational import ImpliedVolatility`.","message":"Import from `lets_be_rational` not `py_lets_be_rational` or `letsberational`. The package is installed as `py-lets-be-rational` but the module is named `lets_be_rational`.","severity":"gotcha","affected_versions":"all"},{"fix":"Compute forward = spot * exp((r - q) * T) before calling.","message":"The library expects forward price, not spot price. If you pass spot, results will be wrong for nonzero interest/dividends.","severity":"gotcha","affected_versions":"all"},{"fix":"Ensure option price > 0.","message":"Option price must be a positive float. Passing zero or negative price may cause silent errors or zero division.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `import lets_be_rational` or `from lets_be_rational import ImpliedVolatility`. The package name and module name differ.","cause":"Package installed but import name is not obvious.","error":"ModuleNotFoundError: No module named 'lets_be_rational'"},{"fix":"Run `pip install --upgrade py-lets-be-rational` and check spelling: class is `ImpliedVolatility` (capital I, V).","cause":"Outdated version or typo in class name.","error":"AttributeError: module 'lets_be_rational' has no attribute 'ImpliedVolatility'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}