Repository files navigation

floe

npmLicenseTypeScript

Zero-dependency TypeScript functions for options flow: Black-Scholes, greeks, IV surfaces, dealer exposures, implied PDFs, and more, with a clean, type-safe API. Broker agnostic. Stream data from a variety of brokers with a uniform API. Built for use in trading platforms and fintech applications.

The same library that is used in Full Stack Craft's various fintech products including The Wheel Screener, LEAPS Screener, Option Screener, AMT JOY, and VannaCharm.

Quick Start / Documentation / Examples

fullstackcraft.github.io/floe

📋 Dual License

This project is dual-licensed:

  • MIT License - Free for individuals, personal projects, and non-commercial use
  • 💼 Commercial License - Required for businesses and commercial applications

Read full licensing details | Get Commercial License


Features

  • Black-Scholes Pricing - Fast, accurate options pricing
  • Greeks Calculations - Delta, gamma, theta, vega, rho
  • Dealer Exposure Metrics - GEX, VEX, and CEX exposures
  • Implied Volatility & Surfaces - Calculate IV from market prices and build volatility surfaces
  • Implied PDF - Risk-neutral probability density functions
  • Real-Time Data - Stream normalized options data from multiple brokers
  • Broker-Agnostic - Normalize data from any broker
  • Type-Safe - Full TypeScript support
  • Zero Dependencies - Lightweight and fast

Broker Support Roadmap

Due to the overwhelming variety of how broker APIs structure their data (and how they make it available), there is a wide variety of how much support we can provide out-of-the-box for different brokers, summarized in this table:

BrokerBlack-ScholesGreeksOpen Interest Based ExposuresOptions-Book Based ExposuresImplied PDF CalculationsSPX / NDX 0DTE Data
Tradier (via WebSocket)
Tastytrade (via WebSocket - DXLink Streamer)Not yet tested
TradeStation (via HTTP Streaming)Not yet tested
Schwab (via WebSocket)Not yet tested
Interactive Brokers (via WebSocket)Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*

*Due to the high capital requirements for an Interactive Brokers integration, no integration with them is currently planned.

Ideally all aspects of floe will be available for all brokers, but this will take time to determine as we work through the various data structures and formats that each broker provides.

Unsupported Brokers

The following brokers have no public API:

  • Fidelity
  • Robinhood

If your broker is not listed above, you can still use floe by normalizing your broker's data structures to match the expected input types. With options, you can get quite far with floe just by having the market price for the underlying and each option. (From those alone you can back out the IV, greeks, and exposures.)

Installation

npm install @fullstackcraftllc/floe

License

Free for Individuals - Use the MIT License for personal, educational, and non-commercial projects.

Commercial License Required - Businesses and commercial applications must obtain a commercial license.

See LICENSE.md for full details.

Need a Commercial License? Contact us at hi@fullstackcraft.com

Pricing

Contact hi@fullstackcraft.com for pricing

Contributing

Contributions are welcome! Please open an issue or PR.

By contributing, you agree that your contributions will be licensed under the same dual-license terms.

Credits

Copyright © 2025 Built with ❤️ by Full Stack Craft LLC

About

Fast, type-safe options analytics library for TypeScript. Black-Scholes pricing, Greeks (delta, gamma, vanna, charm), and dealer exposure metrics with broker-agnostic data normalization.

Resources

Contributing

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

floe

npmLicenseTypeScript

Zero-dependency TypeScript functions for options flow: Black-Scholes, greeks, IV surfaces, dealer exposures, implied PDFs, and more, with a clean, type-safe API. Broker agnostic. Stream data from a variety of brokers with a uniform API. Built for use in trading platforms and fintech applications.

The same library that is used in Full Stack Craft's various fintech products including The Wheel Screener, LEAPS Screener, Option Screener, AMT JOY, and VannaCharm.

Quick Start / Documentation / Examples

fullstackcraft.github.io/floe

📋 Dual License

This project is dual-licensed:

  • MIT License - Free for individuals, personal projects, and non-commercial use
  • 💼 Commercial License - Required for businesses and commercial applications

Read full licensing details | Get Commercial License


Features

  • Black-Scholes Pricing - Fast, accurate options pricing
  • Greeks Calculations - Delta, gamma, theta, vega, rho
  • Dealer Exposure Metrics - GEX, VEX, and CEX exposures
  • Implied Volatility & Surfaces - Calculate IV from market prices and build volatility surfaces
  • Implied PDF - Risk-neutral probability density functions
  • Real-Time Data - Stream normalized options data from multiple brokers
  • Broker-Agnostic - Normalize data from any broker
  • Type-Safe - Full TypeScript support
  • Zero Dependencies - Lightweight and fast

Broker Support Roadmap

Due to the overwhelming variety of how broker APIs structure their data (and how they make it available), there is a wide variety of how much support we can provide out-of-the-box for different brokers, summarized in this table:

BrokerBlack-ScholesGreeksOpen Interest Based ExposuresOptions-Book Based ExposuresImplied PDF CalculationsSPX / NDX 0DTE Data
Tradier (via WebSocket)
Tastytrade (via WebSocket - DXLink Streamer)Not yet tested
TradeStation (via HTTP Streaming)Not yet tested
Schwab (via WebSocket)Not yet tested
Interactive Brokers (via WebSocket)Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*

*Due to the high capital requirements for an Interactive Brokers integration, no integration with them is currently planned.

Ideally all aspects of floe will be available for all brokers, but this will take time to determine as we work through the various data structures and formats that each broker provides.

Unsupported Brokers

The following brokers have no public API:

  • Fidelity
  • Robinhood

If your broker is not listed above, you can still use floe by normalizing your broker's data structures to match the expected input types. With options, you can get quite far with floe just by having the market price for the underlying and each option. (From those alone you can back out the IV, greeks, and exposures.)

Installation

npm install @fullstackcraftllc/floe

License

Free for Individuals - Use the MIT License for personal, educational, and non-commercial projects.

Commercial License Required - Businesses and commercial applications must obtain a commercial license.

See LICENSE.md for full details.

Need a Commercial License? Contact us at hi@fullstackcraft.com

Pricing

Contact hi@fullstackcraft.com for pricing

Contributing

Contributions are welcome! Please open an issue or PR.

By contributing, you agree that your contributions will be licensed under the same dual-license terms.

Credits

Copyright © 2025 Built with ❤️ by Full Stack Craft LLC

About

Fast, type-safe options analytics library for TypeScript. Black-Scholes pricing, Greeks (delta, gamma, vanna, charm), and dealer exposure metrics with broker-agnostic data normalization.

Resources

Contributing

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

floe

npmLicenseTypeScript

Zero-dependency TypeScript functions for options flow: Black-Scholes, greeks, IV surfaces, dealer exposures, implied PDFs, and more, with a clean, type-safe API. Broker agnostic. Stream data from a variety of brokers with a uniform API. Built for use in trading platforms and fintech applications.

The same library that is used in Full Stack Craft's various fintech products including The Wheel Screener, LEAPS Screener, Option Screener, AMT JOY, and VannaCharm.

Quick Start / Documentation / Examples

fullstackcraft.github.io/floe

📋 Dual License

This project is dual-licensed:

  • MIT License - Free for individuals, personal projects, and non-commercial use
  • 💼 Commercial License - Required for businesses and commercial applications

Read full licensing details | Get Commercial License


Features

  • Black-Scholes Pricing - Fast, accurate options pricing
  • Greeks Calculations - Delta, gamma, theta, vega, rho
  • Dealer Exposure Metrics - GEX, VEX, and CEX exposures
  • Implied Volatility & Surfaces - Calculate IV from market prices and build volatility surfaces
  • Implied PDF - Risk-neutral probability density functions
  • Real-Time Data - Stream normalized options data from multiple brokers
  • Broker-Agnostic - Normalize data from any broker
  • Type-Safe - Full TypeScript support
  • Zero Dependencies - Lightweight and fast

Broker Support Roadmap

Due to the overwhelming variety of how broker APIs structure their data (and how they make it available), there is a wide variety of how much support we can provide out-of-the-box for different brokers, summarized in this table:

BrokerBlack-ScholesGreeksOpen Interest Based ExposuresOptions-Book Based ExposuresImplied PDF CalculationsSPX / NDX 0DTE Data
Tradier (via WebSocket)
Tastytrade (via WebSocket - DXLink Streamer)Not yet tested
TradeStation (via HTTP Streaming)Not yet tested
Schwab (via WebSocket)Not yet tested
Interactive Brokers (via WebSocket)Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*

*Due to the high capital requirements for an Interactive Brokers integration, no integration with them is currently planned.

Ideally all aspects of floe will be available for all brokers, but this will take time to determine as we work through the various data structures and formats that each broker provides.

Unsupported Brokers

The following brokers have no public API:

  • Fidelity
  • Robinhood

If your broker is not listed above, you can still use floe by normalizing your broker's data structures to match the expected input types. With options, you can get quite far with floe just by having the market price for the underlying and each option. (From those alone you can back out the IV, greeks, and exposures.)

Installation

npm install @fullstackcraftllc/floe

License

Free for Individuals - Use the MIT License for personal, educational, and non-commercial projects.

Commercial License Required - Businesses and commercial applications must obtain a commercial license.

See LICENSE.md for full details.

Need a Commercial License? Contact us at hi@fullstackcraft.com

Pricing

Contact hi@fullstackcraft.com for pricing

Contributing

Contributions are welcome! Please open an issue or PR.

By contributing, you agree that your contributions will be licensed under the same dual-license terms.

Credits

Copyright © 2025 Built with ❤️ by Full Stack Craft LLC

About

Fast, type-safe options analytics library for TypeScript. Black-Scholes pricing, Greeks (delta, gamma, vanna, charm), and dealer exposure metrics with broker-agnostic data normalization.

Resources

Contributing

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

floe

npmLicenseTypeScript

Zero-dependency TypeScript functions for options flow: Black-Scholes, greeks, IV surfaces, dealer exposures, implied PDFs, and more, with a clean, type-safe API. Broker agnostic. Stream data from a variety of brokers with a uniform API. Built for use in trading platforms and fintech applications.

The same library that is used in Full Stack Craft's various fintech products including The Wheel Screener, LEAPS Screener, Option Screener, AMT JOY, and VannaCharm.

Quick Start / Documentation / Examples

fullstackcraft.github.io/floe

📋 Dual License

This project is dual-licensed:

  • MIT License - Free for individuals, personal projects, and non-commercial use
  • 💼 Commercial License - Required for businesses and commercial applications

Read full licensing details | Get Commercial License


Features

  • Black-Scholes Pricing - Fast, accurate options pricing
  • Greeks Calculations - Delta, gamma, theta, vega, rho
  • Dealer Exposure Metrics - GEX, VEX, and CEX exposures
  • Implied Volatility & Surfaces - Calculate IV from market prices and build volatility surfaces
  • Implied PDF - Risk-neutral probability density functions
  • Real-Time Data - Stream normalized options data from multiple brokers
  • Broker-Agnostic - Normalize data from any broker
  • Type-Safe - Full TypeScript support
  • Zero Dependencies - Lightweight and fast

Broker Support Roadmap

Due to the overwhelming variety of how broker APIs structure their data (and how they make it available), there is a wide variety of how much support we can provide out-of-the-box for different brokers, summarized in this table:

BrokerBlack-ScholesGreeksOpen Interest Based ExposuresOptions-Book Based ExposuresImplied PDF CalculationsSPX / NDX 0DTE Data
Tradier (via WebSocket)
Tastytrade (via WebSocket - DXLink Streamer)Not yet tested
TradeStation (via HTTP Streaming)Not yet tested
Schwab (via WebSocket)Not yet tested
Interactive Brokers (via WebSocket)Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*

*Due to the high capital requirements for an Interactive Brokers integration, no integration with them is currently planned.

Ideally all aspects of floe will be available for all brokers, but this will take time to determine as we work through the various data structures and formats that each broker provides.

Unsupported Brokers

The following brokers have no public API:

  • Fidelity
  • Robinhood

If your broker is not listed above, you can still use floe by normalizing your broker's data structures to match the expected input types. With options, you can get quite far with floe just by having the market price for the underlying and each option. (From those alone you can back out the IV, greeks, and exposures.)

Installation

npm install @fullstackcraftllc/floe

License

Free for Individuals - Use the MIT License for personal, educational, and non-commercial projects.

Commercial License Required - Businesses and commercial applications must obtain a commercial license.

See LICENSE.md for full details.

Need a Commercial License? Contact us at hi@fullstackcraft.com

Pricing

Contact hi@fullstackcraft.com for pricing

Contributing

Contributions are welcome! Please open an issue or PR.

By contributing, you agree that your contributions will be licensed under the same dual-license terms.

Credits

Copyright © 2025 Built with ❤️ by Full Stack Craft LLC

About

Fast, type-safe options analytics library for TypeScript. Black-Scholes pricing, Greeks (delta, gamma, vanna, charm), and dealer exposure metrics with broker-agnostic data normalization.

Resources

Contributing

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

floe

npmLicenseTypeScript

Zero-dependency TypeScript functions for options flow: Black-Scholes, greeks, IV surfaces, dealer exposures, implied PDFs, and more, with a clean, type-safe API. Broker agnostic. Stream data from a variety of brokers with a uniform API. Built for use in trading platforms and fintech applications.

The same library that is used in Full Stack Craft's various fintech products including The Wheel Screener, LEAPS Screener, Option Screener, AMT JOY, and VannaCharm.

Quick Start / Documentation / Examples

fullstackcraft.github.io/floe

📋 Dual License

This project is dual-licensed:

  • MIT License - Free for individuals, personal projects, and non-commercial use
  • 💼 Commercial License - Required for businesses and commercial applications

Read full licensing details | Get Commercial License


Features

  • Black-Scholes Pricing - Fast, accurate options pricing
  • Greeks Calculations - Delta, gamma, theta, vega, rho
  • Dealer Exposure Metrics - GEX, VEX, and CEX exposures
  • Implied Volatility & Surfaces - Calculate IV from market prices and build volatility surfaces
  • Implied PDF - Risk-neutral probability density functions
  • Real-Time Data - Stream normalized options data from multiple brokers
  • Broker-Agnostic - Normalize data from any broker
  • Type-Safe - Full TypeScript support
  • Zero Dependencies - Lightweight and fast

Broker Support Roadmap

Due to the overwhelming variety of how broker APIs structure their data (and how they make it available), there is a wide variety of how much support we can provide out-of-the-box for different brokers, summarized in this table:

BrokerBlack-ScholesGreeksOpen Interest Based ExposuresOptions-Book Based ExposuresImplied PDF CalculationsSPX / NDX 0DTE Data
Tradier (via WebSocket)
Tastytrade (via WebSocket - DXLink Streamer)Not yet tested
TradeStation (via HTTP Streaming)Not yet tested
Schwab (via WebSocket)Not yet tested
Interactive Brokers (via WebSocket)Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*

*Due to the high capital requirements for an Interactive Brokers integration, no integration with them is currently planned.

Ideally all aspects of floe will be available for all brokers, but this will take time to determine as we work through the various data structures and formats that each broker provides.

Unsupported Brokers

The following brokers have no public API:

  • Fidelity
  • Robinhood

If your broker is not listed above, you can still use floe by normalizing your broker's data structures to match the expected input types. With options, you can get quite far with floe just by having the market price for the underlying and each option. (From those alone you can back out the IV, greeks, and exposures.)

Installation

npm install @fullstackcraftllc/floe

License

Free for Individuals - Use the MIT License for personal, educational, and non-commercial projects.

Commercial License Required - Businesses and commercial applications must obtain a commercial license.

See LICENSE.md for full details.

Need a Commercial License? Contact us at hi@fullstackcraft.com

Pricing

Contact hi@fullstackcraft.com for pricing

Contributing

Contributions are welcome! Please open an issue or PR.

By contributing, you agree that your contributions will be licensed under the same dual-license terms.

Credits

Copyright © 2025 Built with ❤️ by Full Stack Craft LLC

About

Fast, type-safe options analytics library for TypeScript. Black-Scholes pricing, Greeks (delta, gamma, vanna, charm), and dealer exposure metrics with broker-agnostic data normalization.

Resources

Contributing

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

floe

npmLicenseTypeScript

Zero-dependency TypeScript functions for options flow: Black-Scholes, greeks, IV surfaces, dealer exposures, implied PDFs, and more, with a clean, type-safe API. Broker agnostic. Stream data from a variety of brokers with a uniform API. Built for use in trading platforms and fintech applications.

The same library that is used in Full Stack Craft's various fintech products including The Wheel Screener, LEAPS Screener, Option Screener, AMT JOY, and VannaCharm.

Quick Start / Documentation / Examples

fullstackcraft.github.io/floe

📋 Dual License

This project is dual-licensed:

  • MIT License - Free for individuals, personal projects, and non-commercial use
  • 💼 Commercial License - Required for businesses and commercial applications

Read full licensing details | Get Commercial License


Features

  • Black-Scholes Pricing - Fast, accurate options pricing
  • Greeks Calculations - Delta, gamma, theta, vega, rho
  • Dealer Exposure Metrics - GEX, VEX, and CEX exposures
  • Implied Volatility & Surfaces - Calculate IV from market prices and build volatility surfaces
  • Implied PDF - Risk-neutral probability density functions
  • Real-Time Data - Stream normalized options data from multiple brokers
  • Broker-Agnostic - Normalize data from any broker
  • Type-Safe - Full TypeScript support
  • Zero Dependencies - Lightweight and fast

Broker Support Roadmap

Due to the overwhelming variety of how broker APIs structure their data (and how they make it available), there is a wide variety of how much support we can provide out-of-the-box for different brokers, summarized in this table:

BrokerBlack-ScholesGreeksOpen Interest Based ExposuresOptions-Book Based ExposuresImplied PDF CalculationsSPX / NDX 0DTE Data
Tradier (via WebSocket)
Tastytrade (via WebSocket - DXLink Streamer)Not yet tested
TradeStation (via HTTP Streaming)Not yet tested
Schwab (via WebSocket)Not yet tested
Interactive Brokers (via WebSocket)Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*

*Due to the high capital requirements for an Interactive Brokers integration, no integration with them is currently planned.

Ideally all aspects of floe will be available for all brokers, but this will take time to determine as we work through the various data structures and formats that each broker provides.

Unsupported Brokers

The following brokers have no public API:

  • Fidelity
  • Robinhood

If your broker is not listed above, you can still use floe by normalizing your broker's data structures to match the expected input types. With options, you can get quite far with floe just by having the market price for the underlying and each option. (From those alone you can back out the IV, greeks, and exposures.)

Installation

npm install @fullstackcraftllc/floe

License

Free for Individuals - Use the MIT License for personal, educational, and non-commercial projects.

Commercial License Required - Businesses and commercial applications must obtain a commercial license.

See LICENSE.md for full details.

Need a Commercial License? Contact us at hi@fullstackcraft.com

Pricing

Contact hi@fullstackcraft.com for pricing

Contributing

Contributions are welcome! Please open an issue or PR.

By contributing, you agree that your contributions will be licensed under the same dual-license terms.

Credits

Copyright © 2025 Built with ❤️ by Full Stack Craft LLC

About

Fast, type-safe options analytics library for TypeScript. Black-Scholes pricing, Greeks (delta, gamma, vanna, charm), and dealer exposure metrics with broker-agnostic data normalization.

Resources

Contributing

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

floe

npmLicenseTypeScript

Zero-dependency TypeScript functions for options flow: Black-Scholes, greeks, IV surfaces, dealer exposures, implied PDFs, and more, with a clean, type-safe API. Broker agnostic. Stream data from a variety of brokers with a uniform API. Built for use in trading platforms and fintech applications.

The same library that is used in Full Stack Craft's various fintech products including The Wheel Screener, LEAPS Screener, Option Screener, AMT JOY, and VannaCharm.

Quick Start / Documentation / Examples

fullstackcraft.github.io/floe

📋 Dual License

This project is dual-licensed:

  • MIT License - Free for individuals, personal projects, and non-commercial use
  • 💼 Commercial License - Required for businesses and commercial applications

Read full licensing details | Get Commercial License


Features

  • Black-Scholes Pricing - Fast, accurate options pricing
  • Greeks Calculations - Delta, gamma, theta, vega, rho
  • Dealer Exposure Metrics - GEX, VEX, and CEX exposures
  • Implied Volatility & Surfaces - Calculate IV from market prices and build volatility surfaces
  • Implied PDF - Risk-neutral probability density functions
  • Real-Time Data - Stream normalized options data from multiple brokers
  • Broker-Agnostic - Normalize data from any broker
  • Type-Safe - Full TypeScript support
  • Zero Dependencies - Lightweight and fast

Broker Support Roadmap

Due to the overwhelming variety of how broker APIs structure their data (and how they make it available), there is a wide variety of how much support we can provide out-of-the-box for different brokers, summarized in this table:

BrokerBlack-ScholesGreeksOpen Interest Based ExposuresOptions-Book Based ExposuresImplied PDF CalculationsSPX / NDX 0DTE Data
Tradier (via WebSocket)
Tastytrade (via WebSocket - DXLink Streamer)Not yet tested
TradeStation (via HTTP Streaming)Not yet tested
Schwab (via WebSocket)Not yet tested
Interactive Brokers (via WebSocket)Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*

*Due to the high capital requirements for an Interactive Brokers integration, no integration with them is currently planned.

Ideally all aspects of floe will be available for all brokers, but this will take time to determine as we work through the various data structures and formats that each broker provides.

Unsupported Brokers

The following brokers have no public API:

  • Fidelity
  • Robinhood

If your broker is not listed above, you can still use floe by normalizing your broker's data structures to match the expected input types. With options, you can get quite far with floe just by having the market price for the underlying and each option. (From those alone you can back out the IV, greeks, and exposures.)

Installation

npm install @fullstackcraftllc/floe

License

Free for Individuals - Use the MIT License for personal, educational, and non-commercial projects.

Commercial License Required - Businesses and commercial applications must obtain a commercial license.

See LICENSE.md for full details.

Need a Commercial License? Contact us at hi@fullstackcraft.com

Pricing

Contact hi@fullstackcraft.com for pricing

Contributing

Contributions are welcome! Please open an issue or PR.

By contributing, you agree that your contributions will be licensed under the same dual-license terms.

Credits

Copyright © 2025 Built with ❤️ by Full Stack Craft LLC

About

Fast, type-safe options analytics library for TypeScript. Black-Scholes pricing, Greeks (delta, gamma, vanna, charm), and dealer exposure metrics with broker-agnostic data normalization.

Resources

Contributing

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

floe

npmLicenseTypeScript

Zero-dependency TypeScript functions for options flow: Black-Scholes, greeks, IV surfaces, dealer exposures, implied PDFs, and more, with a clean, type-safe API. Broker agnostic. Stream data from a variety of brokers with a uniform API. Built for use in trading platforms and fintech applications.

The same library that is used in Full Stack Craft's various fintech products including The Wheel Screener, LEAPS Screener, Option Screener, AMT JOY, and VannaCharm.

Quick Start / Documentation / Examples

fullstackcraft.github.io/floe

📋 Dual License

This project is dual-licensed:

  • MIT License - Free for individuals, personal projects, and non-commercial use
  • 💼 Commercial License - Required for businesses and commercial applications

Read full licensing details | Get Commercial License


Features

  • Black-Scholes Pricing - Fast, accurate options pricing
  • Greeks Calculations - Delta, gamma, theta, vega, rho
  • Dealer Exposure Metrics - GEX, VEX, and CEX exposures
  • Implied Volatility & Surfaces - Calculate IV from market prices and build volatility surfaces
  • Implied PDF - Risk-neutral probability density functions
  • Real-Time Data - Stream normalized options data from multiple brokers
  • Broker-Agnostic - Normalize data from any broker
  • Type-Safe - Full TypeScript support
  • Zero Dependencies - Lightweight and fast

Broker Support Roadmap

Due to the overwhelming variety of how broker APIs structure their data (and how they make it available), there is a wide variety of how much support we can provide out-of-the-box for different brokers, summarized in this table:

BrokerBlack-ScholesGreeksOpen Interest Based ExposuresOptions-Book Based ExposuresImplied PDF CalculationsSPX / NDX 0DTE Data
Tradier (via WebSocket)
Tastytrade (via WebSocket - DXLink Streamer)Not yet tested
TradeStation (via HTTP Streaming)Not yet tested
Schwab (via WebSocket)Not yet tested
Interactive Brokers (via WebSocket)Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*Not currently planned*

*Due to the high capital requirements for an Interactive Brokers integration, no integration with them is currently planned.

Ideally all aspects of floe will be available for all brokers, but this will take time to determine as we work through the various data structures and formats that each broker provides.

Unsupported Brokers

The following brokers have no public API:

  • Fidelity
  • Robinhood

If your broker is not listed above, you can still use floe by normalizing your broker's data structures to match the expected input types. With options, you can get quite far with floe just by having the market price for the underlying and each option. (From those alone you can back out the IV, greeks, and exposures.)

Installation

npm install @fullstackcraftllc/floe

License

Free for Individuals - Use the MIT License for personal, educational, and non-commercial projects.

Commercial License Required - Businesses and commercial applications must obtain a commercial license.

See LICENSE.md for full details.

Need a Commercial License? Contact us at hi@fullstackcraft.com

Pricing

Contact hi@fullstackcraft.com for pricing

Contributing

Contributions are welcome! Please open an issue or PR.

By contributing, you agree that your contributions will be licensed under the same dual-license terms.

Credits

Copyright © 2025 Built with ❤️ by Full Stack Craft LLC

About

Fast, type-safe options analytics library for TypeScript. Black-Scholes pricing, Greeks (delta, gamma, vanna, charm), and dealer exposure metrics with broker-agnostic data normalization.

Resources

Contributing

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages