Fin Maverick
Foundations VocabularyAccounting & ReportingEconomics & MacroQuant Methods & ProgrammingBusiness & Company AnalysisCorporate Finance & ValuationBehavioural Finance
Banking & Market InfrastructureFixed Income & RatesDerivatives & Structured ProductsPublic EquitiesTransactions & DealsPortfolio ConstructionFunds & AMCs
Private Markets & AlternativesRisk, Treasury & ControlAI & Digital FinanceStochastic Calculus & PricingWealth & Personal FinanceIndian Markets & RegulationProfessional Practice
CalculatorComparison
Frameworks
Explore Bootcamps
Equity ResearchPortfolio ManagementMutual Fund MasteryFinancial LiteracyInvestment Banking Analyst
Private Equity AnalystHedge Funds AnalystBreaking Into VCBreaking Into QuantsAI For Finance
Financial Analyst ProgramRisk Management ProgramPrivate Wealth ManagementDebt Capital MarketsDerivatives Foundation
Explore Internships
Equity Research InternMutual Fund Intern
Portfolio Management InternFinancial Literacy Intern
Explore Micro Courses

Equity Research6

Writing an Investment ThesisBuilding a Discounted Cash FlowReading an Annual Report FastReading a Sector Before a CompanySpotting Quality of Earnings Red FlagsBuilding a Revenue Forecast From Drivers

Portfolio Management3

Rebalancing: When, Why and What It CostsStrategic and Tactical Asset AllocationMeasuring Risk in a Portfolio

Mutual Fund Mastery3

Comparing Funds Without Being FooledHow a NAV Is Struck and Which Day You GetReading a Fund Factsheet Properly

Derivatives Unlocked4

Hedging a Real ExposureThe Greeks, PracticallyFutures, the Basis and What Moves ItReading an Option Payoff

AI For Finance2

Retrieval and Grounding for FinanceDocument Extraction in Finance

Breaking Into Quants4

Backtesting a StrategyHypothesis TestingCleaning Financial DataRegression for Finance

Breaking Into VC3

Sizing a MarketReading a Term Sheet as a FounderHow a Venture Round Actually Works

Financial Analyst Program4

Common Size and Trend AnalysisReading a Cash Flow StatementRatio Analysis That Says SomethingBuilding a Working Capital Schedule

Risk Management Program2

Credit Exposure and How It Is ReducedValue at Risk and What It Hides

Investment Banking Analyst3

Precedent Transactions and Why They DifferReading a Term Sheet StructurallyBuilding a Comparable Companies Table

Private Wealth Management3

Tax Aware Portfolio DecisionsBuilding a Client Risk ProfileGoal Based Planning Arithmetic

Debt Capital Markets3

Analysing an Issuer's CreditDuration and What It Does Not Tell YouBond Pricing and Yield Mechanics

Private Equity Analyst2

Fund Waterfalls and CarryThe LBO in Structure

Hedge Funds Analyst2

Short Selling MechanicsLong Short Mechanics
Courses
Explore Career Roadmaps
Investment Banking AnalystEquity Research AnalystVC AnalystPrivate Equity AnalystHedge Funds Analyst
Quant AnalystAI For FinanceFinancial Analyst ProgramPrivate Wealth ManagementDebt Capital Markets
Risk Management ProgramDerivatives FoundationPortfolio ManagementMutual Fund Mastery
PartnershipsShowdown
Log inSign up
Quant Analyst · CoreTrack
1Quantitative Methods, Financial Data & Programming
iProbability
Probability in FinanceRandom VariableProbability DistributionsThe Normal DistributionNormal Distribution ProbabilityThe Lognormal DistributionRandomness vs Uncertainty
iiStatistics and Inference
Population and SampleMean, Median and ModePrecision and AccuracyVariable TypesVariance, Standard Deviation and…Dispersion MeasuresStatistical BiasEffect SizeHypothesis TestingThe Sampling DistributionSkewnessKurtosisCovarianceConfidence IntervalArithmetic Mean vs Geometric MeanStatistical Significance vs Economic…Confidence Interval vs Prediction IntervalHow to Summarise a…
iiiCorrelation and Regression
RegressionCorrelation and CausationOrdinary Least SquaresInteraction TermsRegression CoefficientsRegression vs ClassificationHow to Build a…Spurious CorrelationRegression, Correlation and FitResidualsMulticollinearityAutocorrelation and Partial Autocorrelation
ivTime Series
Time Series in FinanceSimple, Weighted and Exponential…Moving Average CalculatorPrice, Return and Level SeriesHow to Prepare Time-Series…LagFrequencySeasonalityTimestampsTrendStationarity and the Unit RootHeteroskedasticityLeadRolling WindowsDifferencing
vSimulation and Numerical Methods
SimulationMonte Carlo SimulationHow to Run a…Numerical MethodsIterationResampling and the BootstrapPseudorandom Numbers and the SeedConvergence and ToleranceNumerical Stability
viOptimisation
OptimisationLocal and Global OptimaConstraintsConvex OptimisationThe SolverLinear ProgrammingThe Objective FunctionConstraint ViolationThe Feasible SetLagrange MultipliersQuadratic Programming
viiModelling Practice
Linear, Logistic, Ridge and…Training, Validation and Test…The ModelModel ErrorDependent and Independent VariablesThe ROC Curve and AUCWhat a Model HoldsMSE, RMSE, MAE and MAPEPrecision and RecallCross Validation and RegularisationOverfitting and UnderfittingReturn Series MeasuresSimple, Compound and Log Return
viiiBacktesting and Research Integrity
BacktestingBacktest vs Live PerformanceHow to Document a…How to Prevent Backtest…Out-of-Sample TestingWalk-Forward AnalysisMultiple TestingP-HackingData Snooping
ixData Quality and Structure
Data QualityThe DatasetSelection and Survivorship BiasVersioned DatasetsData Structures in FinanceData CleaningMissing Data and Null ValuesStructured Data vs Unstructured DataMissing Data vs ZeroData Validation vs Data CleaningOutliersDuplicate Records
xProgramming for Finance
Data PipelinesAPIs for Financial DataAPI vs CSV FileDatabases in FinancePython for FinanceJoinsSQL for FinanceThe Analysis Workflow
xiQuantitative Research
Research DesignThe Data Generating ProcessReproducibilityPeer Review in Analytical WorkThe Research HypothesisRobustness and Sensitivity
2Stochastic Calculus & Derivative Pricing Theory
iProbability Foundations
The Probability SpaceRandom VectorsSigma-AlgebraExpectationSample Space and EventsDensity and Distribution FunctionsRisk-Neutral ProbabilityState Price Density vs…
iiStochastic Processes and Jumps
Properties of a Stochastic ProcessMartingaleBrownian Motion and Its PropertiesBrownian Motion vs Geometric…Stopping TimeThe Markov PropertyState VariablesTransition ProbabilityQuadratic VariationQuadratic Variation vs Ordinary…Submartingale and SupermartingaleMartingale RepresentationMarkov Process vs MartingaleOptional StoppingFiltrationJump ProcessesThe Poisson ProcessLevy ProcessesJump Diffusion
iiiIto Calculus
The Ito IntegralThe Ito Integral vs the Riemann IntegralInfinitesimals in Stochastic CalculusQuadratic CovariationIto's LemmaHow to Apply Ito's…The Infinitesimal GeneratorIto Calculus vs Ordinary Calculus
ivStochastic Differential Equations
Stochastic Differential EquationsStochastic Differential Equation vs…Drift and DiffusionStrong and Weak Solutions ComparedDiscretisationGeometric Brownian Motion
vPricing Theory and No-Arbitrage
No-ArbitrageGirsanov, Radon-Nikodym and Change…Physical and Risk-Neutral Measures…The Fundamental Theorems of…The Law of One PriceThe Pricing KernelDiscount Factors and Zero-Coupon PricesReplication vs HedgingComplete Market vs Incomplete MarketClearing Margin Architecture
viOption Pricing Theory
European and American OptionsMonte Carlo European OptionThe Black-Scholes PDEBlack Scholes and the GreeksThe Payoff FunctionThe Binomial ModelBinomial Option PricingDelta Hedging in TheoryBoundary, Initial and Terminal ConditionsThe Exercise BoundaryHow to Check Put-Call…
viiVolatility Models
Constant, Local and Stochastic…Vasicek Model vs CIR ModelThe Heston ModelThe SABR ModelThe Volatility ProcessImplied VolatilityVolatility Smile vs Skew vs Surface
viiiInterest Rate Models
Interest-Rate DerivativesMean ReversionThe Zero-Coupon BondThe Ornstein-Uhlenbeck ProcessThe Discount CurveZero RatesShort-Rate Model vs Market Model
ixNumerical Pricing
Closed Form and Numerical…Monte Carlo PricingEuler and Milstein Schemes ComparedTree MethodsFinite Difference MethodsNumerical Error and StabilityVariance Reduction
xCalibration and Model Risk
Model OverrideMarket Price and Model PriceCalibrationHow to Document a Pricing ModelThe Educational Illustration LabelMarket ConventionsModel Uncertainty and LimitationsBacktesting a Pricing ModelIdentifiabilityCalibrated ParametersThe Calibration Loss Function

How to Check Put-Call Parity in Seven Ordered Steps

Checking parity takes seven steps in a fixed order: confirm the two contracts share a strike and a horizon, note both prices, take their difference with its sign, note the level and the rate with its convention, compute the discounted strike, subtract it from the level, and compare the two figures against a tolerance stated in advance. The order matters.

Every one of the seven steps is mechanical once the four quantities are in hand. There is arithmetic in five of them and nothing else at all. The seventh asks for a judgement, and it is the only one that does: how close two figures have to be before they can be called the same. How close is close enough is a decision to be stated out loud, not a number to be looked up somewhere.

What is written down before checking anything?

Weighing something on two different scales to find out whether the scales agree does not begin with the readings. The weighing begins with making sure both scales have the same object on them, and that both are reading in the same units. Only then does a difference between the two readings say anything about the scales. Taken back to front, an afternoon goes into adjusting a perfectly good scale because a different bag was weighed on it.

The check for parityThe identity linking the two contracts, the level of the process and the discounted strike. Checking the identity takes seven steps; explaining why it holds is a separate matter. has exactly that shape, and the first step is the one that corresponds to putting the same object on both scales. Before any arithmetic happens the pair being checked is written down and confirmed to be a matched pairTwo contracts sharing one strike and one horizon. Without that, the identity being tested is not a statement about the pair at hand.. Everything after that is subtraction.

The worked case throughout is an invented standard process, written S with a time subscript, starting at Rs 100/- with a volatility of 20 per cent a year, a risk-free rate of 5 per cent a year compounded continuously, and a horizon of one year. Every price below follows from those four parameters by arithmetic alone, so a reader who wants to check one can recompute it.

The identity the seven steps test
$$ C_t \;-\; P_t \;=\; S_t \;-\; K\,e^{-r(T-t)} $$
\(C_t\)the price today of the first contract of the pair
\(P_t\)the price today of the second contract of the pair, which here is a price and not the physical measure P used elsewhere in this subject area
\(S_t\)the level of the standard process today, Rs 100/- here
\(K\)the strike shared by both contracts
\(r\)the risk-free rate, 0.05 a year here, compounded continuously
\(T-t\)the time remaining to the shared horizon, one year here
What it says in wordsThe price of the first contract less the price of the second must come out at the level of the process today less the strike discounted back over the time remaining, and the seven steps below are simply the order in which each half is computed and the two put side by side.

Notice what the right hand side asks for and what it does not. The right hand side asks for a level, a strike, a rate and a length of time. Nowhere does it ask for a volatility, a drift, a distribution or a measure. Four demands and no model is why the check can be run on a pair of prices by someone who has none, and why the procedure below is short.

THE SEVEN STEPS, AND THE ONE THAT GATES THE REST 1 Confirm the pair is matched on strike and horizon 2 Note both prices, and which one is which 3 Take the difference, keeping its sign 4 Note the level, the rate and the rate's convention 5 Compute the discounted strike 6 Take the level less the discounted strike 7 Compare the two figures against a stated tolerance IF STEP ONE FAILS steps two to seven still compute perfectly, and the answer they produce still means absolutely nothing Six of the seven steps are arithmetic. Only the seventh asks for a decision.
The seven steps run in a fixed order because the first one invalidates every step below it when it is skipped, and the six that follow will still produce a clean number.

Step one: do the two contracts share a strike and a horizon?

Write both contracts down side by side with their strike and their horizon showing, and confirm the two strikes are the same number and the two horizons are the same date. Confirming those two things is the whole of step one. Step one takes about four seconds and it is the only step whose failure cannot be repaired later.

A step that takes four seconds and feels like a formality is exactly the step that gets skipped, and this one carries every other step on its back. The reason it feels like a formality is that in most working sheets the pair really is matched, so the check passes ninety-nine times out of a hundred and starts to look like ceremony. The hundredth time is what the step exists for.

Two things count as a mismatch and both are easy to walk past. The first is a strike difference. The two numbers sit next to each other, so a difference is usually obvious on inspection. The second is a horizon difference, and it is far less obvious. A horizon is often carried as a date rather than as a length of time, and two dates a few weeks apart look similar on a screen. On the worked case here the horizon is one year for both contracts, written as 1.000, and step one passes.

Record the outcome of step one rather than just performing it. A check that reports agreement without recording that the pair was matched has left out the part that makes the agreement mean anything, in the same way that a weight recorded without the units is not a weight.

Try it out

Two contracts share a strike but not a horizon. All seven steps are run carefully. What does the check tell the person running it?

Step two: which price belongs to which contract?

Now write the two prices down, each against the contract it belongs to. On the worked case at a strike of Rs 100/-, the first contract prices at Rs 10.450584/- and the second at Rs 5.573526/-. Both are computed from the four parameters of the standard process using the solution that carries the names of Black, Scholes and Merton, 1973.

The whole check needs four quantities and no more: the two prices, the level of the process, and the discounted strike. Naming those four up front is what stops the procedure sprawling. When a check does not come out there is a strong pull to start adding inputs to it. The pull is worth resisting. A check with six inputs has six places to be wrong and this one has four.

Which price is which matters because step three takes a difference and a difference has a direction. The two prices are labelled as they are written down. When a sheet carries them in columns, the column headings are confirmed before the subtraction rather than after. A column swap produces a number of exactly the right size pointing exactly the wrong way, and that is the hardest kind of error to spot by eye.

THE CHECK SHEET: FOUR QUANTITIES IN, NOTHING ELSE PRICE, FIRST CONTRACT Rs 10.450584/- step two PRICE, SECOND CONTRACT Rs 5.573526/- step two THE LEVEL OF THE PROCESS TODAY Rs 100/- step four THE DISCOUNTED STRIKE Rs 95.122942/- step five AND FOUR THINGS THE CHECK NEVER ASKS FOR the volatility the drift the measures P and Q any model at all Four boxes to fill and four to leave empty. Every value shown is an educational illustration computed from the four invented parameters of the standard process at a strike of Rs 100/- and a horizon of one year.
The check needs exactly four quantities and naming them at the start is what stops the procedure sprawling into inputs it never required.
Try it out

How many quantities does the whole check need?

Try it out

Does the check need the volatility of the standard process anywhere in its seven steps?

Step three: what is the difference, and which way does it point?

Subtract the second price from the first and keep the answer exactly as it comes out, including its signThe direction of a difference, positive or negative. A sign carries information rather than decorating the number.. On the worked case at a strike of Rs 100/-, Rs 10.450584/- less Rs 5.573526/- is Rs 4.877058/-, and the sign is positive. The difference just taken is the left hand figure of the comparison, and step three is finished.

The left hand figure
$$ L \;=\; C_t \;-\; P_t $$
\(L\)the left hand figure of the comparison, in rupees, carrying a sign
\(C_t\)the price of the first contract of the matched pair
\(P_t\)the price of the second contract of the matched pair
What it says in wordsThe left hand figure is the first price minus the second price, taken in that order and recorded with whatever sign it comes out with, which is negative whenever the second contract is the dearer of the two.

The sign is not decoration on the number, it is half the information the number carries. Run the same three steps at a strike of Rs 110/- and the prices are Rs 6.040088/- and Rs 10.675325/-, so the difference comes out at minus Rs 4.635237/-. At Rs 100/- it was plus Rs 4.877058/-. Somewhere between those two strikes the left hand figure crossed zero, and the crossing is not an accident of these particular numbers.

Here is why that matters for the procedure rather than for the theory. A check written to report how far apart two figures are, without reporting which side of each other they sit on, throws the sign away at the last moment. Feed it the Rs 100/- pair and it reports 4.877058. Feed it a Rs 110/- pair whose left hand figure has been recorded the wrong way round, as plus Rs 4.635237/- instead of minus, and it reports 4.635237 against a right hand figure of the same size, and calls that a small discrepancy. The discrepancy is not small. A sign error of Rs 9.270473/-, twice the figure itself, is wearing the costume of a rounding difference.

KEEPING THE SIGN, AND WHAT DROPPING IT HIDES STEP THREE DONE PROPERLY: THE DIFFERENCE WITH ITS SIGN zero Rs 80/-, plus 23.901646 Rs 100/-, plus 4.877058 Rs 110/-, minus 4.635237 Rs 120/-, minus 14.147531 THE SAME FOUR WITH THE SIGN DROPPED zero these two now end within three pixels of each other Rs 80/-, size 23.901646 Rs 100/-, size 4.877058 Rs 110/-, size 4.635237 Rs 120/-, size 14.147531 Educational illustration. Level Rs 100/-, rate 5 per cent continuously compounded, one year.
The sign flips as the strike passes the level, so a check that records only the size of the difference makes two quite different readings look like the same reading.

Step four: what level, what rate, and on which convention?

Step four fills the other half of the sheet. Write down the level of the process today, write down the rate, and write down the conventionHow a rate is quoted: continuously compounded, compounded once a year, or on some day count. Without it a rate is a number rather than a discount factor. the rate is quoted on. On the worked case the level is Rs 100/- and the rate is 5 per cent a year compounded continuously.

A rate without its convention is not yet a rate, it is a number, and step five cannot start until the convention is written down. This is the tape measure problem. A measurement of thirty cannot be used until it is known whether it is thirty centimetres or thirty inches. Five per cent is exactly the same. Five per cent compounded continuously over one year gives a discount factor of 0.951229. Five per cent compounded once a year over the same year gives 0.952381. The two factors look alike and are not alike.

The difference between the two conventions carries through the rest of the procedure. On the continuous convention the discounted strike at Rs 100/- is Rs 95.122942/- and the right hand figure is Rs 4.877058/-. On the annual convention the discounted strike is Rs 95.238095/- and the right hand figure is Rs 4.761905/-. The two right hand figures differ by Rs 0.115153/-. A sheet of two decimal prices deserves a tolerance of about a paisa. Against that, the gap is more than eleven times too large, and it reports a violation that exists nowhere except in the convention that went unwritten.

So step four has three entries and not two. Level, rate, convention. A sheet that carries only the first two is a sheet that has not finished step four, however complete it looks.

Try it out

A level, a strike, a horizon and a rate of 5 per cent have been handed over, but nobody has stated the convention. Can step five be completed?

Derivatives Foundation Bootcamp — Fin Maverick

Step five: what is the strike worth discounted back to today?

The strike is multiplied by the discount factor for the horizon on the convention written down in step four. The product is the discounted strikeThe strike multiplied by the discount factor over the remaining horizon. One number, and the check needs no other discounting anywhere., and it is the fourth and last of the quantities the check ever needs.

The discount factor and the discounted strike
$$ D \;=\; e^{-r(T-t)} \qquad\text{and}\qquad K\!\cdot\! D $$
\(D\)the discount factor over the remaining horizon, 0.951229 here
\(r\)the risk-free rate on the stated convention, 0.05 a year here
\(T-t\)the time remaining to the shared horizon, 1.0 year here
\(K\)the strike shared by both contracts of the pair
What it says in wordsThe discount factor is the exponential of minus the rate multiplied by the time remaining when the rate is quoted on a continuously compounded convention, and the discounted strike is the strike multiplied by that factor, which at a strike of Rs 100/- over one year at 5 per cent gives Rs 95.122942/-.

More decimal places are carried here than are intended for the report. The discount factor over one year at 5 per cent continuously compounded is 0.9512294245 to ten places, and rounding it to 0.95 before multiplying costs Rs 0.12/- on a strike of Rs 100/- and Rs 0.15/- on a strike of Rs 120/-. Either error is enough on its own to fail a check that would otherwise pass. Round at the end of the procedure, never in the middle of it.

One discount factor serves the whole sheet when every pair on it shares one horizon. The saving is worth noticing before computing the factor four hundred times. A discount factor depends on the rate and the time remaining and on nothing else, so it is computed once and reused down the column, with only the multiplication by the strike changing from row to row.

Step six: what is left when the discounted strike comes off the level?

Subtract the discounted strike from the level of the process. On the worked case at a strike of Rs 100/-, Rs 100/- less Rs 95.122942/- is Rs 4.877058/-. The remainder is the right hand figure of the comparison, and it carries a sign in exactly the way the left hand figure does.

The right hand figure
$$ R \;=\; S_t \;-\; K\!\cdot\! D $$
\(R\)the right hand figure of the comparison, in rupees, carrying a sign
\(S_t\)the level of the standard process today, Rs 100/- here
\(K\!\cdot\! D\)the discounted strike computed at step five
What it says in wordsThe right hand figure is the level of the process today minus the discounted strike, which is positive when the discounted strike sits below the level and negative when it sits above it, and it uses no price of any contract at all.

When the check is being run down a long sheet, one fact is worth more than any other: the right hand figure is a straight line in the strike, falling by one discount factor for every extra rupee of strike. Move the strike from Rs 80/- to Rs 100/- and the right hand figure falls from Rs 23.901646/- to Rs 4.877058/-, a drop of Rs 19.024588/-, which is exactly twenty times the discount factor of 0.9512294245. Push the strike far enough and the right hand figure goes through zero and turns negative. The crossing is the one seen at step three, viewed from the other side.

Step six also has an omission worth naming. Neither price entered it. The right hand figure is built from the level, the strike, the rate and the time, and if both quoted prices were wiped off the sheet it could still be computed. Because the two sides are built from different material, the comparison at step seven is a comparison and not a restatement.

Risk Management Program Bootcamp — Fin Maverick

Step seven: do the two figures agree inside a stated tolerance?

Put the left hand figure and the right hand figure side by side, take the size of the difference between them, and compare that against a toleranceHow close two figures must be before they can be called equal. A tolerance is a decision, and a check that does not report it has left out its only judgement. decided on before the check started. On the worked case at a strike of Rs 100/- the two figures are Rs 4.877058/- and Rs 4.877058/-, the size of the difference is 0.000000, and the check passes on any tolerance whatsoever.

The test at step seven
$$ \bigl|\,L \;-\; R\,\bigr| \;\le\; \varepsilon $$
\(L\)the left hand figure from step three, with its sign
\(R\)the right hand figure from step six, with its sign
\(\varepsilon\)the tolerance, in rupees, chosen and written down before the check was run
What it says in wordsThe check passes when the size of the difference between the left hand figure and the right hand figure is no greater than the tolerance, and the tolerance is a number chosen and stated rather than a number the arithmetic hands over.

Two points about that tolerance, and the first is why it is never zero. Quoted prices arrive rounded. Rounding the worked pair at a strike of Rs 100/- to two decimal places gives Rs 10.45/- and Rs 5.57/-, whose difference is Rs 4.88/- against a right hand figure of Rs 4.877058/-, a gap of Rs 0.002942/- created entirely by the rounding. The same rounding at the other three strikes leaves gaps of Rs 0.001646/-, Rs 0.004763/- and Rs 0.002469/-. Every one of those four pairs satisfies the identity exactly and every one of them fails a tolerance of zero.

The second point is how to choose it. Two prices each rounded to two decimals can each be out by up to half a paisa, so their difference can be out by up to one paisa, and a tolerance of Rs 0.01/- is the smallest one that a sheet of two decimal quotes can be held to without generating failures that are purely arithmetic. All four gaps above sit inside it with room. A tolerance is chosen the same way as the closeness required of two scale readings: from the precision of the readings, not from how close it would be convenient for them to be.

Then state it in the result. A report that says the pair agrees, without saying to what, has left out the only judgement the whole procedure contained, and a reader of that report cannot tell whether it was checked to a paisa or to a rupee.

THE ONLY STEP THAT ASKS FOR A DECISION THE GAP AT STEP SEVEN, IN RUPEES tolerance stated: Rs 0.01/- 0.000 0.002 0.004 0.006 0.008 0.010 0.012 Rs 80/-, gap 0.001646 Rs 120/-, gap 0.002469 Rs 100/-, gap 0.002942 Rs 110/-, gap 0.004763 INSIDE THE TOLERANCE Report agreement, and report the tolerance used alongside it, or the result cannot be read by anyone. OUTSIDE THE TOLERANCE Go back to the four inputs and to step one, in that order. The four gaps plotted above all sit inside.
Six of the seven steps are arithmetic and the tolerance is a decision, so a result reported without its tolerance has left out the only judgement the check contained.
Try it out

Why is the tolerance at step seven never set to zero?

Debt Capital Markets Bootcamp — Fin Maverick

What does the whole check look like run across four strikes?

Here are the seven steps run four times over, on the same standard process, the same one year horizon and the same 5 per cent continuously compounded rate, with only the strike changing. Every price is computed from the four parameters of the standard process, so the strike is the only thing that changes down the table.

StrikeFirst priceSecond priceLeft figureDiscounted strikeRight figureGap
Rs 80/-24.5888350.687189plus 23.90164676.098354plus 23.9016460.000000
Rs 100/-10.4505845.573526plus 4.87705895.122942plus 4.8770580.000000
Rs 110/-6.04008810.675325minus 4.635237104.635237minus 4.6352370.000000
Rs 120/-3.24747717.395008minus 14.147531114.147531minus 14.1475310.000000

Four strikes, four exact agreements, and the word exact is not being used loosely. The two sides match to the last place double precision arithmetic can hold, around fifteen significant figures. Take the Rs 80/- row and carry it to ten decimals and the left figure is Rs 23.9016460399/- and the right figure is Rs 23.9016460399/-. The residual difference is around seven parts in a thousand million million. The arithmetic has reached the end of its own precision. The two sides are not genuinely differing.

Look down the fourth column and watch the sign flip between the second row and the third. At Rs 100/- the left figure is positive, at Rs 110/- it is negative, and the right hand column flips at exactly the same place because it is the same quantity computed a different way. The crossing point is where the discounted strike equals the level. On these parameters the crossing sits at a strike of Rs 105.127110/-, since Rs 100/- divided by 0.9512294245 gives exactly that.

The practical consequence of four exact agreements is the one worth carrying away. If the identity itself is exact, then any gap ever seen on a real sheet came from somewhere else: from the pair, from the convention, from a stale price, from a level read at a different moment than the prices were. The check does not report which of those it was. The check reports that one of them happened. Reporting that much is genuinely useful.

FOUR STRIKES, FOUR EXACT AGREEMENTS STRIKE LEFT FIGURE RIGHT FIGURE THE TWO MARKERS, MAGNIFIED Rs 80/- plus 23.901646 plus 23.901646 Rs 100/- plus 4.877058 plus 4.877058 Rs 110/- minus 4.635237 minus 4.635237 Rs 120/- minus 14.147531 minus 14.147531 Each strip spans Rs 0.005/- either side of the right figure. At that magnification the two markers are still one marker.
At all four strikes the two sides agree to the precision the arithmetic can hold, so any gap seen in practice came from the inputs rather than from the identity.
Try it out

Four strikes give four exact agreements. So what does a discrepancy on a working sheet actually indicate?

A procedure is finished properly only by running it on a case not already written out, and the calculator below does exactly that. The control moves the strike across the four values in the table and recomputes all seven steps from the formula rather than reading them off a stored list, so the sheet fills in as the strike moves.

Try it out

The strike is about to rise above the level of the process. Before the control moves: what happens to the sign of the left hand figure?

Play with it

Run the seven steps at four strikes and watch the sign turn over

The control moves the strike across Rs 80/-, Rs 100/-, Rs 110/- and Rs 120/-. The upper chart carries the left hand figure at all four strikes against a zero axis, with the selected one picked out. The lower panel is the check sheet itself, and it fills in step by step for the strike chosen. At the default strike of Rs 100/- the sheet reproduces the worked case exactly.

Rs 80/-strike Rs 100/-Rs 120/-
THE LEFT HAND FIGURE ACROSS THE FOUR STRIKES zero Rs 80/-, plus 23.901646 Rs 100/-, plus 4.877058 Rs 110/-, minus 4.635237 Rs 120/-, minus 14.147531 THE SEVEN STEPS, FILLED IN FOR THE CHOSEN STRIKE 1 Matched pair? strike Rs 100/-, horizon 1.000 year, both 2 Both prices Rs 10.450584/- and Rs 5.573526/- 3 Difference, with sign plus Rs 4.877058/- 4 Level and rate Rs 100/-, 5 per cent continuously compounded 5 Discounted strike Rs 95.122942/- 6 Level less that plus Rs 4.877058/- 7 Compare agree, gap 0.000000, inside Rs 0.01/-
Strike
Rs 100/-
Left figure
plus 4.877058
Right figure
plus 4.877058
Gap
0.000000

At a strike of Rs 100/- the two prices are Rs 10.450584/- and Rs 5.573526/-, their difference is plus Rs 4.877058/-, the level less the discounted strike of Rs 95.122942/- is plus Rs 4.877058/-, and the two figures agree with a gap of 0.000000.

Educational illustration. Level Rs 100/-, rate 5 per cent continuously compounded, volatility 20 per cent, horizon one year, and only the strike moves. Every reading is computed from the pricing formula when the control moves and is never sampled, so the same control position always gives the same number. The four sets, with both sides: at Rs 80/- the prices are Rs 24.588835/- and Rs 0.687189/- giving plus Rs 23.901646/- against plus Rs 23.901646/-; at Rs 100/- they are Rs 10.450584/- and Rs 5.573526/- giving plus Rs 4.877058/- against plus Rs 4.877058/-; at Rs 110/- they are Rs 6.040088/- and Rs 10.675325/- giving minus Rs 4.635237/- against minus Rs 4.635237/-; at Rs 120/- they are Rs 3.247477/- and Rs 17.395008/- giving minus Rs 14.147531/- against minus Rs 14.147531/-.
Bond Pricing and Yield Mechanics — free micro-course from Fin Maverick

Where does the procedure go wrong, and at which step?

The procedure goes wrong at step one, and it goes wrong there far more often than at all the other six put together. The reason is not that step one is difficult. Step one is the only step with nothing to compute, so it does not feel like work, and a step that does not feel like work gets treated as a heading rather than as a check.

The error that gets made, and what it costs

A pair is picked off a sheet whose two contracts share a strike of Rs 100/- but not a horizon: the first has one year remaining and the second has half a year. Step one is glanced at rather than performed. Steps two through seven then run perfectly. The prices are Rs 10.450584/- and Rs 4.419720/-, the left hand figure comes out at plus Rs 6.030864/-, the discounted strike at Rs 95.122942/-, the right hand figure at plus Rs 4.877058/-, and the gap at Rs 1.153806/-.

The gap is then written into a report as a parity violation of Rs 1.153806/-, and somebody spends the next hour looking for a bad price. There is no bad price. Both prices are correct for the contracts they belong to. The entire gap is the horizon mismatch and nothing else: the second contract at one year prices at Rs 5.573526/- and at half a year at Rs 4.419720/-, and the difference between those two is Rs 1.153806/- exactly, to the last digit of the reported gap.

The cost is an hour of somebody's attention spent chasing a number that was never a discrepancy, and, worse, a report that now carries a stated violation of a relationship that was never claimed about the pair being tested. The fault is a procedural failureA fault in how a check was run rather than in the arithmetic it performed. Every number is correct and the result is still worthless. rather than an arithmetic one. No amount of recomputing will find it, because every computation was right.

THE PROCEDURE RUN ON A PAIR THAT WAS NEVER MATCHED 1 SKIPPED. Horizons differ: 1.000 year against 0.500 year 2 Both prices noted: Rs 10.450584/- and Rs 4.419720/- 3 Difference, with its sign: plus Rs 6.030864/- 4 Level Rs 100/-, rate 5 per cent continuously compounded 5 Discounted strike: Rs 95.122942/- 6 Level less discounted strike: plus Rs 4.877058/- 7 Gap: Rs 1.153806/-, far outside any sensible tolerance REPORTED: a parity violation of Rs 1.153806/- IN FACT: the gap is the horizon mismatch, entirely. The second contract prices at Rs 5.573526/- at one year and Rs 4.419720/- at half a year, a difference of Rs 1.153806/-.
A check run on contracts with different horizons produces a discrepancy that has nothing to do with parity, computed flawlessly at every step after the one that was skipped.
Try it out

Which of the seven steps does the procedure usually fail at?

Parity breaks at the discounting step, not the arithmetic. See which step slips.

How does somebody checking a whole sheet of prices actually use this?

Somebody with two hundred pairs to check does not run seven steps two hundred times. The work is step one two hundred times and steps two to seven once per strike, arranged on the sheet so that step one can be done by looking rather than by reading. Sorted by horizon first and by strike second, a mismatched pair stops being something that has to be noticed and starts being something that sits visibly out of line.

A rate convention entered once can be checked once, so the one arrangement worth building into a sheet is a single discount factor cell that every row multiplies against. Two hundred rows each carrying their own discounting is two hundred places for the convention to be entered differently, and the failure that produces is silent: every row computes, the column looks complete, and a handful of rows are quietly discounted on the wrong convention.

The second habit is to record the tolerance in the sheet rather than in somebody's head. A column of gaps with a tolerance cell beside it can be read six months later by a person who was not there. A column of gaps on its own cannot. The reader has no way to tell whether a gap of Rs 0.004/- was a pass or a fail on the day.

The third is what to do when a row does fail. Go back through the four inputs in the order the procedure gathered them, not the order they appear on the sheet. Check the pair, then the two prices, then the level, then the convention. The two prices are usually the parts of the sheet that were checked most carefully, and the level and the convention are the parts that were assumed. So most failures resolve at the first input and almost all of the rest at the last. Mechanical stepsSteps requiring no judgement, only arithmetic or a comparison. Six of the seven steps are mechanical, and mechanical steps are quick to audit. are quick to audit precisely because they leave a trail of numbers behind them.

Why parity holds and why it needs no model are covered separately under the law of one price. What either contract pays is settled in the subject area on instruments and arrives here already known. The procedure carries no threshold, no date and no conduct duty: seven subtractions and one stated tolerance are the same seven subtractions and the same tolerance wherever they are carried out.
Breaking Into Quants Bootcamp — Fin Maverick

References

SourceDocumentWhere
arXiv Quantitative FinancePreprint repository for work on model-free price relations and the width of the interval around them once frictions are allowed forarxiv.org
Social Science Research NetworkWorking paper repository for the same material, including empirical studies of how such checks are run on quoted setsssrn.com
Hull, Shreve and WilmottStandard texts on derivative pricing, covering the parity identity and the four quantities the check usestextbooks
Hans R. Stoll, 1969The paper setting out the relation between the prices of the two contracts of a matched pairJournal of Finance
Black, Scholes and Merton, 1973The pricing solution used to generate the illustrative prices at all four strikesJournal of Political Economy, Bell Journal of Economics and Management Science

The standard process, its four parameters and both contracts of every pair used here are invented.
Educational material. Not advice on any investment, tax, budget or market position.

← PreviousNext →
Fin Maverick Micro CoursesExplore Micro Courses
Fin Maverick BootcampsExplore Bootcamps
Fin Maverick

Finance education that ends in a job, not a certificate that gathers dust. Built for young India.

LEARN
CalculatorsFrameworksComparisonsCareersShowdown
RESOURCES
All CoursesMicro CoursesBootcampsInternships
COMPANY
AboutJob openingPartnership
LEGAL
Privacy PolicyTerms & ConditionsContent LicenseReturn & Refund Policy
© 2026 FIN MAVERICK / BUILT FOR INDIA.DO FINANCE, DO NOT JUST READ ABOUT IT.