1
0
Fork 0

Raterspec abstractions; extracted from dwelling

master
Mike Gerwitz 2014-05-16 15:06:08 -04:00
commit 2a4a5e6c0f
9 changed files with 276 additions and 0 deletions

View File

@ -73,6 +73,7 @@
\expandafter\gdef\csname @raterspec@#1\endcsname{
\PackageWarning{raterspec}{Missing #2!
\MessageBreak Define using \expandafter\protect\csname#1\endcsname}%
\incomplete
\todo{No #2 have been defined.}%
}
% publically accessible input macro
@ -125,6 +126,22 @@
{}
{}
\@raterspec@mkhook{premcalc}{premium calculations}
{}
{}
\@raterspec@mkhook{forms}{forms}
{}
{}
\@raterspec@mkhook{coneimport}{c1 import details}
{}
{}
\@raterspec@mkhook{proguisteps}{program ui steps}
{}
{}
%%

View File

@ -33,3 +33,15 @@
\pnumoff\part{Data Classification}\pnumon
\input{raterspec/sec/dataclass}
\pnumoff\part{Premium Calculation}\pnumon
\input{raterspec/sec/premcalc}
\pnumoff\part{Forms}\pnumon
\input{raterspec/sec/forms}
\pnumoff\part{ConceptOne Import}\pnumon
\input{raterspec/sec/c1import}
\pnumoff\part{User Interface}\pnumon
\input{raterspec/sec/progui}

View File

@ -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}

View File

@ -0,0 +1,12 @@
% raterspec c1 import
%%
\label{s:c1import}
\index{ConceptOne!import|(}
\chapter{ConceptOne Integration}
\incomplete
\todo{Information on the ConceptOne integration and import process.}
\coneimportout
\index{ConceptOne!import|)}

View File

@ -0,0 +1,15 @@
% raterspec forms
%%
\label{s:forms}
\index{forms|(}
\begindeptgroup{c}
\chapter{Common Forms and Definitions}
\input{raterspec/sec/forms/dfn}
%% user input
\formsout
\enddeptgroup
\index{forms|)}

View File

@ -0,0 +1,17 @@
% Form definitions
\incomplete
\todo{Additional information on the existing process.}
\sigauth{NL}
A~\dfn*{form} is a~document that is included with a~policy to provide additional
information, coverages, and/or~exclusions.
\sigauth{NL}
A~form is considered to be \dfn{forms!applicable} when each of its specified
conditions are met. A~form \shall be included with the policy only when it is
applicable.
\sigauth{NL}
In the event that a~form code is applicable under multiple circumstances,
the~form \shall be attached to the document a single time.

View File

@ -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|)}

View File

@ -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.

View File

@ -0,0 +1,112 @@
% raterspec program ui
%%
\chapter{Program Client}
\label{s:programui}
\index{Program Client|(}
\sectiondept{it}
The \dfn{Program Client} is defined as the user interface that is used to
enter data about a ^Quote, receive a premium from one or more
^[supplier]s, and~optionally submit the~^Quote for further processing from
within ^[ConceptOne].
The Program Client \shall be accessed by using a~^[web browser] to
download the applicable resources---specifically, ^[HTML], ^[CSS], and
^[JavaScript]---from the ^[LoVullo Website].
\incomplete
\todo{While this chapter does contain information necessary to complete
the Scottsdale Commercial Lines project, it is largely incomplete.}
\section{Program UI}\label{s:program-ui}
\sectiondept{it}
\index{Program Client!Program UI|(}
The \dfn{Program UI}---hereinafter occasionally referred to simply as
``UI'' unambiguously within this chapter---\shall be defined as the
graphical user interface of the~Program Client and \shall render
directly in the user's ^[web browser] using only ^[HTML], ^[CSS],
and~^[JavaScript].\footnote{For example, browser plugins such as Java
and~Flash \shallnot be used in an implementation of the Program Client.}
A \dfn{Program Client!quoting step} is the highest level of ^Quote data
separation and consists only of question groups. The UI \shall display
no more than one step (see~\sref{program-steps}) to the ^user at any
given time.
\incomplete
A \dfn{Program Client!field group} contains only fields and provides an
optional delineation from other groups. Any number of groups \may be
displayed to the~^user at any given time.\todo{Types.}
A \dfn{Program Client!field} is a generic term that represents any
question, answer, display, or static element; any of these may appear
where a field is expected unless the field specification does not permit
such a field type.\footnote{For example, if a field is expected, then a
question or an~answer may be substituted. However, if a~question is
expected, then an~answer may not be substituted.}
\incomplete
A \dfn{Program Client!question} prompts the ^user for a datum and may be
directly modified by the user unless explicitly restricted. \todo{How
interacts with bucket; types.}
\incomplete
A \dfn{Program Client!answer} displays a~^user response associated with
a~question. \todo{Types}
\incomplete
A \dfn{Program Client!display} displays any arbitrary bucket datum to
the~^user. \todo{Bucket.}
\incomplete
A \dfn{Program Client!static element} displays arbitrary static text to
the~user and \may contain ^[HTML].
\index{Program Client!Program UI|)}
\begindeptgroup{uw/pm}
\section{Quoting Steps}\label{s:program-steps}
\incomplete
An implementation \shall display all steps, groups, and~fields (each defined
in~\sref{program-ui}) in the exact order provided within this section.
\todo{An~implementation \shall contain no steps, groups, or~fields that have not
been enumerated in this section.}
\sigauth{NL}
Within this section, questions are listed by the~labels that \shall be displayed
to the user. Below the label is additional text describing further
implementation requirements. When a question is indented to the level of the
paragraph of another question, then the indented question is strongly related to
the containing question in some logical manner; the containing question is said
to be a~\dfn{Program Client!question!parent question} any the~question that is
indented relative to it is said to be a~\dfn{Program Client!question!child
question}.\footnote{For example, a child question may be visible to the ^user
only when its~parent is answered in a specified manner.}
\incomplete
A question is said to be \dfn{Program Client!question!applicable} when it is to
be displayed to the user; questions are applicable by default. A question \shall
be visible to the user for entry only if it is applicable; otherwise, it \shall
be hidden from the user, its value reset to the specified default or---if no
default is specified---the default for its question type, and validations
\shallnot be performed. \todo{Question type defaults and validations}.
%% user-provided input
\proguistepsout
\enddeptgroup
\section{Quote Server Communication}
\sectiondept{it}
\index{Quote Server|(}
The Program Client \shall communicate with the~^[Quote Server] as required
in~\sref{hostenv-qs}.
\index{Quote Server|)}
\index{Program Client|)}