The proposed domain graph connects source evidence to measurable outcomes:
SourceSystem
↓
SourceAsset
↓
Evidence
↓
StormEvent
↓
StormEventRevision
↓
HailSwath
↓
ImpactAssessment
↓
Property
↓
ActionPlan
↓
Assignment or Campaign
↓
Activity
↓
Outcome
↓
Attributionid
slug
name
provider
status
dataClassification
licenseReference
createdAt
updatedAtid
sourceSystemId
externalId
product
region
observedAt
acquiredAt
contentHash
rawObjectKey
status
metadataImplemented source-asset identity is (source, sourceKey, sourceVersion).
sourceVersion uses available source modification metadata so a provider
correction does not overwrite an earlier input. Event processing also keys the
materialization by eventId, which permits deliberate promotion from the live
feed to a benchmark.
id
sourceAssetId
type
classification
geometry
value
unit
confidence
observedAt
metadataid
type
status
startedAt
endedAt
currentRevisionId
createdAt
updatedAtid
eventId
revision
geometry
severity
confidence
maxEstimatedHail
labels
algorithmReleaseId
createdAtid
eventRevisionId
product
windowMinutes
geometry
maximum
unit
sourceMetadataid
eventId
source
sourceId
reportedAt
geometry
hailSize
unit
status
classificationid
tenantId?
normalizedAddress
latitude
longitude
parcelId
structureId
sourceMetadataThe architecture carefully separates public or shared property identity from tenant-owned enrichment.
id
provider
providerId
geometry
landUse
metadataThe current D1 schema catalogs parcel partitions rather than one nationwide row per geometry. R2 holds bulk, immutable partition artifacts. No production parcel release is ingested.
id
propertyId
geometry
buildingArea
useType
metadataid
structureId
material
estimatedAge
area
pitch
source
confidenceid
eventId
eventRevisionId
propertyId
meshMax
poshMax
exposure
damageLikelihood
confidence
opportunityScore
eligibilityState
algorithmReleaseIdid
tenantId
eventId
eventRevisionId
version
status
strategy
createdBy
approvedByid
actionPlanId
geometry
priority
candidateCount
capacityid
tenantId
assigneeId
propertyId?
territoryId?
actionPlanId
status
dueAtid
tenantId
sourceType
sourceId
type
value
occurredAt
metadataCRM models include Lead, Contact, Opportunity, and Activity. They support external integration IDs without letting one provider schema define the internal domain.
Campaign models include Audience, AudienceMember, Campaign, CampaignRevision, CampaignMember, and Attribution.
Evidence models include EvidenceItem, Attachment, ProvenanceManifest, Report, and Review.
Representative relationships include:
StormEvent
├── hasMany → StormEventRevision
├── hasMany → GroundReport
├── hasMany → ImpactAssessment
└── hasMany → ActionPlan
StormEventRevision
├── belongsTo → StormEvent
├── hasMany → Evidence
└── hasMany → HailSwath
Property
├── belongsTo → Parcel
├── hasOneOrMany → Structure
├── hasMany → ImpactAssessment
├── hasMany → Monitor
└── hasMany → FieldVisit
ImpactAssessment
├── belongsTo → Property
├── belongsTo → StormEvent
└── mayProduce → Assignment or AudienceCandidate
Campaign
├── belongsTo → StormEvent?
├── hasMany → CampaignMember
└── hasMany → Attribution