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

Boundary, Initial and Terminal Conditions: Pinning Down the Solution

An equation says how a quantity changes and not what it is, so on its own it admits many solutions. Conditions pin one down. The condition at the horizon carries the contract. The conditions at high and low levels carry the setting. Get any of them wrong and the equation will still solve, to something else entirely.

The equation is a constraint on change. The conditions are constraints on value. Neither alone determines anything, and it is the pairing that produces a single answer. Because the pairing looks like paperwork sitting beside the interesting object, it is the part of the pricing machinery most often skipped.

The pairing is not paperwork. The equation is covered separately and is used here rather than re-derived. The remaining work is naming what else has to be handed over before the equation means one number instead of an unlimited collection of them. Three things must be supplied, each one sits at a named place, and when a number moves it is one of those three that has changed.

Here is the everyday version, and it needs nothing more than a set of directions. An instruction says: walk two kilometres north. Because the instruction describes a change of position rather than a position, it is complete, unambiguous and entirely useless for finding a person. Asked where it ends up, the honest answer is that it depends on where it started. Add the starting address and the instruction now names exactly one place. An equation is the instruction, a condition is the starting address, and a price is the place.

Why does the equation on its own have many answers?

The pricing equation is a relation between three sensitivities of the value: how it responds to the passage of time, how it responds to the level of the process, and how it curves in that level. Every one of those is a rate of change. Nowhere in the equation does a number appear that says what the value actually equals at any particular time and any particular level.

The constraint the equation imposes
$$ \frac{\partial V}{\partial t} \;+\; \tfrac{1}{2}\sigma^{2} S^{2}\,\frac{\partial^{2} V}{\partial S^{2}} \;+\; r S\,\frac{\partial V}{\partial S} \;-\; rV \;=\; 0 $$
\(V(t,S)\)the value of the contract, a function of the time and of the level of the process
\(S_t\)the standard process, invented for this subject area, starting at Rs 100/- and moving by proportional increments
\(\sigma\)the volatility of the process, 20 per cent a year here, decimal 0.20
\(r\)the risk-free rate, 5 per cent a year continuously compounded, decimal 0.05
\(t\)a general time between today and the horizon \(T\), which is one year here
What it says in wordsThe rate at which the value drifts with the passage of time, plus half the variance rate multiplied by the squared level and by the curvature of the value, plus the risk-free rate multiplied by the level and by the slope of the value, must together equal the risk-free rate multiplied by the value itself. Every term in it is a rate of change, and no term states a level.

Read as a sentence about slopes, it is immediately clear why it cannot deliver a number. The equation is a rule that a value function must obey, not a description of any particular value function. Asked what the contract is worth today, it answers, quite correctly, that whatever the answer is, it changes in a certain disciplined way.

An equation admitting many solutions at once is multiplicityAn equation admitting many solutions until conditions are supplied, so that the equation alone selects nothing., and it is easiest to believe with four different solutions held side by side. The four below all satisfy the equation above exactly, at every time and at every level. Not approximately, not in a limit: substituting any one of them makes every term cancel.

Four value functions that all satisfy the same equation
$$ V_1 = S, \qquad V_2 = K e^{-r(T-t)}, \qquad V_3 = S - K e^{-r(T-t)}, \qquad V_4 = 0 $$
\(K\)a constant, taken as Rs 100/- here so the readings are comparable
\(T-t\)the time remaining to the horizon, one year at today
\(V_1\)the level itself, whose slope is one and whose curvature is nought
\(V_4\)the value nought everywhere, whose every derivative is nought
What it says in wordsThe level itself, a fixed amount discounted back from the horizon, the difference between those two, and the value nought everywhere are all solutions of the pricing equation, so the equation by itself cannot distinguish between a contract worth Rs 100/- today and a contract worth nothing at all.

Check the first one by hand and the point lands. If the value equals the level, then its sensitivity to time is nought, its curvature is nought, and its slope is one. Feed those in: the first term goes, the second goes, the third leaves the risk-free rate multiplied by the level, and the last subtracts the risk-free rate multiplied by the value. The value is the same level, so the two survivors cancel exactly. The fourth is even blunter. The value nought everywhere satisfies the pricing equation perfectly. The equation therefore cannot rule out an answer of nothing at all.

The four solutions above are not the whole collection either. Any weighted combination of them is another solution, and so is the level squared multiplied by a particular growing factor, and so are infinitely many functions nobody would ever write down. There is no shortage. The problem was never that the equation is hard to satisfy.

Two different kinds of statement. Only the pair determines anything. THE EQUATION a rule about how the value changes every term is a rate of change no term states a level anywhere alone: an unlimited collection + THE CONDITIONS statements about what the value is each pins the value along one edge no term says how anything changes alone: nothing joins the edges up A rule about change plus a statement about value equals exactly one function. Drop either half and the answer is not wrong. It is not there.
The equation constrains only how the value changes and the conditions constrain only what the value equals along particular edges, so neither half determines a single price and only the two together do.
Try it out

Why does the equation on its own not determine a price?

Now look at those four solutions drawn on the same axes, at today, across a range of levels. The four are not small variations on one another. At a level of Rs 100/- they read Rs 100.000000/-, Rs 95.122942/-, Rs 4.877058/- and nothing, and the fourth of them dips below nothing for most of the range. No price ever does that. The equation is entirely content with all of it.

Four solutions of one equation, drawn at today across the level. Rs 200/- Rs 100/- nil minus Rs 100/- 0 50 100 150 200 the level of the process today, in rupees the level itself a fixed amount, discounted back the locked contract, once pinned the level less that fixed amount AT A LEVEL OF Rs 100/- TODAY, THE FOUR READ the level itself Rs 100.000000/- the discounted amount Rs 95.122942/- the locked contract Rs 10.450584/- the level less that amount Rs 4.877058/-
Four value functions that satisfy the pricing equation exactly read Rs 100.000000/-, Rs 95.122942/-, Rs 10.450584/- and Rs 4.877058/- at a level of Rs 100/- today, which is how far apart the answers the equation is content with can be.
Risk Management Program Bootcamp — Fin Maverick

What has to be supplied at the horizon, and what does it settle?

The Terminal Payoff, and what it settles

The first thing supplied is a statement of what the value equals at the far end of time. At the horizon there is no time left, nothing further can happen, and the value of the contract is simply whatever the contract delivers at that instant. The statement of what the value equals at the horizon is the Terminal PayoffWhat the value must equal at the horizon, which is the condition that carries the description of the contract itself.. Because the level at the horizon is not known today, the payoff is supplied as a function of the level rather than as a single number.

The condition at the horizon
$$ V(T, S) \;=\; g(S) \qquad \text{for every level } S \ge 0 $$
\(T\)the horizon, one year from today at the locked parameters
\(g(S)\)the payoff function, what the contract delivers at the horizon at each level
\(V(T,S)\)the value at the horizon, which has to agree with the payoff at every level
What it says in wordsAt the horizon the value of the contract must equal what the contract delivers, and this has to hold at every level the process could possibly have reached, not merely at the level it happens to be at today.

Two things about that are worth slowing down on. The first is that it is a condition on a whole function, not on a number. The claim is not that the contract will be worth something specific at the horizon. The claim is that whatever level the process has reached by then, the value at that level is already known, and the condition is the rule that gives it. The second is that this is the only place in the whole guide where a description of the contract enters. Everything else is a statement about the setting.

For the locked contract on the standard process, at a strike of Rs 100/-, that statement reads out as a table. The table below is not a computation. There is nothing to compute. At the horizon the value is the payoff by definition, and the table is simply the payoff written down at a handful of levels. Written down that way, the shape of the condition is visible rather than the notation for it.

Level at the horizonValue at the horizon, locked contractValue at the horizon, counterpart contract
Rs 0/-nilRs 100/-
Rs 50/-nilRs 50/-
Rs 80/-nilRs 20/-
Rs 100/-nilnil
Rs 120/-Rs 20/-nil
Rs 150/-Rs 50/-nil

Every one of those rows is a hard equality that the solution has to honour, and together they are the only place the contract gets a say. Change one row and something else has been described. The condition at the horizon is therefore treated differently from the other two, and that difference is the judgement the rest of the argument rests on.

Try it out

Which end of time does the terminal payoff sit at?

Why is a condition at the far end of time sometimes called an initial one?

The Initial Condition, and why the name misleads here

In circulation is the phrase Initial ConditionA condition supplied at the start of time for the equation being solved, which in this setting is the horizon rather than today, because the time variable has been reversed. attached to exactly the statement described above, and it is fair to find that confusing. An initial condition, everywhere else in mathematics, is data supplied at the beginning. Here the data is supplied at the end. Both names are in circulation and neither is wrong, and the reason is a change of variable that takes about one line.

The equation as written runs in calendar time, and the data sits at the far end of it, so the solution has to be carried backward from the horizon toward today. Substitute the time remaining for the calendar time and the whole thing turns around. In the new variable the data sits at zero, the solution runs forward, and what was a terminal condition is now, quite literally, an initial one.

The change of variable that flips the naming
$$ \tau \;=\; T - t \qquad\Longrightarrow\qquad \frac{\partial V}{\partial \tau} \;=\; \tfrac{1}{2}\sigma^{2} S^{2}\,\frac{\partial^{2} V}{\partial S^{2}} \;+\; r S\,\frac{\partial V}{\partial S} \;-\; rV, \qquad V(0, S) = g(S) $$
\(\tau\)the time remaining to the horizon, running from nought at the horizon to \(T\) at today
\(\partial V/\partial \tau\)the sensitivity of the value to the time remaining, which is the sensitivity to calendar time with the sign reversed
\(V(0,S)\)the value when no time remains, which is the payoff, now sitting at the start of the new clock
What it says in wordsMeasuring time backward from the horizon instead of forward from today turns the equation into one that runs forward in the new clock and puts the payoff at the beginning of it, so the same statement is a terminal condition on one clock and an initial condition on the other.

Nothing changed except the direction the clock counts. The equation, the contract and the answer are identical. But the naming matters for a practical reason: almost every numerical method for this kind of equation is written to march forward from a starting slice, so an implementation will almost always be reversing time internally whether or not it says so. A routine handed a payoff that calls the argument an initial condition is not confused. The routine is working in the reversed clock.

One statement, two clocks, two names for it. today the horizon CALENDAR TIME, COUNTING UP data the data sits at the far end, so the solution is carried backward the horizon today TIME REMAINING, COUNTING DOWN data the data sits at the near end, which is where an initial condition belongs
Reversing the clock so that it counts time remaining rather than calendar time moves the payoff from the far end of the axis to the near end, which is the entire reason the same statement is called terminal by some sources and initial by others.

What do the conditions at the low and high levels say?

The condition at the horizon fixes the value along one edge of the picture, the edge in time. The horizon condition says nothing about what happens at extreme levels before the horizon arrives, and a solution has to be pinned there too. Statements about the low and the high level make up the boundary conditionWhat the value must do at the extreme levels of the process, which carries the setting the contract sits in rather than the contract itself. pair, and they behave quite differently from one another.

The low level, and why nothing there is an approximation

Take the process to a level of nought and ask what happens next. The standard process moves by proportional increments: both the drift term and the random term are multiplied by the current level. At a level of nought, both are nought. The process cannot move up, cannot move down, and cannot be nudged by anything. A level of nought is an absorbing levelA level the process can never leave once it arrives, which fixes the value of any contract on it there for all remaining time., and absorption is a structural fact about the process rather than a modelling convenience.

Why the low level absorbs
$$ dS_t = \mu S_t\,dt + \sigma S_t\,dW_t \qquad\Longrightarrow\qquad S_t = 0 \;\Rightarrow\; dS_t = 0 \;\Rightarrow\; V(t,0) = 0 $$
\(\mu\)the drift of the process under the physical measure P, 8 per cent a year here
\(W_t\)standard Brownian motion under the physical measure P, the random driver
\(V(t,0)\)the value of the locked contract when the level is nought, at any time before the horizon
What it says in wordsBoth the drift term and the random term of the standard process are multiplied by the current level, so at a level of nought every increment is nought, the process stays there forever, the locked contract can never deliver anything, and its value at that level is nil at every time rather than nearly nil.

Everyday version: a lift whose doors have been welded shut on the ground floor. The lift is still a lift, it still has a motor and a rule for moving, but the rule multiplies by something that is now zero. Ask where it will be in an hour and the answer is not probably the ground floor. The answer is the ground floor, with no distribution around it at all.

The value of the locked contract at a level of nought is nil at every time, and that is exact rather than a very small number rounded down. Because a solver working on a grid has to be told this, the exactness matters more than it looks. If it is left to work the value out at the lowest grid point from its neighbours, it will produce something close to nil rather than nil, and the error will propagate inward.

One level the process can never leave, and one it can never reach. Rs 100/- a level above nought: the path wanders and never arrives at nought over the year this path ran between Rs 93.74/- and Rs 111.08/- and every level below that was never visited at all nought a level of nought: every increment is nought times something, so nothing moves today the horizon Nothing can ever be delivered from a level the process can never leave. So the value there is nil at every time, exactly, and not nearly nil.
A path starting above nought wanders without ever reaching it while a path starting at nought stays there forever, which is why the value of the locked contract at that level is exactly nil at every time rather than approximately nil.
Try it out

At a level of nought the value is nil. Is that an approximation?

The high level, and what the value approaches

The other edge has no wall to sit against. The level can be arbitrarily large, so the condition there cannot be a value at a particular level. The condition at high levels is an asymptoticDescribing what a value approaches as a quantity grows without bound, so the statement is about a limit rather than about a reading at any single point. statement: as the level grows without bound, the value approaches the level less the discounted strike.

The condition at high levels
$$ \lim_{S \to \infty}\; \Bigl[\,V(t,S) - \bigl(S - K e^{-r(T-t)}\bigr)\Bigr] \;=\; 0 $$
\(K e^{-r(T-t)}\)the strike discounted back to the current time, Rs 95.122942/- at today over one year
\(S - K e^{-r(T-t)}\)the level less that discounted amount, which is one of the four solutions listed earlier
\(\lim_{S \to \infty}\)the limit as the level grows without bound, so the statement is about behaviour rather than about a point
What it says in wordsFar above the strike the value of the locked contract becomes indistinguishable from the level itself less the strike discounted back, because at such levels the chance of finishing below the strike has become so small that it stops affecting the value at any precision anybody works to.

The limit can be checked to any number of decimals, and the checking is worth doing because it shows the difference between a condition that is exact and a condition that is a limit. The low boundary was exact at the boundary. The high one is only approached. At a level of Rs 150/- the value is Rs 54.970140/- against Rs 54.877058/- for the level less the discounted strike, a gap of Rs 0.093083/-, not small at all. At Rs 200/- the gap is down to Rs 0.000667/-. At Rs 300/- the value reads Rs 204.877058/- and the level less the discounted strike reads Rs 204.877058/-, the same to six decimals, with a residual of about twenty six billionths of a rupee still sitting underneath.

The residual is not a rounding artefact, it is the chance of finishing below the strike, and it never becomes exactly nought at any finite level. The gap equals the discounted strike multiplied by the chance of finishing below it, less the level multiplied by a closely related weight, and both of those weights shrink faster than the level grows. A residual that never vanishes is why the condition is written as a limit rather than as an equality, and why an implementation that imposes it as an equality at a finite level is doing something subtly different. The failure block below returns to that difference.

The gap between the value and the limit, on a scale of powers of ten. LEVEL GAP IN RUPEES Rs 150/- 0.093083 Rs 200/- 0.000667 Rs 250/- 0.000004 Rs 300/- 0.000000026 At Rs 300/- the value is Rs 204.877058/- and the limit is Rs 204.877058/-. Equal to six decimals, and still not equal. That is what a limit means.
The gap between the value and the level less the discounted strike falls from Rs 0.093083/- at a level of Rs 150/- to about twenty six billionths of a rupee at Rs 300/-, shrinking by roughly two powers of ten for every fifty rupees of level and never reaching nought.
Try it out

At a level of Rs 300/- the value reads Rs 204.877058/-. What is that number?

Investment Banking Analyst Bootcamp — Fin Maverick

Which of the three conditions does the real work?

The three together frame a region. Time runs from today to the horizon along one direction and the level runs from nought upward along the other. The condition at the horizon pins the value along the far edge in time. The two boundary conditions pin it along the low and high edges in level. The equation then fills in everything inside. Because reading the value along it is the answer, the edge that matters, the near edge in time where today sits, is the one edge nothing is supplied along.

Three edges are supplied. The fourth edge is the answer being sought. HIGH EDGE IN LEVEL high nought today the horizon the equation fills in everything inside the solution is carried this way ? nothing is given along this edge FAR EDGE IN TIME the payoff LOW EDGE IN LEVEL value nil, exactly, for all time FAR EDGE IN TIME value equals the payoff HIGH EDGE IN LEVEL value approaches the limit
The three conditions pin the value along three edges of a region in time and level while the equation fills in the interior, and the near edge in time is deliberately left unpinned because reading the value along that edge is the entire object of the exercise.

A problem set up like that, with an equation and exactly enough conditions to select one solution that depends sensibly on the data, is said to be well posedHaving exactly one solution that also responds sensibly to small changes in the data, which needs the equation and the conditions together.. Too few conditions and there are many answers. Too many and there may be none. Conditions can contradict each other. Getting the count right is not a matter of taste; it follows from the type of the equation, and for this one the answer is three.

Now the judgement the three conditions force. All three conditions are needed, but they are not the same kind of statement. The condition at the horizon is the only one that describes the contract, and the two in level describe the setting the contract sits in. Changing the first writes down a different contract. Changing either of the others keeps the contract and changes the world it lives in.

The prices make that concrete. Keep the setting and swap the horizon condition from the locked contract to its counterpart, and the price today at a level of Rs 100/- moves from Rs 10.450584/- to Rs 5.573526/-. Keep the horizon condition and instead impose a value of nought at a level of Rs 150/- rather than the limit at high levels, and the price today falls to Rs 7.622374/-. Same equation in all three. Same payoff written down in the first and third. Different numbers.

Change one condition. Which one decides what has changed. the locked setup reads Rs 10.450584/- CHANGE THE CONDITION AT THE HORIZON the setting is untouched what the contract delivers has moved a different contract has been priced Rs 5.573526/- CHANGE A CONDITION IN THE LEVEL the payoff written down is untouched the region the process lives in has moved it has been priced in a different setting Rs 7.622374/- The equation is identical in all three columns. Only a condition moved. The horizon carries the contract. The level edges carry the world.
Swapping the condition at the horizon moves the price from Rs 10.450584/- to Rs 5.573526/- and describes a different contract, while imposing a value of nought at a level of Rs 150/- moves it to Rs 7.622374/- and describes the same contract in a setting where the level cannot pass that point.

There is a sting in that second branch, and it deserves saying plainly. The sting is what makes the mistake so hard to see. Imposing a value of nought at Rs 150/- does not produce a bad approximation to the locked price. The imposed value produces the exact price of a perfectly well defined contract: one that stops existing the moment the level touches Rs 150/-. Both figures were computed and cross-checked by two independent routes, a closed form and a grid solve, agreeing to five decimals. A wrong boundary condition does not give a poor answer to the question asked, it gives a good answer to a different question. Nothing in the output looks broken.

Try it out

A boundary condition changes and the payoff is left alone. Has the contract changed, or the setting?

Derivatives Foundation Bootcamp — Fin Maverick

How do the three conditions read on the worked instance?

Try it out

Suppose the condition at the horizon says the value must equal the level itself. What is the price today at a level of Rs 100/-?

Here is the whole set written out for the locked contract on the standard process, at a strike of Rs 100/-, over the one year horizon, with the volatility at 20 per cent and the risk-free rate at 5 per cent. Every reading below follows from those parameters alone.

ConditionWhere it sitsWhat it saysReading
At the horizonThe far edge in time, at one yearThe value equals the payoff at every levelnil at Rs 80/-
nil at Rs 100/-
Rs 50/- at Rs 150/-
At the low levelThe bottom edge, at a level of noughtThe value is nil, exactly, at every timeRs 0.000000/-
At high levelsThe top edge, as the level growsThe value approaches the level less the discounted strikeRs 204.877058/- at Rs 300/-
against Rs 204.877058/-
All three, with the equationThe near edge in time, at todayExactly one solution, read off at todayRs 10.450584/-

Each row of that table costs something different. The first row is the only one where there was a choice. The second and third are forced by the setting, once the process is said to move by proportional increments and the level is said to be unbounded above. Nobody decided the low level should absorb. The low level absorbs because of how the increments are built.

Which is why the honest statement of the judgement is slightly sharper than the usual one. The judgement is not that the boundaries are free choices about the world while the payoff is a free choice about the contract. The payoff is the only free choice at all, and the boundaries are what the setting forces once that choice is made. Altering a boundary independently is not adjusting a detail; it quietly asserts something about the process that the process does not do.

What happens to the price when only the condition at the horizon moves?

Try it out

The condition at the horizon changes below while the equation stays exactly as it is. Does the price change?

The control below changes one thing and one thing only: which function is supplied at the horizon. The equation, the rate, the volatility, the horizon and both conditions in level are untouched throughout. The dashed line is the condition supplied, and the solid line is the value today that follows from it. Three choices are offered and the prices today at a level of Rs 100/- are Rs 10.450584/-, Rs 5.573526/- and Rs 100.000000/-.

Play with it

One equation, three conditions at the horizon, three prices

Pick what the value must equal at the horizon. The slider only moves the marker along the level, so the value can be read anywhere, and changes nothing about the problem being solved.

The condition at the horizon, and the value today it selects. 120 60 0 Rs 10.450584/- 0 50 100 150 200 supplied at the horizon the value today
a level of noughtthe marker sits at Rs 100/-Rs 200/-
Held fixed throughout
the equation
Price today at Rs 100/-
Rs 10.450584/-
Value today at the marker
Rs 10.450584/-
The condition supplied at the horizon is the excess of the level over Rs 100/-, and the equation returns Rs 10.450584/- today at a level of Rs 100/-.
Educational illustration. Level Rs 100/-, rate 5 per cent a year continuously compounded, volatility 20 per cent a year, one year to the horizon, strike Rs 100/- where a strike applies, on the invented standard process. The three prices today at a level of Rs 100/- are Rs 10.450584/-, Rs 5.573526/- and Rs 100.000000/-, and the equation did not change between them. Every reading is computed from the formula rather than sampled, so it is identical on every reload.

The third choice is the one worth dwelling on. If the value at the horizon must equal the level itself, the price today is Rs 100.000000/- exactly, at any volatility and any rate. Rs 100.000000/- is not an accident of the parameters. The discounted process is a martingale under the pricing measure Q, established separately, so the value today of receiving the level at the horizon is the level today. The level itself is also the first of the four solutions listed above, and the circle closes neatly. The function was already a solution of the equation, and supplying the matching condition at the horizon is exactly what selects it.

Regression for Finance — free micro-course from Fin Maverick

What goes wrong when a condition is missing or wrong?

The error that gets made, and what it costs

Handing a solver the equation and expecting one answer back. The equation admits an unlimited collection of solutions, so a routine given only the equation will return whichever one its own defaults imply, and it will do so without complaint. There is no error message. Nothing is wrong, and the routine solved exactly what it was given.

The commonest form of this is a silent defaultA solver supplying its own condition when none was given, so the output answers a question the defaults asked rather than the one that was asked. at an edge nobody thought about. A grid has to stop somewhere, and where it stops something has to be said about the value. Left unsaid, many implementations quietly say nought. In the worked instance here that single unstated choice, made at a level of Rs 150/-, moves the answer from Rs 10.450584/- to Rs 7.622374/-, a difference of Rs 2.828210/-, or a bit over a quarter of the value.

The cost is not a wrong number that looks wrong. The output is a right number to a question nobody asked, produced by correct code and passing every test that checks whether the equation is satisfied. The equation really is satisfied. Somebody then reads it as the price of the contract they specified, and there is nothing in the output to tell them otherwise.

Same routine, same equation. One of them was told what the value equals. THE EQUATION, NO CONDITIONS > solve(pricing_equation) conditions supplied : none defaults applied : value nought status : solved residual : 0.000000 warnings : 0 V(0, Rs 100/-) = 0.000000 THE EQUATION PLUS ITS THREE > solve(pricing_equation, cond) at the horizon : the payoff at nought : nil for all time at high levels : the limit status : solved residual : 0.000000 V(0, Rs 100/-) = 10.450584 Both runs report success. Both residuals are nought. Neither raised anything. There is no error to catch, because there was no error.
A routine handed the equation with no conditions reports a clean solve with a residual of nought and returns a value of nothing, because the value nought everywhere really does satisfy the equation, so nothing in the output signals that the wrong question was answered.
Try it out

A solver is handed the equation with no conditions at all. What does it return?

Boundary conditions, not the equation, decide the answer. See what goes missing.

Who actually meets this, and what do they do about it?

Almost nobody meets these conditions as a point of theory. People meet them as a discrepancy: two implementations of the same calculation disagree, and somebody has to find out why. The conditions are the first place to look and almost the last place anybody looks.

The first person is whoever is checking a pricing routine before it is relied on. The useful move is to stop asking whether the value looks reasonable and start asking what the routine was told. Where does its grid stop, and what does it impose there? Does it set the value at the lowest level explicitly, or interpolate it? If the grid top is at three times the strike or more, the truncation costs almost nothing, and the reading here bears that out: at Rs 400/- the gap has fallen below anything measurable. If the top is at one and a half times the strike, it costs a quarter of the value. Same code, same equation, and the only difference is a number in a setup routine.

The second is whoever is reading a value out of a library they did not write. The question to ask is not what model it uses but what problem it solved. A routine that offers a payoff argument and no boundary arguments has made both boundary choices on the caller's behalf, and they are usually the right ones, and it is still worth knowing that they were made rather than derived from what was passed in.

The third is whoever is comparing two methods that ought to agree. A grid solve and a closed form will differ in the last few decimals for ordinary reasons of discretisation. If they differ in the second decimal, the conditions are the suspect, not the arithmetic. Here the two routes used for the truncated figure agreed to five decimals once the grid was refined three times, and that is what agreement looks like. A disagreement of Rs 2.828210/- is not a refinement problem.

The everyday version is a recipe stating that the oven rises by ten degrees a minute. Perfectly precise, entirely useless on its own, and it becomes useful the instant somebody adds that the oven starts cold. Nobody would call that instruction wrong. Everybody would call it incomplete, and everybody would notice. A temperature is a familiar quantity and an unstated starting point is obvious. A value function is not familiar, the unstated edge is buried in a setup routine, and the arithmetic in between is impeccable. The unfamiliarity is the whole reason this mistake survives.

Breaking Into Quants Bootcamp — Fin Maverick

What is covered separately?

What has to be supplied alongside the equation is set out here. Solving the equation is separate work covered elsewhere in this subject area. What any contract pays belongs to the subject area on instruments; the contract arrives already known and is used here only as the function supplied at the horizon. The lattice, which imposes the same three conditions in a discrete form, is covered separately, as is the case where the condition at the horizon is not the end of the story, which is what an early exercise decision creates. The mathematics carries no conduct duty and no threshold, holding identically wherever it is written down.

References

SourceDocumentWhere
arXiv Quantitative FinancePreprint repository for the pricing equation, its boundary and terminal conditions, and the well posedness of the resulting problemarxiv.org
Social Science Research NetworkWorking paper repository for the same material, including grid truncation and its effect on computed valuesssrn.com
Black, Scholes and Merton, 1973The pricing equation and the conditions that select its solutionnamed in the text only
Feynman and KacThe link between the equation with its conditions and the expectation under the pricing measurenamed in the text only
Hull, Shreve and WilmottStandard texts covering the pricing equation and the conditions that accompany itnamed in the text only

The standard process, the locked contract and its counterpart 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.