Skip to content

Latest commit

 

History

History
439 lines (343 loc) · 18 KB

CHANGELOG.md

File metadata and controls

439 lines (343 loc) · 18 KB

Changelog for Hastructure

0.42.4

2025-02-06

  • NEW: FirstLoss as new endpoint, which will stress on Default assumption till 0.01 loss on input tranche.
  • NEW: New prepayment /default assumption via byTerm, which vector curves are being applied via term of the assets.

0.42.3

2025-02-04

  • NEW: Multi-thread on pool cashflow projection
  • NEW: Expose convexity on bond/asset
  • NEW: Add new prepayment assumption PSA for Monthly mortgage
  • NEW: Add new prepayment/default vector assumption based on asset origin term

0.42.1

2025-02-02

  • NEW: add custom fee flow by BondPaidPeriod PoolCollectedPeriod index

0.42.0

2025-02-01

  • ENHANCE: refactor calcPmt to boost 15x performance for mortgage cashflow projection.
  • NEW: add ScheduleByIndex for bonds
  • FIX: fundWith shall increase the bond balance
  • ENHANCE: refactor Z-spread calc logic with numeric.root.finder

0.41.1

2025-01-11

  • NEW: Multi Interest Bond which used to model in bond with step up feature ( sub ordinated interest) in European
  • NEW: new assumption ,which used to funding existing bond.
  • NEW: new query totalFunding for bond,which records all funding amount of bond.
  • NEW: new query AmountRequiredForIRR for bond,which return the amount to be paid out make bond met the target IRR.
  • NEW: in Rate Swap , the notional can be set by Formula
  • ENHANCE: when account is being used as a source for support, it has option to book ledger with both credit and debit direction.
  • FIX: payPrinBySeq was not paying out principal.

0.40.13

2024-12-17

  • NEW: new formula totalFunded for bond with extra funding amount
  • NEW: new deal run assumption FundBond, which records a time series funding amount for a single bond.
  • ENHANCE: When booking account from support action, now user can book on Credit or Debit side
  • FIX: payPrinBySeq was not working

0.40.9

2024-12-11

  • ENHANCE: Ensure limit always return positive ,otherwise engine will throw error
  • NEW: add new action changeStatus in waterfall, with optional Pre as condition to trigger the status change

0.40.6

2024-12-06

  • NEW: new formula ledgerBalanceBy, which return either Credit or Debit balance of a ledger
  • FIX: step-up coupon bond which has a floater index will increase forever
  • ENHANCE: refactor on PDL book type.

0.40.1

2024-11-05

  • NEW: break changes on API ,now the engine is able to throw out error message instead of just hanging.

0.31.0

2024-11-05

  • NEW: new Call options assumption ,which specifies dates to be tested
  • ENHANCE: transform financial report to a Tree from a Table

0.30.5

2024-11-02

  • NEW: Expose bond factor formula for single bond
  • FIX: Enable balanceSheet support for multiple pools
  • FIX: Include logs from clean up waterfall
  • FIX: Include logs from trigger/actions
  • ENHANCE: query borrower number by Pool Id
  • ENHANCE: query current pool balance by Pool Id

0.30.3

2024-10-20

  • NEW: Expose combo sensitivity endpoint,
  • NEW: Expose single clear ledger function
  • NEW: Expose writeoffBySeq which write a list of bonds by sequence.
  • NEW: Add new assumption curve with padding last value to rest
  • NEW: Expose extra Stress on ppy/def curve, use can impose time-series based stress on prepayment and default.
  • NEW: Expose transferMultiple, with one action transfer multiple account to single account
  • ENHANCE: Expose pricing for bond groups
  • ENHANCE: Instead of liquidating all pools but users now have the option to select pool to liquidate
  • FIX: Revolve buy when building balance
  • FIX: avoid duplicate run waterfall in call

0.28.21

2024-8-25

  • ENHANCE: Expose pricing function with options of include or not include accrued interest.
  • NEW: Ballon Mortgage
  • NEW: Expose Assumption: defaultAtEnd with rates
  • NEW: Expose revolving buy asset from multiple pools
  • NEW: Expose which waterfall is run at each payment date

0.28.16

2024-8-6

  • FIX: correct runPool cashflow order and add UT

0.28.15

2024-7-31

  • FIX: enable compound formula on weighted average formula.

0.28.14

2024-07-06

  • FIX: enable annualized rate fee type with formula bondbalance on bondGroup

0.28.13

2024-06-30

  • NEW: new assumption issue bond which allow funding by issuing new bonds during cashflow projection.
  • NEW: new asset class projectScheduleFlow which can be divided projected cashflow with fix portion and float portions. The interest from the float portion will be affected by interest rate assumption.
  • ENHANCE: enable formula bondRate/bondWaRate on bondGroup
  • FIX: formula will return inf if a divide with zero instead of just throw exception
  • FIX: financial reports was failing because it can't access to interest due on bond group.
  • FIX: enable formula query on bond groups

0.28.8

2024-06

  • FIX: limit on payFee was not working with duePct
  • ENHANCE: expose transaction statement for triggers

0.28.2

2024-05-27

  • NEW: enable trigger to run waterfall actions
  • FIX: the result log used to be doubled each pool collection period
  • FIX: payPrinResidual will use all cash from account regardless principal due of bonds, which may caused negative balance of bonds( cash of account > principal due of bond)

0.28.1

2024-05-26

  • BREAK : add bondGroup, which group bonds and pay with prorata/sequential/by coupon rate/by maturity/by start date
  • BREAK : add begin balance/accure interest/as of date for cashflow frame
  • BREAK : add interest arrears interest over interest on bond cashflow
  • NEW: add interest over interest settings on bonds and expose interest over interest interest due flow
  • ENHANCE: add tabular representation of cashflow frame
  • FIX: fix rolling default rate query

0.27.21

2024-05-15

  • NEW: add weekday <n> in the date pattern
  • ENHANCE: expose weekly /biweekly in Period
  • NEW: now allow new first N period without Fee feature to model cashflow of type Installment
  • FIX: negative pool balance for (revolving pool asset >= 2)

0.27.13

2024-05-05

  • ENHANCE: enable all Combination Type formula (via patching dates)
  • ENHANCE: add capability to query txn in (Fee/Bond/Account) via a comment

0.27.12

2024-05-04

  • ENHANCE: deal will return how it was ended in projection

0.27.11

2024-05-04

  • NEW: Formula: originalBondBalance,BondDuePrin
  • NEW: Waterfall Action: CalcBondPrin,PayPrinWithDue
  • ENHANCE: fix Formula: PoolFactor
  • NEW: Enable * between formulas
  • FIX: Unlimit Liquidity Provider has wrong available balance

0.27.7

2024-05-01

  • ENHANCE: Enable pricing on asset via a constant rate/rate curve; add duration for asset pricing (curve only)

0.27.4

2024-04-15

  • ENHANCE: Pool run: enhance multip-scenario run and mulitple-assets type run
  • ENHANCE: Enable revovling on Receivable
  • ENHANCE: add RecoveryByDays to Receivable ,which describes recovery cash received after default.
  • FIX: Fix single asset run on lease
  • FIX: Failed to include cumulative stats on revolving buy assets
  • FIX: Multi-asset run was failure due to including schedule cashflow run.
  • ENHANCE: upgrade stack resolver from lts-18.22 to lts-22.6

0.27.0

2024-04-01

  • NEW: Now docker image ship with Apple silicon chip ! Happy hacking Mac users !

0.26.2

2024-03-24

  • FIX: patch recoveries for Mortgage type cashflow
  • NEW: add new asset class Receivable which represent a invoice factored,trading receivable
  • NEW: DefaultAtEnd assumption, which assumes asset default at last payment(For Receivable)

0.26.1

2024-03-09

  • NEW: fundWith which will increate the balance of bond and deposit cash to account.
  • NEW: writeOff which will write off balance of bond via a formula
  • NEW: a new predicate passMaturity which True if bonds has passed their expected maturity/pay off date.
  • NEW: Not as composite boolean test.
  • NEW: add new OAS pricing assumption, which return OAS spread given input scenarios.

0.26.0

2024-02-27

  • NEW: add NO_FirstN as type of Mortgage which implies no payment for first N period and interest due will be capitalized.
  • NEW: add IO_FirstN as type of Mortgage which implies no principal payment for first N period.
  • NEW: add Make Whole Feature, which allow user to set a ,,<WAL/Spread> Table. The bond will be componsate with PV from spread determined by WAL remaining.

0.25.0

2024-02-16

  • NEW: add resec deal, which allow to use bonds as underlying assets and allow user to set assumption on underlying deals.

0.24.1

2023-12-17

  • NEW: add payIntBySeq which pay interest to bonds sequentially with optional limit
  • NEW: add condition to "ExtraSupport" ,which support only available if a is satisfied
  • NEW: add Nothing to trigger effects
  • NEW: add payFeeBySeq to which pay a list of fees sequentially with optional limit
  • NEW: add a fee type which due amount is X per pool collection period
  • NEW: add a fee type which is a lookup table with look up value from a formula
  • NEW: add override feature rate and balance to calcDueInt action in waterfall.
  • NEW: multiple pool support !! now engine support multiple pools in a deal with mixed assets.
  • NEW: add query on present value on schedule pool cashflow, which enable Yield Maitenance Overcollaterisaztion supports

0.23.1

2023-11-16

  • NEW: new asset class FixAsset type , which yield cashflow given a capacity and assumption called utilization rate curve. The new asset type is applicable to Hotel booking/EV Charge station/Solar Panel/Wind Power type.
  • NEW: new rate hedge instrument RateCap which yield cash if rateCurve is higher than a strike rate
  • NEW: add accruedInterest field in pool stats, which will be deducted from pool cash flow
  • NEW: add payPrinBySeq in waterfall action, now user can pay prin bond via a simple list.
  • NEW: add an assumption fireTrigger which mannualy fire a trigger at point of projection
  • NEW: add pool collection type totalCash will aggregate all pool cash field
  • NEW: payInt now accept a limit which constrain how much interset to be paid via a formula
  • NEW: add bookBy a ledger via formula
  • NEW: add I_P to Mortgage type ,which models Buy To Let type mortgage( interest only and principal at last period)
  • ENHANCE: include Lens and code clean up
  • BREAK: refactor StepUp out of interest part of bond.

0.22.2

2023-10-27

  • ENHANCE: expose cumulative stats on pool cashflow returned by runDeal

0.22.1

2023-10-26

  • NEW: add default by amount assumption, which enable user to set a total amount of default alongside with a vector.
  • ENHANCE: misc refactors

0.22.0

2023-10-15

  • BREAK: cashflow now with Cumulative Stats ( cumulative default/delinq/loss/prepayment/principal/recovery)
  • NEW: expose inspect in waterfall action to observe variables during a waterfall execution
  • NEW: stepup now accpet a pre instead of a date to switch rate
  • ENHANCE: auto patch issuance balance for PreClosing Deal
  • ENHANCE: implement pre-run check and post-run check
    • IssuanceBalance check : Ongoing Deal shall have a IssuanceBalance value in Pool
    • Interest Rate check : index required by deal should be found in assumption
    • Waterfall action check : actions in waterfall ( source/target) should exist in deal object
  • FIX: fix bug on prepay penalty when using stepDown
  • FIX: fix project cashflow for Loan

0.21.5

2023-10-8

  • ENHANCE: in the revolving buy , now buy amount is no longer a multipler of revolving assets face value
  • FIX: now revolving asset may have remtain term == original term

0.21.4

2023-9-27

  • ENHANCE: require a new status when defining a deal in preClosing stage
  • FIX: fix a bug when reading financial report logs

0.21.3

2023-9-26

  • NEW: include a default/delinq/loss status map when projecting cashflow
  • NEW: implement haircut as extra stress projecting mortgage
  • ENHANCE: include called deal status, which will be set when deal was triggered with a clean up call assumption
  • ENHANCE: expose runAsset endpoint
  • ENHANCE: expose formula query on deal status as well as trigger status
  • ENHANCE: add rampUp deal status
  • FIX: adjust bond reset date from cutoff date to closing date

0.21.1

2023-9-21

  • BREAK: seperate performance assumption
  • BREAK: add delinquency projection on mortgage as well as schedule mortgage cashflow

0.20.3

2023-9-4

  • ENHANCE: now user can include boolean/int/balance/rate type query in inspect field

0.20.2

2023-8-31

  • BREAK: move Trigger from list into a map with a name
  • ENHANCE: add CumulatiePoolDefaultedRateTill to query default rate as of collection period N , then support query last one,last two default rates in the past as a rolling basis..
  • ENHANCE: add queryBool with test logic of any or which will test all predicates or any predicates are/is satisfied. With new included aforementioned formula above, the engine can have a predicate like last 2 period cumulative defaulte rates are all lower than 5%, any last 2 period cumulative defaulte rates is higher than 5%

0.20.1

2023-8-29

  • ENHANCE: add LedgerTxnAmt , allow user to query transaction amount for a ledger by comment
  • ENHANCE: expose Abs in formula , which will get absolute value of another formula

0.20.0

2023-8-25

  • BREAK: refactor payInt and payFee which includes extraSupport from either another account or liquidation provider, with option to book PDL draw on ledger
  • NEW: expose Cumulative Net Loss Cumulative Net Loss Ratio Bond Rate Bond Weight Average Rate in formula
  • NEW: expose Avg in formula ,which can calculate average value from a list of deal stats.
  • NEW: expose RefRate in bond , now bond can be setup interest rate which reference to a value of deal , could be like 100% of Pool WAC coupon , or average of bond rate of bonds etc.
  • ENHANCE: add liquidity provider interest swap to balance sheet repot
  • ENHANCE: add new bool query is_most_senior_bond
  • ENHANCE: add new balance query PoolCurCollection returns target pool source balance in last collected period
  • ENHANCE: refactor account transfer by target reserve amount

0.19.15

2023-8-20

  • ENHANCE: add reserve account excess/gap to formula
  • ENHANCE: refactor bond step up coupon by date ,which pertains to Euro deals
  • ENHANCE: add comments to souce code and prepare to release to Hackage

0.19.12

2023-8-17

  • NEW: Add Step Up By Date /Cap/Floor coupon type for bond
  • NEW: Add Prepay Penalty attribute on Mortgage, penalty types includes:
    • rate0 before term N and rate1 after term N
    • Fixed amount in lifetime or before term N
    • Fixed pct in life time or bfore term N
    • Sliding from rate0 by step of rate1
    • Ladder type like first 12 periods with Pct of Rate0 , next 12 periods with Pct of Rate1
  • ENHANCE: refactor liquidity provider
    • include a maybe valid date of the agreement
    • include floater index

0.19.11

2023-8-14

  • ENHANCE: add calcAndPay action for fee
  • ENHANCE: expose new assumption on expense projection
  • ENHANCE: include a new NO_IE type to generate dates vector
  • FIX: Fix missing periods of recurr type of fee

0.19.10

2023-8-7

  • NEW : add a new expense type: TargetBalanceFee, which due amount = <formula 1> - <formula 2>
  • ENHANCE: add query total txn amount for account/bond/expense with optional comment as a filter
  • ENHANCE: expoese query on cumulative pool on recoveries principal interest prepayment
  • ENHANCE: expoese query on beg balance on pool

0.19.8

2023-7-24

  • ENHANCE: trancate payments records for bond with 0 balance and 0 due interest/due pricipal

0.19.7

2023-7-19

  • ENHANCE: expose query on cumulative pool recoveries
  • ENHANCE: expose factor in query
  • ENHANCE: ensure principal payment is cap via bond oustanding balance

0.19.6

2023-7-18

  • FIX: update PDL Ledger balance after bookBy action

0.19.4

2023-7-17

  • FIX: fix pricing error if bond flow size is 0

0.19.0

2023-7-1

  • BREAK : seperate payInt action and accrueInt action
  • ENHANCE: optimize Z-spread calculation
  • ENHANCE: re arrange deal.hs , break down code logic into seperate files.
  • NEW: include ledgers to accomodate PDL feature (Principal Deficiency Ledger)
  • ENHANCE: expose rounding on deal stats, which rounds interest rate change by a factor of fix amount ,or pay principal on balance by a factor of fix amount.
  • ENAHNCE: expose runDate endpoint as sandbox for user to play with <datePattern>

0.18.9

2023-6-23

  • NEW : add floorAndCap formula to set upper or lower bound of formula value
  • NEW : add formula based fee rate for pct and annual type of fee

0.18.1

2023-6-21

  • NEW : Project cashflow for a list of asset, with performance assumption
  • ENHANCE : Add limit for revolving buy action
  • ENHANCE : Add default waterfall
  • NEW : Add "IF-ELSE" in waterfall action

0.18.0

2023-6-8

  • NEW "Major" : expose revolving assumption !
  • NEW : Pre now support comparing with a balance type formula ,not limited to a balance number

0.17.2

2023-5-24

  • NEW: expose exclude dates and offset by days

0.17.1

2023-5-21

  • NEW: expose trigger status in Inspect

0.17.0

2023-5-21

  • NEW: expose BalanceSheet Report and Cashflow Report, user can query them via set flags in assumption
  • BREAK: normalized some account comments to be analysed when compling Cashflow Report

0.16.0

2023-5-13

  • NEW: expose bond with Step-Up coupon feature
  • BREAK:using DatePattern to annotate reset date for floater bonds
  • FIX: data query in the trigger

0.15.4

2023-5-6

  • FIX: Fix cashflow projection logic for Installment
  • Include DefaultedRecovery assumption for defaulted assets.

0.15

2023-5-1

  • Introduce new asset : AdjustRateMortgage with assumption:
    • init period,first reset cap, periodic reset cap,lifetime cap, lifetime floor
  • Docker hub will host each stable releases of Hastructure