This isn’t necessarily a bug but it’s unexpected behavior that I thought I should describe it here in case anyone else runs into this.
It’s possible to import decline/incline rates that are outside the range that’s validated by the user interface if you import parameters through the ComboCurve parameters CSV import (possibly other ways too). Massive decline rates don’t appear to be serialized as part of the get-forecast-outputs JSON response, so diNominal can still be included in the response but diEffSec is not included.
Ideally even large decline rates could be represented in JSON (e.g., in scientific notation) or somehow we could know that it’s omitted. For now I can fallback to the nominal decline rate when I notice a missing effective decline rate in the response, but it could cause subtle bugs for people expecting the effective decline rate to be there.
Thanks for the heads up! Our team does not work directly with the CSV import, but I was able to duplicate what you mentioned. It looks like Forecast outputs intentionally strips extreme D_eff values before API serialization. diNominal is mapped from D, while diEffSec is mapped from D_eff (stripped when out-of-range), so you get the mismatch you described.
I will reach out to the forecast team to understand the reasoning behind this and get back to you.
After talking to the Forecast team, they verified that this is expected behavior; however, they are logging your feedback for your requests for either representing large decline rates or showing that it was omitted.
Thanks for looking into this. For now we’ve implemented a workaround that attempts to use the nominal decline rate whenever the effective decline rate is missing.