Rust options spread engine for multi-leg construction.

FerroSpread turns a typed option chain into auditable spread candidates: verticals, condors, butterflies, calendars, diagonals, and custom multi-leg structures.

Why this is an engine problem, not a UI filter

!

Hand-built spread enumeration tends to leak edge cases around expirations, ratios, and missing legs.

!

Ranking logic becomes hard to audit when construction, pricing, and explanation live in separate code paths.

!

Spreadsheet-style spread builders cannot carry deterministic IDs and quality lineage into production systems.

How FerroSpread handles it

01

Normalize the chain

Typed chain snapshots enter the engine with explicit expirations, strikes, sides, quotes, and leg-level quality inputs.

02

Construct candidates

The builder enumerates supported spread families under constraints for width, expiration, ratio, and leg availability.

03

Rank with explanations

Candidates are ranked on configurable metrics while preserving the inputs and reasons that made each candidate survive.

What makes this FerroSpread-shaped

Pure-Rust implementation with typed spread structures.

Pricing path delegates to FerroRisk instead of duplicating model math.

Built for products that need reviewable spread recommendations rather than opaque signals.

Common concerns

Is FerroSpread a trading strategy?

No. FerroSpread is an engine component for construction, ranking, and explanation. It does not decide whether a trade should be placed.

Can it support custom multi-leg structures?

Yes. The public positioning covers the standard taxonomy plus custom-leg builds and per-leg ratio support.