Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Projection/Modeling Interface #20

Open
alecloudenback opened this issue May 17, 2020 · 0 comments
Open

Projection/Modeling Interface #20

alecloudenback opened this issue May 17, 2020 · 0 comments

Comments

@alecloudenback
Copy link

I am interested in doing integrated asset/liability modeling (see JuliaActuary org) but think that the right interface would transcend just actuarial projections, so bringing up the discussion here.

Let me first define what I mean by projections first: projections are an assumed pattern of a financial/instrument or contract. It is distinct from the valuation of such an object and the projection is scenario/context dependent.

Examples:

  • A callable bond where the cashflows are assumed to vary by the economic context
  • A universal life insurance contract which has non-guaranteed elements that may vary by scenario in different projection models.

Other examples of things I would consider "projectable":

  • shares of common stock
  • term life insurance policies
  • loans
  • mortgages
  • cash
  • perpetuities

What I have had a difficult time with is defining an interface that meets what I feel like a modern modeling system should have:

  • intuitive API
  • ability to accommodate different timesteps:
    • daily calendar days (with and without the complexity of DayCounts)
    • monthly/annual
  • Is iterable
    • each timestep can be walked through and the projection either terminates because there is nothing left to project or tracks the current state and may never end (e.g. a perpetuity)
  • Is contextually aware
    • different assets/liabilities could interact (e.g. having the asset side of the balance sheet affect the liabilities and vice versa)
  • Is (or can be) lazy
    • I may simply want to project until all liabilities have been defeased rather than stop after a certain timepoint

I was wondering if this was something that others have thought about or have design ideas/examples to point to?

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

No branches or pull requests

1 participant