← Field guide · what went wrong

Our chart said $323. The answer is $677

  • A payoff chart we built showed a covered call making $323 at best.
  • The correct figure is $677. The gap is the premium, subtracted where it should have been added.

What we built

  • A payoff engine that prices a position from its legs and draws the profit and loss against price.
  • Most structures are options only. A covered call is not: it holds a hundred shares as well.
  • The share leg got a special case, because shares do not have a strike or an expiry.
  • That special case is where it went wrong.

What was wrong

  • The premium was being subtracted from the profit instead of added to it.
  • The shape of the chart still looked right — a rising line that flattens at the strike. Nothing about it looked broken.
  • Only the level was wrong, and by exactly twice the premium.
Covered call, stock at $100, call sold at $105What we drewWhat it is
Maximum profit$323$677
The differencetwice the premium collected

Arithmetic from the specification stated on the page: a hundred shares bought at $100, one call sold at $105, 45 days, 25% volatility. Not a measured result.

How it was found

By an assertion that had nothing to do with covered calls: the profit and loss at entry, at the price you entered at, must be exactly zero.

  • That is true of every position, by construction. The moment you open a trade at the market price, you are neither up nor down.
  • So it can be checked on every structure, without knowing anything about the structure.
  • The covered call failed it — and the size of the failure was the size of the error.
  • A test written for a general property caught a bug in a special case. That is the whole argument for preferring the general one.

What would not have caught it

  • Looking at the chart. The shape was right.
  • Checking the arithmetic of the option leg. It was correct.
  • Comparing against another of our own charts. They shared the bug.

What it cost

  • Nothing reached a reader. The chart was found in the same session it was drawn.
  • But it would have been on a public page within the day, and it is not the kind of error a reader could have caught — you would need the model to know the answer.
  • That is exactly why it is written up. An error nobody outside could detect is the one an audience most needs to know we look for.

Common questions

Was this on a published result?

No. It was an illustrative chart, drawn from a stated specification. No test on this site has published a result of any kind.

Why does a covered call need a special case at all?

Because shares have no strike and no expiry, so they cannot be priced the way an option is. The special case was necessary; subtracting the premium in it was not.

What is the entry assertion, exactly?

That the position's profit and loss, evaluated at the price you opened at, on the day you opened it, is zero. It runs on every structure the engine builds.

Could the same bug be in other charts?

It was the only structure with a share leg, so no. But the assertion now runs on all of them, which is the part that generalises.

What changed

The special case was deleted. Shares contribute zero at entry by construction, so they need no adjustment at all.

Every structure the engine builds now asserts that entry profit and loss is zero before it can draw anything. If that check fails, no chart is produced.