Raterspec abstractions; extracted from dwelling
commit
2a4a5e6c0f
|
@ -73,6 +73,7 @@
|
||||||
\expandafter\gdef\csname @raterspec@#1\endcsname{
|
\expandafter\gdef\csname @raterspec@#1\endcsname{
|
||||||
\PackageWarning{raterspec}{Missing #2!
|
\PackageWarning{raterspec}{Missing #2!
|
||||||
\MessageBreak Define using \expandafter\protect\csname#1\endcsname}%
|
\MessageBreak Define using \expandafter\protect\csname#1\endcsname}%
|
||||||
|
\incomplete
|
||||||
\todo{No #2 have been defined.}%
|
\todo{No #2 have been defined.}%
|
||||||
}
|
}
|
||||||
% publically accessible input macro
|
% 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}
|
||||||
|
{}
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
|
|
@ -33,3 +33,15 @@
|
||||||
\pnumoff\part{Data Classification}\pnumon
|
\pnumoff\part{Data Classification}\pnumon
|
||||||
\input{raterspec/sec/dataclass}
|
\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}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,12 @@
|
||||||
\ProcessOptions\relax
|
\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][]%
|
\newenvironment{ratetable*}[5][]%
|
||||||
{%
|
{%
|
||||||
\def\@@lotcaption{#1}
|
\def\@@lotcaption{#1}
|
||||||
|
|
|
@ -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|)}
|
||||||
|
|
|
@ -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|)}
|
||||||
|
|
|
@ -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.
|
|
@ -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|)}
|
||||||
|
|
|
@ -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.
|
|
@ -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|)}
|
||||||
|
|
Loading…
Reference in New Issue