forked from OasisLMF/OasisLMF
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ported reinsurance tests from reinsurancetesttool repo.
- Loading branch information
Showing
247 changed files
with
202,656 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,3 +17,6 @@ mock | |
responses | ||
Sphinx | ||
tox | ||
parameterized | ||
tabulate | ||
backports |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,246 @@ | ||
import pandas as pd | ||
import os | ||
import subprocess | ||
import shutil | ||
from oasislmf.exposures import oed | ||
|
||
|
||
class DirectLayer(object): | ||
""" | ||
Set of direct policiies. | ||
Generates ktools inputs and runs financial module. | ||
Does not handle multiple policies on same set of risks i.e. multiple layers. | ||
NB. This is a simple implication to support the reinsurance Oasis file generation. | ||
A full implementation supporting OED account and location files will be developed | ||
and included in the OasisLmf package separately allowing this code to be deprecated. | ||
""" | ||
|
||
def __init__(self, accounts, locations): | ||
self.accounts = accounts | ||
self.locations = locations | ||
|
||
self.item_ids = list() | ||
self.item_tivs = list() | ||
self.coverages = pd.DataFrame() | ||
self.items = pd.DataFrame() | ||
self.fmprogrammes = pd.DataFrame() | ||
self.fmprofiles = pd.DataFrame() | ||
self.fm_policytcs = pd.DataFrame() | ||
self.fm_xrefs = pd.DataFrame() | ||
self.xref_descriptions = pd.DataFrame() | ||
|
||
self.item_id_dict = dict() | ||
|
||
def _get_location_tiv(self, location, coverage_type_id): | ||
switcher = { | ||
oed.BUILDING_COVERAGE_TYPE_ID: location.BuildingTIV, | ||
oed.OTHER_BUILDING_COVERAGE_TYPE_ID: location.OtherTIV, | ||
oed.CONTENTS_COVERAGE_TYPE_ID: location.ContentsTIV, | ||
oed.TIME_COVERAGE_TYPE_ID: location.BITIV | ||
} | ||
return switcher.get(coverage_type_id, 0) | ||
|
||
def generate_oasis_structures(self): | ||
|
||
coverage_id = 0 | ||
item_id = 0 | ||
group_id = 0 | ||
policy_agg_id = 0 | ||
profile_id = 0 | ||
|
||
coverages_list = list() | ||
items_list = list() | ||
fmprogrammes_list = list() | ||
fmprofiles_list = list() | ||
fm_policytcs_list = list() | ||
fm_xrefs_list = list() | ||
xref_descriptions_list = list() | ||
|
||
site_agg_id = 0 | ||
for policy_index, policy in self.accounts.iterrows(): | ||
policy_agg_id = policy_agg_id + 1 | ||
profile_id = profile_id + 1 | ||
fmprofiles_list.append( | ||
oed.get_profile( | ||
profile_id, | ||
deductible=policy.AccDed6All, | ||
limit=policy.AccLimit6All)) | ||
fm_policytcs_list.append(oed.FmPolicyTc( | ||
layer_id=1, | ||
level_id=2, | ||
agg_id=policy_agg_id, | ||
profile_id=profile_id | ||
)) | ||
for location_index, location in self.locations.loc[self.locations["AccNumber"] == policy.AccNumber].iterrows(): | ||
group_id = group_id + 1 | ||
site_agg_id = site_agg_id + 1 | ||
profile_id = profile_id + 1 | ||
|
||
fmprofiles_list.append( | ||
oed.get_profile( | ||
profile_id=profile_id, | ||
deductible=location.LocDed6All, | ||
limit=location.LocLimit6All)) | ||
fm_policytcs_list.append(oed.FmPolicyTc( | ||
layer_id=1, | ||
level_id=1, | ||
agg_id=site_agg_id, | ||
profile_id=profile_id | ||
)) | ||
fmprogrammes_list.append( | ||
oed.FmProgramme( | ||
from_agg_id=site_agg_id, | ||
level_id=2, | ||
to_agg_id=policy_agg_id | ||
) | ||
) | ||
|
||
for coverage_type_id in oed.COVERAGE_TYPES: | ||
tiv = self._get_location_tiv(location, coverage_type_id) | ||
if tiv > 0: | ||
coverage_id = coverage_id + 1 | ||
self.item_id_dict[coverage_id] = location | ||
|
||
coverages_list.append( | ||
oed.Coverage( | ||
coverage_id=coverage_id, | ||
tiv=tiv, | ||
)) | ||
for peril in oed.PERILS: | ||
item_id = item_id + 1 | ||
self.item_ids.append(item_id) | ||
self.item_tivs.append(tiv) | ||
items_list.append( | ||
oed.Item( | ||
item_id=item_id, | ||
coverage_id=coverage_id, | ||
areaperil_id=-1, | ||
vulnerability_id=-1, | ||
group_id=group_id | ||
)) | ||
fmprogrammes_list.append( | ||
oed.FmProgramme( | ||
from_agg_id=item_id, | ||
level_id=1, | ||
to_agg_id=site_agg_id | ||
) | ||
) | ||
fm_xrefs_list.append( | ||
oed.FmXref( | ||
output_id=item_id, | ||
agg_id=item_id, | ||
layer_id=1 | ||
)) | ||
xref_descriptions_list.append( | ||
oed.XrefDescription( | ||
xref_id=item_id, | ||
account_number=location.AccNumber, | ||
location_number=location.LocNumber, | ||
coverage_type_id=coverage_type_id, | ||
peril_id=peril, | ||
policy_number=policy.PolNumber, | ||
#portfolio_number=policy.PortNumber, | ||
tiv=tiv | ||
) | ||
) | ||
|
||
self.coverages = pd.DataFrame(coverages_list) | ||
self.items = pd.DataFrame(items_list) | ||
self.fmprogrammes = pd.DataFrame(fmprogrammes_list) | ||
self.fmprofiles = pd.DataFrame(fmprofiles_list) | ||
self.fm_policytcs = pd.DataFrame(fm_policytcs_list) | ||
self.fm_xrefs = pd.DataFrame(fm_xrefs_list) | ||
self.xref_descriptions = pd.DataFrame(xref_descriptions_list) | ||
|
||
|
||
def write_oasis_files(self, directory=None): | ||
self.coverages.to_csv("coverages.csv", index=False) | ||
self.items.to_csv("items.csv", index=False) | ||
self.fmprogrammes.to_csv("fm_programme.csv", index=False) | ||
self.fmprofiles.to_csv("fm_profile.csv", index=False) | ||
self.fm_policytcs.to_csv("fm_policytc.csv", index=False) | ||
self.fm_xrefs.to_csv("fm_xref.csv", index=False) | ||
|
||
if directory is None: | ||
directory = "direct" | ||
else: | ||
directory = os.path.join(directory, "direct") | ||
|
||
if os.path.exists(directory): | ||
shutil.rmtree(directory) | ||
os.makedirs(directory) | ||
|
||
input_files = oed.GUL_INPUTS_FILES + oed.IL_INPUTS_FILES | ||
|
||
for input_file in input_files: | ||
conversion_tool = oed.CONVERSION_TOOLS[input_file] | ||
input_file_path = input_file + ".csv" | ||
if not os.path.exists(input_file_path): | ||
continue | ||
|
||
output_file_path = os.path.join(directory, input_file + ".bin") | ||
command = "{} < {} > {}".format( | ||
conversion_tool, input_file_path, output_file_path) | ||
proc = subprocess.Popen(command, shell=True) | ||
proc.wait() | ||
if proc.returncode != 0: | ||
raise Exception( | ||
"Failed to convert {}: {}".format(input_file_path, command)) | ||
|
||
|
||
def report_item_ids(self): | ||
""" | ||
return a dataframe showing the relationship between item_id's and Locations | ||
""" | ||
locations_list = [self.item_id_dict[ID].LocNumber for ID in self.item_ids] | ||
from_agg_ids = self.fmprogrammes[self.fmprogrammes['level_id'] == 1].from_agg_id.tolist() | ||
item_map_df = pd.concat([ | ||
self.items[['item_id','coverage_id']], | ||
self.coverages['tiv'], | ||
pd.DataFrame({'LocNumber': locations_list}) | ||
],axis=1) | ||
# filter 'item_id' that exisit in 'from_agg_id' | ||
return item_map_df[item_map_df['item_id'].isin(from_agg_ids)] | ||
|
||
def apply_fm(self, loss_percentage_of_tiv=1.0, net=False): | ||
guls_list = list() | ||
for item_id, tiv in zip(self.item_ids, self.item_tivs): | ||
event_loss = loss_percentage_of_tiv * tiv | ||
guls_list.append( | ||
oed.GulRecord(event_id=1, item_id=item_id, sidx=-1, loss=event_loss)) | ||
guls_list.append( | ||
oed.GulRecord(event_id=1, item_id=item_id, sidx=-2, loss=0)) | ||
guls_list.append( | ||
oed.GulRecord(event_id=1, item_id=item_id, sidx=1, loss=event_loss)) | ||
guls_df = pd.DataFrame(guls_list) | ||
guls_df.to_csv("guls.csv", index=False) | ||
net_flag = "" | ||
if net: | ||
net_flag = "-n" | ||
command = "gultobin -S 1 < guls.csv | fmcalc -p direct {} -a {} | tee ils.bin | fmtocsv > ils.csv".format( | ||
net_flag, oed.ALLOCATE_TO_ITEMS_BY_PREVIOUS_LEVEL_ALLOC_ID) | ||
proc = subprocess.Popen(command, shell=True) | ||
proc.wait() | ||
if proc.returncode != 0: | ||
raise Exception("Failed to run fm") | ||
losses_df = pd.read_csv("ils.csv") | ||
losses_df.drop(losses_df[losses_df.sidx != 1].index, inplace=True) | ||
del losses_df['sidx'] | ||
guls_df.drop(guls_df[guls_df.sidx != 1].index, inplace=True) | ||
del guls_df['event_id'] | ||
del guls_df['sidx'] | ||
guls_df = pd.merge( | ||
self.xref_descriptions, | ||
guls_df, left_on=['xref_id'], right_on=['item_id']) | ||
losses_df = pd.merge( | ||
guls_df, | ||
losses_df, left_on='xref_id', right_on='output_id', | ||
suffixes=["_gul", "_il"]) | ||
del losses_df['event_id'] | ||
del losses_df['output_id'] | ||
del losses_df['xref_id'] | ||
del losses_df['item_id'] | ||
|
||
return losses_df |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
PortNumber,PortName,PortNotes,AccNumber,AccName,AccGroup,AccStatus,ExpiringAccNumber,CedantName,AccCurrency,AccUserDef1,AccUserDef2,AccUserDef3,AccUserDef4,AccUserDef5,AccPeril,AccDedCode1Building,AccDedType1Building,AccDed1Building,AccMinDed1Building,AccMaxDed1Building,AccDedCode2Other,AccDedType2Other,AccDed2Other,AccMinDed2Other,AccMaxDed2Other,AccDedCode3Contents,AccDedType3Contents,AccDed3Contents,AccMinDed3Contents,AccMaxDed3Contents,AccDedCode4BI,AccDedType4BI,AccDed4BI,AccMinDed4BI,AccMaxDed4BI,AccDedCode5PD,AccDedType5PD,AccDed5PD,AccMinDed5PD,AccMaxDed5PD,AccDedCode6All,AccDedType6All,AccDed6All,AccMinDed6All,AccMaxDed6All,AccLimitCode1Building,AccLimitType1Building,AccLimit1Building,AccLimitCode2Other,AccLimitType2Other,AccLimit2Other,AccLimitCode3Contents,AccLimitType3Contents,AccLimit3Contents,AccLimitCode4BI,AccLimitType4BI,AccLimit4BI,AccLimitCode5PD,AccLimitType5PD,AccLimit5PD,AccLimitCode6All,AccLimitType6All,AccLimit6All,PolNumber,PolStatus,PolInceptionDate,PolExpiryDate,ProducerName,Underwriter,BranchName,LOB,ExpiringPolNumber,PolPerilsCovered,PolGrossPremium,PolTax,PolBrokerage,PolNetPremium,LayerNumber,LayerParticipation,LayerLimit,LayerAttachment,HoursClause,PolPeril,PolDedCode1Building,PolDedType1Building,PolDed1Building,PolMinDed1Building,PolMaxDed1Building,PolDedCode2Other,PolDedType2Other,PolDed2Other,PolMinDed2Other,PolMaxDed2Other,PolDedCode3Contents,PolDedType3Contents,PolDed3Contents,PolMinDed3Contents,PolMaxDed3Contents,PolDedCode4BI,PolDedType4BI,PolDed4BI,PolMinDed4BI,PolMaxDed4BI,PolDedCode5PD,PolDedType5PD,PolDed5PD,PolMinDed5PD,PolMaxDed5PD,PolDedCode6All,PolDedType6All,PolDed6All,PolMinDed6All,PolMaxDed6All,PolLimitCode1Building,PolLimitType1Building,PolLimit1Building,PolLimitCode2Other,PolLimitType2Other,PolLimit2Other,PolLimitCode3Contents,PolLimitType3Contents,PolLimit3Contents,PolLimitCode4BI,PolLimitType4BI,PolLimit4BI,PolLimitCode5PD,PolLimitType5PD,PolLimit5PD,PolLimitCode6All,PolLimitType6All,PolLimit6All,StepFunctionName,StepTriggerType,StepNumber,StartTriggerBuilding,EndTriggerBuilding,DeductibleBuilding,PayOutBuilding,StartTriggerContent,EndTriggerContent,DeductibleContent,PayOutContent,StartTriggerBuildingContent,EndTriggerBuildingContent,DeductibleBuildingContent,PayOutBuildingContent,MinimumTIV,ScaleFactor,IsLimitAtDamage,PolUserDef1,PolUserDef2,PolUserDef3,PolUserDef4,PolUserDef5,CondNumber,CondName,CondPeril,CondDedCode1Building,CondDedType1Building,CondDed1Building,CondMinDed1Building,CondMaxDed1Building,CondDedCode2Other,CondDedType2Other,CondDed2Other,CondMinDed2Other,CondMaxDed2Other,CondDedCode3Contents,CondDedType3Contents,CondDed3Contents,CondMinDed3Contents,CondMaxDed3Contents,CondDedCode4BI,CondDedType4BI,CondDed4BI,CondMinDed4BI,CondMaxDed4BI,CondDedCode5PD,CondDedType5PD,CondDed5PD,CondMinDed5PD,CondMaxDed5PD,CondDedCode6All,CondDedType6All,CondDed6All,CondMinDed6All,CondMaxDed6All,CondLimitCode1Building,CondLimitType1Building,CondLimit1Building,CondLimitCode2Other,CondLimitType2Other,CondLimit2Other,CondLimitCode3Contents,CondLimitType3Contents,CondLimit3Contents,CondLimitCode4BI,CondLimitType4BI,CondLimit4BI,CondLimitCode5PD,CondLimitType5PD,CondLimit5PD,CondLimitCode6All,CondLimitType6All,CondLimit6All | ||
1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,WW1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10000,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,10000, - ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | ||
1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,WW1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10000,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,10000, - ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
AccNumber,LocNumber,LocName,LocGroup,IsPrimary,IsTenant,BuildingID,LocInceptionDate,LocExpiryDate,PercentComplete,CompletionDate,CountryCode,Latitude,Longitude,StreetAddress,PostalCode,City,SubArea2,SubArea,LowResCresta,HighResCresta,AreaCode,AreaName,AddressMatch,GeocodeQuality,Geocoder,OrgOccupancyScheme,OrgOccupancyCode,OrgConstructionScheme,OrgConstructionCode,OccupancyCode,ConstructionCode,YearBuilt,NumberOfStories,NumberOfBuildings,FloorArea,FloorAreaUnit,LocUserDef1,LocUserDef2,LocUserDef3,LocUserDef4,LocUserDef5,LocPerilsCovered,BuildingTIV,OtherTIV,ContentsTIV,BITIV,BIPOI,LocCurrency,LocGrossPremium,LocTax,LocBrokerage,LocNetPremium,NonCatGroundUpLoss,LocParticipation,PayoutBasis,ReinsTag,CondTag,CondPriority,LocDedCode1Building,LocDedType1Building,LocDed1Building,LocMinDed1Building,LocMaxDed1Building,LocDedCode2Other,LocDedType2Other,LocDed2Other,LocMinDed2Other,LocMaxDed2Other,LocDedCode3Contents,LocDedType3Contents,LocDed3Contents,LocMinDed3Contents,LocMaxDed3Contents,LocDedCode4BI,LocDedType4BI,LocDed4BI,LocMinDed4BI,LocMaxDed4BI,LocDedCode5PD,LocDedType5PD,LocDed5PD,LocMinDed5PD,LocMaxDed5PD,LocDedCode6All,LocDedType6All,LocDed6All,LocMinDed6All,LocMaxDed6All,LocLimitCode1Building,LocLimitType1Building,LocLimit1Building,LocLimitCode2Other,LocLimitType2Other,LocLimit2Other,LocLimitCode3Contents,LocLimitType3Contents,LocLimit3Contents,LocLimitCode4BI,LocLimitType4BI,LocLimit4BI,LocLimitCode5PD,LocLimitType5PD,LocLimit5PD,LocLimitCode6All,LocLimitType6All,LocLimit6All,BIWaitingPeriod,LocPeril,YearUpgraded,SurgeLeakage,SprinklerType,RoofCover,RoofYearBuilt,RoofGeometry,RoofEquipment,RoofFrame,RoofMaintenance,BuildingCondition,RoofAttachedStructure,RoofDeck,RoofPitch,RoofAnchorage,RoofDeckAttachment,RoofCoverAttachment,GlassType,LatticeType,FloodZone,SoftStory,Basement,BasementLevelCount,WindowProtection,FoundationType,WallAttachedStructure,AppurtenantStructure,ConstructionQuality,GroundEquipment,EquipmentBracing,Flashing,BuildingShape,ShapeIrregularity,Pounding,Ornamentation,SpecialEQConstruction,Retrofit,CrippleWalls,FoundationConnection,ShortColumn,Fatigue,Cladding,BIPreparedness,BIRedundancy,BuildingElevation,BuildingElevationUnit,Datum,GroundElevation,GroundElevationUnit,Tank,Redundancy,InternalPartition,ExternalDoors,Torsion,MechanicalEquipmentSide,ContentsWindVuln,ContentsFloodVuln,ContentsQuakeVuln,SmallDebris,FloorsOccupied,FloodDefenseElevation,FloodDefenseElevationUnit,FloodDebrisResilience,BaseFloodElevation,BaseFloodElevationUnit,BuildingHeight,BuildingHeightUnit,BuildingValuation,TreeExposure,Chimney,BuildingType,Packaging,Protection,SalvageProtection,ValuablesStorage,DaysHeld,BrickVeneer,FEMACompliance,CustomFloodSOP,CustomFloodZone,MultiStoryHall,BuildingExteriorOpening,ServiceEquipmentProtection,TallOneStory,TerrainRoughness,NumberOfEmployees,Payroll | ||
1,1,0,0,0,0,0,0,0,0,0,US,0,0,0,0,0,0,,0,0,CA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1000,0,500,500,0,0,0,0,0,0,0,0,0,0,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | ||
1,2,0,0,0,0,0,0,0,0,0,US,0,0,0,0,0,0,,0,0,CA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1000,0,500,500,0,0,0,0,0,0,0,0,0,0,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | ||
2,3,0,0,0,0,0,0,0,0,0,US,0,0,0,0,0,0,,0,0,CA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1000,0,500,500,0,0,0,0,0,0,0,0,0,0,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | ||
2,4,0,0,0,0,0,0,0,0,0,US,0,0,0,0,0,0,,0,0,CA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1000,0,500,500,0,0,0,0,0,0,0,0,0,0,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
ReinsNumber,ReinsLayerNumber,ReinsName,ReinsPerilCode,ReinsInceptionDate,ReinsExpiryDate,CededPercent,RiskLimit,RiskAttachment,OccLimit,OccAttachment,OccurenceFranchiseDed,OccurenceReverseFranchise,AggregateLimit,AggregateAttachmentPoint,ReinsCurrency,InuringPriority,ReinsType,AttachmentBasis,ReinstatementNumber,ReinstatementCharge,ReinsPremium,ReinsHoursClause,PlacedPercent,DeemedPercentPlaced,ReinsFXrate,TreatyShare,UseReinsDates | ||
1,1,ABC QS,WW1,01/01/2018,31/12/2018,1.0,0,0,1000,50,0,0,0,0,USD,1,CAT XL,LO,99,0,6,,1,1,1,1,No |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
ReinsNumber,PortNumber,AccNumber,PolNumber,LocationGroup,LocNumber,CedantName,ProducerName,LOB,CountryCode,ReinsuranceTag,CededPercent,RiskLevel | ||
1,1,1,,,,,,,,,1,SEL |
Oops, something went wrong.