Mike Gerwitz

Activist for User Freedom

diff options
5 files changed, 98 insertions, 0 deletions
diff --git a/raterspec.cls b/raterspec.cls
index 94be281..6966c97 100644
--- a/raterspec.cls
+++ b/raterspec.cls
@@ -125,6 +125,10 @@
+\@raterspec@mkhook{premcalc}{premium calculations}
+ {}
+ {}
diff --git a/raterspec/parts.tex b/raterspec/parts.tex
index 5a9c35c..33e8047 100644
--- a/raterspec/parts.tex
+++ b/raterspec/parts.tex
@@ -33,3 +33,6 @@
\pnumoff\part{Data Classification}\pnumon
+\pnumoff\part{Premium Calculation}\pnumon
+ \input{raterspec/sec/premcalc}
diff --git a/raterspec/rates.sty b/raterspec/rates.sty
index 1ed00ec..28a83d0 100644
--- a/raterspec/rates.sty
+++ b/raterspec/rates.sty
@@ -6,6 +6,12 @@
+\def\tlookup#1#2{\ArgSty{#2 from} \tref{#1}}%
+\def\tlookupf#1#2{\tlookup{#1}{#2} \ArgSty{or fail in error}}%
diff --git a/raterspec/sec/premcalc.tex b/raterspec/sec/premcalc.tex
new file mode 100644
index 0000000..631e48f
--- /dev/null
+++ b/raterspec/sec/premcalc.tex
@@ -0,0 +1,16 @@
+% raterspec premium calculation
+%% user input
diff --git a/raterspec/sec/premcalc/dfn.tex b/raterspec/sec/premcalc/dfn.tex
new file mode 100644
index 0000000..b8f0afd
--- /dev/null
+++ b/raterspec/sec/premcalc/dfn.tex
@@ -0,0 +1,69 @@
+% Common definitions for premium calculation
+A \dfn{premium calculation}---or simply \dfn{calculation}---is an algorithm that
+\index{deterministic}deterministically operates on ^[input data] described in
+\sref{indata} and yields a numeric \dfn{premium}.
+A \dfn{premium!final premium} is the ^[premium] that represents the total cost
+to the insured and \shall be represented by a ^[floating-point] number rounded
+to the nearest representable value of two decimal places, in which the whole
+integer value \shall represent a dollar amount and the fractional value \shall
+represent cents. There \shall be only one final premium.\footnote{Multiple
+^[final premium]s may be obtained through multiple calls to the~^[rater].}
+A calculation \dfn{calculation!consideration} is defined as the point when an
+implementation determines if the calculation is applicable to the ^[input data].
+All defined rating calculations \shall be considered even if they exist outside
+of any dependency tree that arrives at the ^[premium!final premium].
+Calculations that are not directly used to determine the ^[premium!final
+premium] are termed \dfn{calculation!disjoint calculations}.\footnote{This
+allows supplementary data to be calculated.}
+\p{calcapplicable} A calculation \shall be
+\index{calculation!consideration}considered to be applicable if its defined
+^[classification] conditions are met.
+An applicable calculation \shall undergo \dfn{calculation!evaluation}, yielding
+a~premium that is the result of the application of the ^[input data] to its
+A calculation that has been determined to be inapplicable \shallnot execute any
+portion of its definition and \shall yield the scalar floating-point
+value~$0.00$.\footnote{The definition \shallnot be executed because it cannot
+reliably do so without the proper data (as determined by its required
+A calculation \may treat the result of another calculation as ^[input data].
+A calculation \may treat the result of a~^[classification] (see
+\sref{dataclass}) as ^[input data].
+Where it is required that a calculation be performed for each ^[location], the
+implementation \shall make such a determination either by (a)~use of a
+^[parameter] defined in \sref{locparam} that is always available or (b)~an
+implementation-defined ^[parameter] that explicitly provides the location count.
+For either case, an implementation \must fail in error if the location count
+cannot be determined.
+In the sections that follow, the following conventions \shall hold: (a)~Any
+reference to a table value, unless otherwise stated, \shall be located by
+matching the ^[parameter]s in the table column headers with the value of the
+associated argument in any input data; (b)~any ^[parameter] containing the
+term~``rate'' represents a~value obtained in an implementation-defined manner
+and an implementation \must fail in error if such a value cannot be obtained as
+mandated by the calculation definition.