{"uid":"cap_TbZWM76YsDFhzr9SmfBSF","slug":"derivatives-pricer-scenario-from-surface-7b23010c","name":"Derivatives Pricer – Scenario from Surface","description":"x402-paid Black-Scholes European option pricing, Greeks, IV surfaces, price/scenario on submitted smiles (TV bilinear), portfolio risk, free demo, and MCP. USDC exact on Solana (PayAI) and/or Base (CDP when configured). Receive wallets appear only in HTTP 402, never on free discovery.","url":"https://derivatives-pricer-production.up.railway.app/v1/option/scenario-from-surface","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"rate":{"type":"number"},"sticky":{"enum":["moneyness","strike","fixed_vol"],"type":"string"},"options":{"type":"array","maxItems":50,"minItems":1},"surface":{"type":"array","maxItems":200,"minItems":1},"scenario":{"type":"object"},"wingRule":{"type":"string","const":"flat_vol"},"positions":{"type":"array","maxItems":50,"minItems":1},"dividendYield":{"type":"number","minimum":0},"interpolation":{"type":"string","const":"total_variance_bilinear"},"surfaceConvention":{"type":"string","const":"log_moneyness_forward"}}},"responseSchema":{"type":"json","example":{"book":{"valueBase":10.45057562,"deltaValue":7.36197848,"greeksBase":{"rho":53.23248343,"vega":37.52403469,"delta":0.63683059,"gamma":0.01876202,"theta":-6.41402764},"greeksNote":"Greeks are analytic BS Greeks at sticky/scenario σ — NOT full smile-recalibrated bump deltas","valueScenario":17.8125541,"greeksScenario":{"rho":69.26443492,"vega":31.55892407,"delta":0.79160899,"gamma":0.01273721,"theta":-6.69435438}},"legs":[{"base":{"k":0,"price":10.45057562,"greeks":{"rho":53.23248343,"vega":37.52403469,"delta":0.63683059,"gamma":0.01876202,"theta":-6.41402764},"forward":100,"impliedVol":0.2,"underlying":100,"contribution":10.45057562,"timeToExpiry":1},"index":0,"strike":100,"quantity":1,"scenario":{"k":-0.09531018,"price":17.8125541,"greeks":{"rho":69.26443492,"vega":31.55892407,"delta":0.79160899,"gamma":0.01273721,"theta":-6.69435438},"forward":110,"impliedVol":0.20476824,"underlying":110,"contribution":17.8125541,"timeToExpiry":1},"deltaValue":7.36197848,"optionType":"call"}],"model":"black-scholes-merton+surface-tv-bilinear","sticky":"moneyness","scenario":{"rateBp":0,"volAbs":0,"volRel":0,"timeDays":0,"smileTwist":0,"rateScenario":0.05,"underlyingRel":0.1},"warnings":[],"requestId":"00000000-0000-4000-8000-000000000007","computedAt":"2026-01-01T00:00:00.000Z","optionStyle":"european","surfaceMeta":{"kCount":3,"tCount":3,"convention":"log_moneyness_forward","pointCount":9}}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.15","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.15/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.15","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.15","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_ZLZwV4iI7PHsi1f9gs4j3","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.15","costPer":"request","priority":0,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Prices a portfolio of European options and computes Black-Scholes Greeks across base and user-defined scenario states using a submitted implied-vol smile surface with total-variance bilinear interpolation.","exampleAgentPrompt":"I have a portfolio with a long 100-strike call (qty 1, 1-year expiry) on a spot-100 underlying at 5% rate. I've got a 3×3 log-moneyness-forward vol surface. Run a scenario where spot goes up 10% with moneyness-sticky convention and give me the base and scenario prices plus all the Greeks.","exampleUseCases":[{"title":"Options book P&L scenario analysis","prompt":"I'm running a book with two call options and one put, all European, on the same underlying at 5% rate. I have a 9-point implied vol surface in log-moneyness-forward convention. Can you price the whole portfolio in base and also stress it with a +10% spot move and +2 vol points absolute shift using moneyness-sticky interpolation?"},{"title":"Hedge ratio computation under custom smile","prompt":"I need delta and vega for a 6-month 105-strike call on a forward of 100 using my own submitted smile surface — interpolate with total-variance bilinear under the moneyness-sticky convention at a 4% risk-free rate and zero dividend yield, then tell me how the Greeks shift if spot drops 5%."},{"title":"Volatility surface scenario for risk report","prompt":"For our weekly risk report, run a base pricing and a scenario shock of -15% spot and +5 vol points (relative) on our three-leg options portfolio using the IV surface I'm submitting in log-moneyness-forward format — sticky-strike convention, 5% rate, 2% dividend yield, bilinear total-variance interpolation."}],"resultDescription":"Returns a JSON object with a 'book' summary (base value, scenario value, base and scenario aggregate Greeks, delta P&L) and an array of 'legs' detailing per-option base and scenario prices, implied vols, forwards, Greeks, and contributions. Also includes model identifier, sticky convention used, the applied scenario parameters, any warnings, a requestId, timestamp, and surface metadata (point count, tenor count, moneyness count, convention).","failureModes":["Invalid or insufficient surface points (fewer than minItems, or non-monotone tenors/strikes) cause a 400 validation error","Options or positions arrays outside 1–50 item bounds return a 422 schema rejection","Missing required surface convention or interpolation fields cause a 400 error","Payment not provided or insufficient USDC triggers an HTTP 402 with wallet address for payment","Scenario producing extreme extrapolation beyond surface boundary may yield warnings array entries but still return a result","Malformed option definitions (missing expiry, strike, type) cause a 400 parse error"],"whenToPreferThis":"Use this endpoint when you have your own implied volatility surface (as a grid of log-moneyness-forward points) and want to price a portfolio of European options under both current market conditions and a user-defined scenario shock (spot, vol, rate, time). It is the right choice when you need scenario P&L, full Black-Scholes Greeks in base and stressed states, and per-leg attribution — all in a single call. Prefer sibling endpoints for simpler single-option pricing with direct sigma input (no surface needed) or for implied volatility extraction only.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T06:38:33.692Z","isFirstParty":false}