SYSTEM AND METHOD FOR ISSUING AND TRACKING FUNDING FOR CONTRACTING SERVICES
20230289893 · 2023-09-14
Assignee
Inventors
Cpc classification
Y02A50/00
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
Abstract
The system provided allows weather data containing errors to be pre-processed in a way that quickly enhances data integrity which increases the efficiency and effectiveness of warnings. The system further provides a means to selectively distribute messages related to warnings to a group of recipients in a known geographic area. The system further comprises a way to advise recipients of property repair financing to address the needs of underinsured recipients.
Claims
1. A system for issuing weather alerts comprising: a system server, having a first processor and a first memory, connected to a network; a data preprocessor, having a second processor, operatively connected to a second memory, a set of data queues, a data comparator and an average generator, operatively connected to the system server; a weather data processor, having a third processor and a third memory, connected to the system server, through the network; a message receiver processor, having a fourth processor and a fourth memory, connected to the system server, through the network; and the first memory, the second memory, the third memory and the fourth memory including a set of instructions that when executed cause the system to: retrieve a customer location list; retrieve an alert data message for a location from the customer location list; determine a data integrity condition from the alert data message; generate an alert type based on the data integrity condition; determine a message type based on the alert type; and send a message, based on the message type, to the message receiver processor.
2. The system of claim 1, wherein the alert type is at least one of a group of severe thunder warning, tornado warning, flash flood warning, special marine warning, snow squall warning, dust storm warning, dust storm advisory, and extreme wind warning.
3. The system of claim 1, wherein the alert data message is one of a group of GeoJSON, JSON-LD, DWML, OXML, CAP and ATOM.
4. The system of claim 1, wherein the data integrity condition is one of a timestamp error and an alert type error.
5. The system of claim 1, wherein the step of determining the data integrity condition further comprises: detecting a missing time stamp and detecting a discontinuous alert type.
6. The system of claim 1, wherein the message type is related to an insurance deductible funding product.
7. The system of claim 6, wherein the insurance deductible funding product is one of a group of a roof deductible product, a vehicle deductible product, a health deductible product, and a boat deductible product.
8. The system of claim 1, wherein the step of determining the data integrity condition further comprises: determining if the alert type is present in the alert data message.
9. The system of claim 1, wherein the second processor further comprises: a first core, operatively connected to a second core.
10. The system of claim 9, wherein the data preprocessor further comprises: a first data queue, of the set of data queues, operatively connected to the first core; a second data queue, of the set of data queues, operatively connected to the first core; the data comparator, operatively connected to the first data queue and the second data queue; and the average generator, running on the first core, executing the steps of: receiving a first data block set; receiving a second data block set; activating the data comparator to generate a comparison of one of a set of time stamps and a set of alert types from the first data block set and the second data block set; generating an average time stamp from the set of time stamps; and generating an average alert type from the set of alert types.
11. A method for issuing weather alerts comprising: providing a system server, having a first processor and a first memory, connected to a network; providing a data preprocessor, having a second processor, operatively connected to a second memory, a set of data queues, a data comparator and an average generator, operatively connected to the system server; providing a weather data processor, having a third processor and a third memory, connected to the system server, through the network; providing a message receiver processor, having a fourth processor and a fourth memory, connected to the system server, through the network; and providing the first memory, the second memory and the third memory with a set of instructions carry out the steps of: retrieve a customer location list; retrieve an alert data message for a location from the customer location list; isolate an alert type from the alert data message; determine a data integrity condition from the alert data message; correct a data integrity error based on the data integrity condition; determine a message type based on the data integrity error; and send a message, based on the message type, to the message receiver processor.
12. The method of claim 11, wherein the alert type is provided as at least one of a group of severe thunder warning, tornado warning, flash flood warning, special marine warning, snow squall warning, dust storm warning, dust storm advisory, and extreme wind warning.
13. The method of claim 11, wherein the alert data message is provided as one of a group of GeoJSON, JSON-LD, DWML, OXML, CAP and ATOM.
14. The method of claim 11, wherein the data integrity error is provided as one of a timestamp error and an alert type error.
15. The method of claim 11, wherein the step of determining the data integrity condition further comprises one of a group of: detecting a discontinuous time stamp and detecting a discontinuous alert type.
16. The method of claim 11, wherein the message type is provided as an insurance deductible funding product.
17. The method of claim 16, wherein the insurance deductible funding product is provided as one of a group of a roof deductible product, a vehicle deductible product, a health deductible product, and a boat deductible product.
18. The method of claim 11, wherein the step of correcting the data integrity error further comprises one of a group of: Generating an average timestamp and generating an average alter type.
19. The method of claim 11, wherein the step of providing the second processor further comprises: a first core, operatively connected to a second core.
20. The method of claim 19, wherein the step of providing the data preprocessor further comprises: providing a first data queue, of the set of data queues, operatively connected to the first core; providing a second data queue, of the set of data queues, operatively connected to the first core; providing the data comparator, operatively connected to the first data queue and the second data queue; and providing the average generator, running on the first core, executing the steps of: receiving a first data block set; receiving a second data block set; activating the data comparator to generate a comparison of one of a set of time stamps and a set of alert types from the first data block set and the second data block set; generating an average time stamp from the set of time stamps; and generating an average alert type from the set of alert types.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
DETAILED DESCRIPTION OF THE INVENTION
[0038] Referring then to
[0039] System 100 is comprised of server 104 operatively connected to database 106. The system server is connected to wide area network 102, such as the internet. The system is further comprised of administrator device 124, salesman device 120, partner device 108, contractor device 116, and client device 112, each connected to the system server through network 102. Devices 108, 112, 116, 120, and 124 are each a smart device such as a computer, tablet, or cell phone. Devices 108, 112, 116, 120, and 124 include web applications 110, 114, 118, 122, 126, respectively. In a preferred embodiment, the web applications are each internet browsers. In alternate embodiments, the web application may also be a dedicated application installed on a device.
[0040] System 100 is further comprised of insurance company device 128 connected to network 102. In a preferred embodiment, insurance company device 128 is a server running web app 130. In another embodiment, insurance company device 128 is a smart device, such as a computer, associated with a third-party insurance carrier's agent, running web app 130. In a preferred embodiment, the web app 130 is an internet browser, or a dedicated application installed on the device, such as an email client or insurance related software. In a preferred embodiment, server 104 is connected to insurance company device 128 through network 102. In alternate embodiments, devices 108, 112, 116, 120, and 124 are each connected to the insurance device through network 102.
[0041] Server 104 is further connected directly to data preprocessor 103 through a I2C bus, as will be further described. Server 104 is operatively connected to weather data processor 105, through network 102, and communicates with it through an application programming interface (API). Weather data processor 105 is operatively connected to mass database 107.
[0042] Referring to
[0043] Top 171 includes activation button 174 and externally visible LED 172a, LED 172b, and LED 172c. LEDs 172a, 172b, and 172c all communicate with microprocessor 151 through a GPIO connection. LED 172a is used to indicate power on. LED 172b is used to indicate data communications with the server. LED 172c is used to indicate an error or a lock up condition. Likewise, push button 174 communicates with microprocessor 151 through a GPIO connection. Push button 174 provides a boot up or power on signal, and a stop interrupt signal.
[0044] Referring also to
[0045] Microprocessor 151 is operatively connected to memory 162. In one embodiment, microprocessor 151 includes both internal memory and removable memory such as sim card 160, which is installed before the unit is assembled.
[0046] Memory 162 communicates with microprocessor 151 through an SPI connection. PC board 177 further includes I2C connector 180. I2C connector 180 is accessible through portal 176.
[0047] Referring also to
[0048] Microprocessor 151 is operatively connected to server 104 through an I2C synchronous serial communication bus.
[0049] Microprocessor 151 is operatively connected to data queue 150 and data queue 152 preferably using a serial peripheral interface (SPI) bus.
[0050] Preferably, data queue 150 is a single 128-bit shift register, such as the 128-bit static shift register with MOS P-channel and in-channel enhancement mode devices, part number MC14562BCL, available from Digichip. Data queue 150 preferably, is a first-in-first-out queue which includes five data blocks, which are periodically updated. Each data block includes an 8-bit timestamp designation and an 8-bit alert type designation, coded in hexadecimal notation. Data block 5, data block 4, data block 3, data block 2, and data block 1 contain data from the five downloads of timestamp and corresponding alert type data from the API that immediately precede data block 0. The queue is updated by the M7 core with a new data block from the server each time a new weather alert is received by the server from weather data processor 105.
[0051] Preferably, data queue 152 is a single 120-bit shift register, such as part number MC14562BCL, as previously described. Data queue 152 is also operatively connected to microprocessor 151, preferably using an SPI bus. Data queue 152 includes a single data block, data block 0. Data block 0 includes two 8-bit data entries, one for each of the current timestamp and the current alert type, received in the M7 core, from the server. The current timestamp and the current alert type are the most recent data received by the server, from the weather data processor through the API.
[0052] Comparator 154 is preferably a combinational logic circuit, used to compare the value of binary digits and is also connected to microprocessor 151 through an SPI bus. Comparator 154 is used to quickly determine whether or not an integrity error is present in the weather alert data stream from the weather data processor by making two data comparisons in bitwise fashion. The preferred embodiment, comparator 154 includes both a 16-bit address comparator, part number SN74ALS677A, available from Texas Instruments of Dallas Tex. and a 16-bit magnitude comparator, part number CD4585BE, available from Texas Instruments.
[0053] Data preprocessor 103 further comprises average generator 156, operatively connected to comparator 154 and data queues 150 and 152. In a preferred embodiment, average generator 156 is implemented by the M4 core of the microprocessor, from software resident in onboard memory. Average generator 156 is used to determine the “average” alert data type and the “average” timestamp when a data integrity error has been indicated by the data comparator.
[0054] Referring then to
[0055] At step 202, the method is initiated when an insurance claim is made at client device 112 to repair a home under an insurance policy.
[0056] At step 204, the damage is initially appraised by an insurance appraiser who will also determine any depreciation value. The damage appraisal is received and stored at insurance company device 128.
[0057] At step 206, a contractor assesses the damage and generates a repair quote. The quote is transmitted to the client device for approval. In alternate embodiments, the quote may be generated at the salesman device, administrator device, or partner device and may be submitted to the insurance company device or the system server.
[0058] At step 208, the insurance policy claim details are provided and the deductible is determined based on the policy holder's insurance policy. In a preferred embodiment, this step is performed at contractor device 116 and submitted to server 104. In another embodiment, this may also be performed at administrator device 124, salesman device 120, client device 112, partner device 108, and insurance company device 128.
[0059] At step 210, a funding agreement is generated at contractor device 116 and transmitted to server 104. When the funding agreement is generated, the amount being funded, and the number of payments are input. The system server then calculates a payment plan and the monthly payments. The system server sends the funding agreement to the policy holder, and then to client device 112. The funding agreement is executed by the policy holder and returned and saved to the system server. In a preferred embodiment, the funding agreement is generated at the contractor device. In alternate embodiments, the funding agreement may be generated at a salesman device, a partner device, an administrator device, or automatically by the system server.
[0060] The funding agreement may cover the entire cost of the deductible, based on the appraisal, or may be for a lesser amount. The agreement sets out a payment plan to cover the full funded amount. As part of the agreement, the policy holder agrees to pay the contractor the full amount of the deductible owed, under the terms of the payment plan, and in exchange the contractor provides confirmation to the insurance company that the deductible is paid by agreement.
[0061] The funding agreement may also be a customized text document which describes a roof deductible funding product, a vehicle deductible funding product, a health deductible funding product, and/or a boat deductible funding product. In each case, specifics about the deductible amount and financing options can vary between each product.
[0062] At step 212, after the funding agreement is executed and returned to the system server, the policy holder makes an initial payment on the agreement at the client device. In a preferred embodiment, the customer must make at least one initial payment on the funding agreement before the deductible payment is certified to the insurance company. In other embodiments, a larger number of payments may be required before the deductible payment is certified.
[0063] At step 214, once the initial payment/s are made according to the funding agreement, the agreement is certified to the insurance company. In a preferred embodiment, the system server automatically transmits an executed funding agreement to the insurance company device. In alternate embodiments, the agreement may be transmitted to the insurance company device by a partner device, salesman device, or an administrator device.
[0064] At step 216, the insurance company will provide the customer with the funds required to cover the additional costs of the repair.
[0065] At step 218, once the repair costs have been paid, the contractor completes the repair and reports the completion to the insurance company. In a preferred embodiment, the contractor device transmits a completion report to the insurance company device. In an alternate embodiment, the completion report is received at the system server which transmits the report to the insurance company device. Similarly, completion may also be certified by a salesman device, partner device, or administrator device.
[0066] At step 220, after the insurance company verifies the repair is complete, it will issue funds for any depreciation amount withheld from earlier funds. The policy holder must continue to make payments according to the terms of the funding agreement. The system server tracks payments and remaining balances.
[0067] At step 222, the method ends when the final payment is submitted to the system server under the terms of the funding agreement.
[0068] Referring to
[0069] At step 302, the method is initiated when a customer requests a service quote for a home repair, upgrade, renovation, or remodel. In a preferred embodiment, the request is made at client device 112.
[0070] At step 304, a contractor assesses the project and generates a service quote. The quote is transmitted to the client device for approval. In alternate embodiments, the quote may be generated at the salesman device, administrator device, or partner device and may be submitted to the system server.
[0071] At step 306, a funding agreement is generated at contractor device 116 and transmitted to server 104. When the funding agreement is generated, the amount being funded, and the number of payments are input. The system server then calculates a payment plan and the monthly payments. The system server sends the funding agreement to the policy holder, and then, to client device to be executed, as previously described. The funding agreement may be generated at the contractor device, salesman device, a partner device, an administrator device, or automatically by the system server, as previously described.
[0072] The funding agreement may cover the full cost of the service, or a smaller amount. The agreement sets out a payment plan to cover the full funded amount. As part of the agreement, the policy holder agrees to pay the contractor the full amount of the service fee.
[0073] At step 308, after the funding agreement is executed, the policy holder makes an initial payment on the agreement at the client device. The payments are submitted to the system server. The system server tracks payments and remaining balances and updates the web application. In a preferred embodiment, the customer must make at least one initial payment on the funding agreement before the service begins. In other embodiments, a larger number of payments may be required before service begins.
[0074] At step 310, the service is completed.
[0075] At step 312, the customer continues to make payments at the client device according to the terms of the funding agreement. The system tracks payments and remaining balances.
[0076] At step 314, the method ends after the final payment is submitted to the system server under the terms of the funding agreement.
[0077] Referring then to
[0078] Referring then to
[0079] Alternatively, login screen 4016 includes forgot password link 4019. If a selection of forgot password link 4019 is made, the sequence proceeds to forgot password screen 4013.
[0080] Referring then to
[0081] Referring then to
[0082] Referring then to
[0083] Referring then to
[0084] Referring then to
[0085] Form 4035 includes text boxes where partner details are input, such as name, email, and phone number, as well as details about the partner's commission from funding agreements and subscriptions. In alternate embodiments, more or less information may be required to add a partner. After the required partner details are entered and add partner button 4036 is selected, the system sends an invitation email, as shown in notification screen 4037.
[0086] Referring then to
[0087] The first-time partner login credentials are entered, the system displays payout account setup screen 4040 shown in
[0088] Referring then to
[0089] Referring then to
[0090] Referring then to
[0091] Referring then to
[0092] When submit payment button 4060 is selected, the sequence proceeds to payout account setup screen 4040 to enter payment details, as previously described. Once payment details are entered, the sequence proceeds to contractor dashboard 4066.
[0093] Referring then to
[0094] Referring then to
[0095] When salesperson login credentials are entered on login screen 4016, the system displays salesperson dashboard 4068 as shown in
[0096] Referring then to
[0097] Referring then to
[0098] Once the customer details are submitted, the system sends an invitation email to the customer and account creation is completed as previously described.
[0099] Referring then to
[0100] Referring then to
[0101] Referring then to
[0102] Alternatively, when a non-deductible customer login credentials are entered for the first time after executing a new funding agreement, the system displays billing screen 4300 after terms of service are selected. Referring then to
[0103] Referring then to
[0104] Referring then to
[0105] Referring then to
[0106] Referring then to
[0107] Referring then to
[0108] Administrator dashboard 500 includes summary bar 502 which provides an overview of the number of partner, contractors, sales staff, and customers, the total amount funded, the total amount of funding pending, and the month payments. Administrator dashboard 500 also includes partner tab 504, contractors tab 506, sales staff tab 508, and customers tab 509. In dashboard 500, partner tab 504 is selected. When partner tab 504 is selected, the dashboard shows partner list 510, search bar 512, and add button 514. When other tabs are selected similar lists of the users in that category and an add button for the type of user are displayed. Partner list 510 includes name column 516, status column 518, customers column 520, and funded column 522. The system allows administrators to delete or view the dashboard and details of any individual user by selecting an account from the list. Administrators may also send an invitation email to any type of user by selecting the appropriate add button. Similarly, administrators may share referral code 524 with a potential user. The referral code link may be emailed or copied.
[0109] Dashboard 500 further includes report button 526. Button 526 is for a monthly payout report generated by the system. The report includes accounting details such as profits, payments received, unprocessed payments, late payments, and commission amounts broken down by partners and contractors. The report also provides a list of partner and contractor payouts that are pending. An administrator may approve payouts and issue full or partial refunds to contractors.
[0110] Referring then to
[0111] Partner dashboard 600 includes summary bar 604 and referral code 602. Summary bar 604 provides an overview of the number of customers, the amount funded, the monthly payments amount, and the total pending funding. The summary bar also includes profile button 605. When selected, the system displays a pop-up partner profile. The partner profile lists contact information and commissions settings. The commissions settings include fee arrangements, such as the percentage received from customer deductibles, customer fund everything, and monthly contractor and subscription fees. A partner may update contact information, but only administrators may adjust the commissions settings.
[0112] Summary bar 604 also includes referral code 602. Referral code 602 may be shared with contractors, sales staff, and customers. Accounts created through a referral code are connected to the partner linked to the code. The referral code link may be emailed or copied for sharing.
[0113] Partner dashboard 600 also includes contractors tab 606, sales staff tab 608, and customers tab 610. In dashboard 600, contractors tab 606 is selected. When contractors tab 606 is selected, the dashboard shows contractor list 616, search bar 612, and add button 614. Contractor list 616 includes name column 618, status column 620, sales staff column 622, customer column 624, and funded column 626. When tab 608 is selected, a similar list of sales staff associated with the partner account is displayed. When tab 610 is selected, a similar list of customers associated with the partner account is displayed. The system allows partners to view the dashboard and details of linked contractors, sales staff, and customers by selecting an account. Partners may send an invitation email to contractors by selecting add button 614, as previously described.
[0114] Referring then to
[0115] Contractor dashboard 700 includes summary bar 701. Summary bar 701 provides an overview of the number of customers, number of staff, the month payments, the amount of pending funds, and the total amount funded. The summary bar also includes profile button 703. When selected, the system displays a pop-up contractor profile. The contractor profile lists contact information, subscription settings, and payment information. A contractor may update contact and payment information.
[0116] Contractor dashboard 700 also includes sales staff tab 702 and customers tab 704. In dashboard 700, sales staff tab 702 is selected. When sales staff tab 702 is selected, the dashboard shows sales staff list 706, search bar 718, and add button 720. Sales staff list 706 includes name column 708, status column 710, customer column 712, monthly payments column 714, and funded column 716. When tab 704 is selected, a similar list of customers associated with the contractor account is displayed. The system allows contractors to view the dashboard and details of linked sales staff, and customers by selecting an account. Contractors may send an invitation email to sales staff and customers by selecting the add button in tab 702 or 704, respectively.
[0117] Referring then to
[0118] Dashboard 800 includes summary bar 802. Summary bar 802 provides an overview of the number of customers, the monthly payments, the amount of pending funding, and the total amount funded. The summary bar also includes profile button 803. When selected, the system displays a pop-up sales profile. The sales profile lists contact information, such as name and phone number. A salesperson may update contact information.
[0119] Sales staff dashboard 800 also includes customer list 804, search bar 806, and add button 808. Customer list 804 includes name column 810, next scheduled payment 812, monthly payments column 814, and remaining amount column 816. In an alternate embodiment, customer list 804 also includes a column for the type of funding, such as deductible, other, or both, as previously described. The system allows sales staff to view the dashboard and details of linked customers by selecting the account. Sales staff may send an invitation email to customers by selecting add button 808.
[0120] Referring then to
[0121] Dashboard 900 includes summary bar 902. Summary bar 902 provides an overview of the customer account, including total funded amount, remaining amount, monthly payments, and next payment date. The summary bar also includes profile button 903. When selected, the system displays a pop-up of the customer profile. The customer profile includes customer contact information, account information, and payment methods. The customer may edit contact and payment methods.
[0122] Customer dashboard 900 also includes payment history list 904, filter 907, document history button 908, add funding button 909, and make payment button 918. Payment history list 904 includes date column 910, amount column 912, type column 914, and remaining amount column 916. Payment history list provides an overview of all the payments made on the funding agreements. Under type column 914, a customer may determine if the payment was made through automatic deposit or manually. In a preferred embodiment, when a customer has multiple types of funding agreements, type column 914 will also include an indication of the fund the payment was applied to, such as “deductible” or “everything”. Customers may view any current or previous documents by selecting document history button 908. Customers may request additional funding by selecting add funding button 909 or make additional payments by selecting make payment button 918, as previously described.
[0123] Referring to
[0124] Preferably, method 1000 takes the form of cooperating software programs written in Python, running on server 104 and microprocessor 151, and which work in unison to receive and preprocess data from weather data processor 105 and send messages to select client devices 112 connected to the system.
[0125] At step 1002, the method begins.
[0126] At step 1004, server 104 retrieves a list of customers from database 106, listed by state and by county of residence.
[0127] At step 1005, server 104 advances to the next state in the list.
[0128] At step 1006, server 104 advances to the next county in the list.
[0129] At step 1008, server 104 activates an API to retrieve United States National Weather Service (NWS) weather alert data for the county and the state. Preferably, server 104, acting as an endpoint, generates an API request to weather data processor 105 in GeoJSON format. The API request is generated once every five minutes. Other time periods may be used. JSON-LD, DWML, OXML, CAP and ATOM formats may also be used. Other weather data sources besides NWS may be used.
[0130] The API call uses linked data to discover alert content related to “watch” and “warning” advisories based on geolocation zones or by state and county. Preferably, the API makes a call to retrieve county-based data, which indicates one of eight warning conditions according to the Universal Geographic Code (UGC). UGC contains two letter state abbreviations and a single letter county designations. Currently, the eight warning conditions are available in the watch and warning advisories are “severe thunder warning,” “tornado warning,” “flash flood warning,” “special marine warning,” “snow squall warning,” “dust storm warning,” “dust storm advisory,” and “extreme wind warning.” A geocode property is returned from the API which includes a county designation including a list of affected zones and an “event” type along with a “severity” indicator, a “certainty” indicator, and an “urgency” indicator.
[0131] Integrity issues with the data resulting from the API call to the NWS are pervasive. Common integrity issues include availability of the data, irregular or missing, timestamp data, and consistency in alert types. The integrity issues in the data, or “discontinuities” must be corrected before the data may be dependably used, as will be further described.
[0132] At step 1010, the server determines whether or not an alert is present for the given county and state. If so, method proceeds to step 1011. If not, the method returns to step 1006.
[0133] At step 1011, the server sends the alert in a JSON alert packet, to the data preprocessor.
[0134] At step 1012, the data pre-processor isolates the alert type, and the timestamp from the alert packet. Preferably, the alert type is one of the eight previously described.
[0135] At step 1014, data preprocessor 103, determines whether or not the alert packet is of sufficient integrity. If so, the method proceeds to step 1015. If not, the method proceeds to step 1016.
[0136] At step 1015, microprocessor 151 sends AT.sub.0 and T.sub.0 to the server.
[0137] Referring also to
[0138] Comparator 154 includes an identity comparator which is used to sequentially compare the current alert type AT.sub.0, in data block 0, to each of the recent past alert types AT.sub.1, AT.sub.2, AT.sub.3, AT.sub.4 and AT.sub.5 in each of data block 1, data block 2, data block 3, data block 4, and data block 5, in order, to determine whether or not the data is identical.
[0139] If all comparisons return true, then the data is identical and the comparator returns AT.sub.0 to the microprocessor. If all three comparisons do not return true, then the data is not identical and the comparator returns the last three alert types, AT.sub.0, AT.sub.1 and AT.sub.2 to the average generator.
[0140] Comparator 154 further includes a magnitude comparator which is used to sequentially compare T.sub.0 to T.sub.1, T.sub.2, T.sub.3, T.sub.4, and T.sub.5 to determine if T.sub.0 is greater than any or all of the other time stamps in the data blocks by at least 15 minutes. By convention, T.sub.1 is the most recent timestamp before T.sub.0, followed by T.sub.2, T.sub.3, T.sub.4, with T.sub.5 being the oldest, or least recent, timestamp. If, in each case, T.sub.0, is greater in magnitude than T.sub.1, T.sub.2, T.sub.3, T.sub.4, and T.sub.5 for each of data blocks 1-5 (T.sub.x), then comparator 154 passes T.sub.0 to the microprocessor where it is used to determine a message type, as will be further described. If not, or if T.sub.0 is missing, then T.sub.1, T.sub.2, and T.sub.3 are passed to average generator 156 for further processing, as will be further described.
[0141] At step 1016, data preprocessor 103 corrects the integrity of the data. Average generator 156 receives as input alert types, AT.sub.0, AT.sub.1, and AT.sub.2, and timestamps T.sub.1, T.sub.2, and T.sub.3 from data block 1, data block 2, and data block 3, respectively, from comparator 154. The average generator then calculates an “average alert type” and an “average timestamp.”
[0142] The “average alert type”, AT.sub.ave, is either the most recent alert type, AT.sub.0, if none of the alert types match, or, the alert type that occurs with the greatest frequency in alert types AT.sub.0, AT.sub.1, and AT.sub.2, if two of the three alert types match. If AT.sub.0 is missing AT.sub.1 is passed to the microprocessor as AT.sub.ave.
[0143] The “average timestamp”, T.sub.ave, must be calculated when T.sub.0 is missing, or when T.sub.0 is not greater than T.sub.1, T.sub.2, T.sub.3, T.sub.4, or T.sub.5, by 15 minutes, and is calculated by the following equation.
[0144] Where: [0145] T.sub.ave=average timestamp; [0146] T.sub.1=second most recent timestamp; [0147] D.sub.1=difference between T.sub.3 and T.sub.2; and [0148] D.sub.2=difference between T.sub.2 and T.sub.1.
[0149] At step 1017, AT.sub.ave and T.sub.ave are then pushed to queue 150, replacing AT.sub.1 and T.sub.1 and shifting the remaining alert types and timestamps further down the queue. AT.sub.5 and T.sub.5 are pushed out of the queue and deleted. At step 1018, microprocessor 151 sends AT.sub.ave and T.sub.ave to the server.
[0150] At step 1019, server 104 retrieves a customer message type based on the alert type sent from by data preprocessor 103. Preferably, the customer message is drawn from a table stored in database 106. Table 1, shown below, is an example. Other message types may be used.
TABLE-US-00001 TABLE 1 NWS Alert Type Message Type Severe Thunderstorm Warning Roof Deductible Funding Product Vehicle Deductible Funding Product Tornado Warning Roof Deductible Funding Product Vehicle Deductible Funding Product Health Deductible Funding Product Flash Flood Warning Vehicle Deductible Funding Product Health Deductible Funding Product Special Marine Warning Boat Deductible Funding Product Snow Squail Warning Vehicle Deductible Funding Product Health Deductible Funding Product Dust Storm Warning None Extreme Wind Warning Roof Deductible Funding Product
[0151] The funding product in each case provides a text file describing a deductible funding contract customized to the alert type, as previously described.
[0152] At step 1020, the customer message is appended to the alert type and the timestamp in a single outgoing message format. In another embodiment, the customer message and the alert type and timestamp are sent as two separate messages.
[0153] At step 1022, server 104 sends the outgoing message to all client devices for all customers in the current state and the current county stored in memory. In this way, each customer receives a high integrity warning of impending weather, along with the customer message. In another embodiment, the alert type and timestamp are sent immediately, and the customer message is sent after a predetermined time period, such as 72 hours. Other predetermined time periods may be used.
[0154] At step 1024, server 104 determines whether or not all counties have been analyzed for the state. If not, the method returns to step 1006. If so, the method proceeds to step 1025.
[0155] At step 1025, the server determines whether or not all states have been analyzed. If so, the method moves to step 1026. If not, the method returns to step 1005.
[0156] At step 1026, server 104 determines whether or not a stop interrupt is present. Preferably, a stop interrupt is generated by administrator device 124 and received by the server through a web interface. A stop interrupt may also be generated by push button 174 which is received by the microprocessor and forwarded to the server. If not, server 104 returns to step 1004. If so, the server moves to step 1027.
[0157] At step 1027, the method concludes.