Raterspec abstractions; extracted from dwelling
commit
2a4a5e6c0f
|
@ -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}
|
||||
{}
|
||||
{}
|
||||
|
||||
|
||||
|
||||
%%
|
||||
|
|
|
@ -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}
|
||||
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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