Figure 9 — Per-Document View History Data Model (Document-Type-Isolated Schema)

Offer Entity
offer_id (string, PK)
property_address (string)
status (enum)
offer_price (number)
... (other fields)
Array Fields:
viewed_by [ ]
counter_offer_viewed_by [ ]
amendment_viewed_by [ ]
reinstatement_viewed_by [ ]
email_delivery_log [ ]
viewed_by — Original Offer Document
viewer_email: string
viewer_role: enum
viewed_at: datetime
source: enum [portal, email]
Populated when: offer is submitted and emailed; party opens portal view of original offer.
counter_offer_viewed_by — Counter Offer Document
viewer_email: string
viewer_role: enum
viewed_at: datetime
source: enum [portal, email]
Populated when: counter offer is sent and emailed; party opens portal view of counter offer.
amendment_viewed_by — Amendment Documents
amendment_index: number ★
viewer_email: string
viewer_role: enum
viewed_at: datetime
source: enum [portal, email]
★ amendment_index isolates each amendment's view history independently. Multiple amendments tracked without collision in a single array.
reinstatement_viewed_by — Reinstatement Proposal Document
viewer_email: string
viewer_role: enum
viewed_at: datetime
source: enum [portal, email]
Populated when: reinstatement is proposed and emailed; party opens portal view of reinstatement proposal.
email_delivery_log — Email Send Audit Log
event_type: string
sent_at: datetime
recipients[ ] — email: string, role: string, success: boolean, error: string
Cross-referenced by Engagement Correlation Engine against viewed_by arrays to produce a unified per-party delivery, open, and view timeline.
Key Design Properties (Patent Claims)
1. Document Isolation
Each document type has its own dedicated array. View events for an offer do not mix with view events for a counter offer or amendment.
2. Amendment Indexing
amendment_viewed_by uses an amendment_index integer key to track each amendment independently within a single array.
3. Dual-Source Tagging
The source field (portal vs. email) on every view event enables tri-source correlation with email_delivery_log.
4. Append-Only Audit Trail
All arrays are append-only. No view event is ever overwritten, enabling full historical replay and litigation-grade auditability.
Fig. 9 — Document-Type-Isolated View History Data Model. The Offer entity stores five parallel arrays for tracking document engagement. Each document type (original offer, counter offer, amendment, reinstatement) maintains an independent view history. The amendment_viewed_by array uses an amendment_index key to isolate per-amendment engagement. All view events carry a source field (portal or email) enabling cross-referencing with email_delivery_log by the Engagement Correlation Engine.