The policy period and effective date fields
The PolicyPeriod
entity is the root of the graph of revisioned objects. The PolicyPeriod is the branch that
all EffDated objects in
the graph point to. The PolicyPeriod
defines the PeriodStart
and PeriodEnd.
Although the PolicyPeriod entity is the root
of the revisioned graph, it does not behave like other revisioned objects.
The PolicyPeriod entity
delegates to the EffDatedBranch
interface, but not to EffDated.
Because the PolicyPeriod
is not EffDated, the PolicyPeriod is handled differently
than everything else in the policy period graph and does not have behaviors
like splitting on slice mode edit. Therefore, any property, such as one
containing data, a typekey, or foreign key, placed directly on PolicyPeriod behaves differently
than one placed on EffDated
objects such as PolicyLine
or PolicyLocation.
A property added directly to PolicyPeriod is for the full term.
These properties always have the same value from PeriodStart to PeriodEnd. You can still edit
a property value on PolicyPeriod
in a policy change, but that value replaces the former full term value.
The value is not effective as of the effective date of the policy change
job.
For example, the PolicyPeriod has unrevisioned
properties that apply to the full term. Some of these properties are:
TermNumber– AnintegerCreateUserandUpdateUser– Foreign key toUserJob– Foreign key toJob
Revisioned properties related to the PolicyPeriod are off of the EffectiveDatedFields object. Some
of these revisioned properties are:
OfferingCode– ApatterncodeProducerCode– Foreign key toProducerCodePrimaryLocation– Foreign key toPolicyLocationPrimaryNamedInsured– Foreign key toPolicyPriNamedInsuredBillingContact– Foreign key toPolicyBillingContactPolicyAddress– Foreign key toPolicyAddress
These properties are all items that are revisioned but not tied to a PolicyLine.
For convenience, the PolicyPeriod object defines derived properties
that enable you to access these revisioned properties. For example, you can access
EffectiveDatedFields.BillingContact through the derived property
PolicyPeriod.BillingContact.
Arrays and one-to-one relationships of EffDated objects behave the same
whether placed on the PolicyPeriod or an EffDated
object. All array or one-to-one relationships have a foreign key back to the object to
which they are attached. Arrays of EffDated objects attached to a
PolicyPeriod vary across effective time. For example, the
PolicyPeriod has an array of PolicyContactRole
objects that are EffDated. You can determine array membership by the
EffectiveDate and ExpirationDate. For example, on
1/1/2019, the array contains one PolicyContactRole object. On
3/1/2019, a policy change adds two PolicyContactRole objects. On
5/1/2019, another policy change removes the first PolicyContactRole.
Deciding whether to add a property to policyperiod or effectivedatedfields
A property defined on the PolicyPeriod object behaves differently than a property defined on the EffectiveDatedFields object.
The PolicyPeriod
has a ProducerCodeOfRecord
foreign key which points to a ProducerCode.
However, if you move the ProducerCodeOfRecord
foreign key from PolicyPeriod
to EffectiveDatedFields,
there could be more than one ProducerCodeOfRecord
for the period. The ProducerCodeOfRecord
could vary over effective time.
Suppose you have a submission with the policy period extending from 1/1/2019 to 1/1/2020. The
ProducerCodeOfRecord is Alpha:
- Foreign key on
PolicyPeriod– The producer code of record for the submission isAlpha. - Foreign key on
EffectiveDatedFields– The producer code of record for the submission from 1/1/2019 to 1/1/2020 isAlpha.
On the submission, both ways of representing the producer code of record are effectively the
same. Now you do a policy change effective 7/1/2019 and change the
ProducerCodeOfRecord to Beta:
- Foreign key on
PolicyPeriod– The producer code of record for the policy change isBeta. The producer code of record is effective for the full policy period. - Foreign key on
EffectiveDatedFields– The producer code of record isAlphafrom 1/1/2019 to 7/1/2019, and then it isBetafrom 7/1/2019 to 1/1/2020.
With the foreign key on an EffDated entity, you have a split
in effective time when you change the policy period. The foreign key
was one value, and at some date it changes to another value. When the
foreign key is on the PolicyPeriod,
any change is for the full period. For the policy change it is Beta for the full term—there
is no concept that is was Alpha
for some dates and then Beta
for other dates. You can still go back in history and see that the submission
had a different value. This is the key difference between the two models.
