Skip to content

Remove special initial guess for spread discount curves#2495

Merged
lballabio merged 1 commit intolballabio:masterfrom
eltoder:feature/spread-discount-guess
Mar 23, 2026
Merged

Remove special initial guess for spread discount curves#2495
lballabio merged 1 commit intolballabio:masterfrom
eltoder:feature/spread-discount-guess

Conversation

@eltoder
Copy link
Copy Markdown
Contributor

@eltoder eltoder commented Mar 21, 2026

The current logic is to use 0 spread as the initial guess. Revert this to the logic used for outright curves, which guesses 5% spread. It turns out that 0 spread may be very close to the final result, which creates issues for the global bootstrap. When the initial guess is too close to the final answer, gradients become too small and the LevenbergMarquardt algorithm used by the global bootstrap does not have a good direction to move into. Counterintuitively, this makes convergence slower than when starting from a much further initial guess like 5%. In our production setting when starting from 0 spread, we saw curves take multiple seconds to build or fail with MaxIterations exceeded, but converge in 100ms when starting from 5% spread.

The current logic is to use 0 spread as the initial guess. Revert this
to the logic used for outright curves, which guesses 5% spread. It turns
out that 0 spread may be very close to the final result, which creates
issues for the global bootstrap. When the initial guess is too close to
the final answer, gradients become too small and the LevenbergMarquardt
algorithm used by the global bootstrap does not have a good direction to
move into. Counterintuitively, this makes convergence slower than when
starting from a much further initial guess like 5%. In our production
setting when starting from 0 spread, we saw curves take multiple seconds
to build or fail with MaxIterations exceeded, but converge in 100ms when
starting from 5% spread.
@coveralls
Copy link
Copy Markdown

Coverage Status

coverage: 74.364%. remained the same
when pulling e3b3ebd on eltoder:feature/spread-discount-guess
into 24ace42 on lballabio:master.

@lballabio lballabio added this to the Release 1.42 milestone Mar 23, 2026
@lballabio lballabio merged commit b063fa8 into lballabio:master Mar 23, 2026
43 checks passed
@eltoder eltoder deleted the feature/spread-discount-guess branch March 23, 2026 13:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants