These are primitive abstractions for insurance that will be improved upon over time. Some notable TODOs: \begin{enumerate} \item Enforce naming convention; \item Support scalar results; \item Fail on zero premium unless explicitly stated; \item Fail on negative premium (use a credit template); \item Rounding direction (currently only nearest); and \item Credit and surcharge. \end{enumerate} \todo{Template to abstract these {\tt rate-each} generation templates.} \ref{_factor_} defines a calculation that results in a factor which will later be used in a product. There are special considerations for these types of values---% generally, they should not have a value of~$0$ if some sort of calculation condition or lookup is not met, as that would have the effect of wiping out premium.\footnote{ Note that every generator index can be non-zero but still sum up to a zero yield, which would trigger this error.} If zero is desired, \tt{@allow-zero@} must be set to \tt{true} to explicitly permit it.