Mike Gerwitz

Activist for User Freedom

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Gerwitz <gerwitzm@lovullo.com>2014-05-16 12:20:51 -0400
committerMike Gerwitz <gerwitzm@lovullo.com>2014-05-16 14:11:22 -0400
commit8c29c78438066bdf1a78e44d4df0ef0b637f5ee5 (patch)
tree32a34f101c621a72b827dba2be0666118f95dd5e
parent74278246d44022168f02905d73efcd646380dfde (diff)
downloadlvspec-8c29c78438066bdf1a78e44d4df0ef0b637f5ee5.tar.gz
lvspec-8c29c78438066bdf1a78e44d4df0ef0b637f5ee5.tar.bz2
lvspec-8c29c78438066bdf1a78e44d4df0ef0b637f5ee5.zip
Extracted general premcalc from dwelling
-rw-r--r--raterspec.cls4
-rw-r--r--raterspec/parts.tex3
-rw-r--r--raterspec/rates.sty6
-rw-r--r--raterspec/sec/premcalc.tex16
-rw-r--r--raterspec/sec/premcalc/dfn.tex69
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
\input{raterspec/sec/dataclass}
+\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 @@
\ProcessOptions\relax
+\def\var#1{{\tt#1}}%
+\def\locvar#1{\var{#1}_\loc}
+\def\tlookup#1#2{\ArgSty{#2 from} \tref{#1}}%
+\def\tlookupf#1#2{\tlookup{#1}{#2} \ArgSty{or fail in error}}%
+
+
\newenvironment{ratetable*}[5][]%
{%
\def\@@lotcaption{#1}
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
+%%
+
+\label{s:premcalc}
+\index{calculation|(}
+
+\chapter{Definitions}
+\label{s:premcalc:dfns}
+\input{raterspec/sec/premcalc/dfn}
+
+
+%% user input
+\premcalcout
+
+\index{calculation|)}
+
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
+\sectiondept{it}
+
+\sigauth{MTG}
+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}.
+
+\sigauth{MTG}
+\p{finalprem}
+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].}
+
+\sigauth{MTG}
+A calculation \dfn{calculation!consideration} is defined as the point when an
+implementation determines if the calculation is applicable to the ^[input data].
+
+\sigauth{MTG}
+\p{calc-supp}
+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.}
+
+\sigauth{MTG}
+\p{calcapplicable} A calculation \shall be
+\index{calculation!consideration}considered to be applicable if its defined
+^[classification] conditions are met.
+
+\sigauth{MTG}
+An applicable calculation \shall undergo \dfn{calculation!evaluation}, yielding
+a~premium that is the result of the application of the ^[input data] to its
+definition.
+
+\sigauth{MTG}
+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
+classifications).}
+
+\sigauth{MTG}
+A calculation \may treat the result of another calculation as ^[input data].
+
+\sigauth{MTG}
+A calculation \may treat the result of a~^[classification] (see
+\sref{dataclass}) as ^[input data].
+
+\sigauth{MTG}
+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.
+
+\sigauth{MTG}
+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.