aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sql/serenitasdb.sql14
1 files changed, 14 insertions, 0 deletions
diff --git a/sql/serenitasdb.sql b/sql/serenitasdb.sql
index 2984725b..dcbf01a3 100644
--- a/sql/serenitasdb.sql
+++ b/sql/serenitasdb.sql
@@ -433,3 +433,17 @@ BEGIN
END;
$$
LANGUAGE plpgsql;
+
+CREATE OR REPLACE function tranche_factor(attach smallint, detach smallint,
+ index_factor float, cumulativeloss float)
+RETURNS float AS $$
+DECLARE
+ newattach float;
+ newdetach float;
+
+BEGIN
+newattach:=LEAST(GREATEST((attach-100*cumulativeloss)/index_factor, 0), 1);
+newdetach:=LEAST(GREATEST((detach-100*cumulativeloss)/index_factor, 0), 1);
+RETURN (newdetach-newattach)/(detach-attach)*index_factor;
+END;
+$$ LANGUAGE plpgsql;