#####################################################################
Properties:
#####################################################################

seed
expected
maximum
minimum

#####################################################################
Global:
#####################################################################

pois = poisson_distribution( seed, 3 )

loss = uniform_distribution( seed, 0, 1 )

splt = uniform_distribution( seed, 0, 1 )

date = uniform_distribution( seed, 1, 365 )

meta = uniform_distribution( seed, 1000, 9999 )

alpha = ( 1 / expected ) - 1

#####################################################################
Iteration:
#####################################################################

events = pick( pois )

factor = ( 1 - pick( loss )) ^ alpha

aggregate = maximum * factor

first  = aggregate
second = 0
third  = 0

first  = ( events == 2 ) ? aggregate * pick( splt ) : first
second = ( events == 2 ) ? aggregate - first        : second

first  = ( events == 3 ) ?   aggregate * pick( splt )   : first
second = ( events == 3 ) ? ( aggregate - first ) / 3    : second
third  = ( events == 3 ) ?   aggregate - first - second : third

#####################################################################
# first event
#####################################################################

Date       = pick( date )
EventId    = pick( meta )
ModelId    = pick( meta )
RegionId   = pick( meta )
BusinessId = pick( meta )

Subject = ( first >= minimum ) ? first : 0

insert

#####################################################################
# second event
#####################################################################

Date       = pick( date )
EventId    = pick( meta )
ModelId    = pick( meta )
RegionId   = pick( meta )
BusinessId = pick( meta )

Subject = ( second >= minimum ) ? second : 0

insert

#####################################################################
# third event
#####################################################################

Date       = pick( date )
EventId    = pick( meta )
ModelId    = pick( meta )
RegionId   = pick( meta )
BusinessId = pick( meta )

Subject = ( third >= minimum ) ? third : 0

insert

