Abstract:
A computer method for rapidly identifying and displaying discrepancies in vehicle titles comprises the steps of automatically identifying the discrepancies inherent in individual title transaction records and identifying contextual discrepancies which may be determined by comparison of title transaction records.

Description:
RELATED APPLICATIONS 
     This application is a continuation-in-part of application Ser. No. 301,249, filed Jan. 24, 1989. 
    
    
     BACKGROUND OF THE INVENTION 
     There exists a large market for used vehicles in the United States. Those trading in used vehicles must establish value of the vehicles and insure against certain problems such as odometer fraud and title washing. It has been estimated that 1 out of 6 vehicles on the road have had the odometer turned back and 1 out of 30 used cars sold has had a salvage title. 
     One means for insuring against fraud is to examine and compare the public records available in the state title offices. To do so manually would be impractical, however. One would have to correspond with any number of title offices on the chance that a given vehicle had been titled in that office and then carefully study the available records for discrepancies effecting value or suggesting fraud. A used car auctioneer may have only several days in which to prepare for a sale of 50 or more vehicles. The auctioneer or dealer needs immediate access to the public records of the vehicle history presented in a way to immediately alert him to discrepancies. A system for providing such a service can only be practically implemented with high speed computers. 
     Title washing is the practice of titling a vehicle in one or more states to get a title which has the desired &#34;facts&#34;. This takes advantage of the differing regulations and laws in various states pertaining to safety inspections, title branding, out-of-state title holders, mileage verifications, etc. For example, one might purchase a wreck from a junk yard in Missouri. A Missouri salvage title would be issued. If the salvage title were mailed to an accomplice in Arkansas, he could get the vehicle title there with a regular title because Arkansas does not have a salvage title. The vehicle could now be rebuilt and sold anywhere and the purchaser would not know that it had once been a wreck. The purchaser would think the vehicle came from Arkansas. To further cover the tracks, it would be possible to re-title the vehicle in Oklahoma or Texas, for example. This practice is said to be quite common. 
     Title discrepancies take two forms. One form of title discrepancy can be determined from inspection of a single title transaction record. For example, the record may reveal that the existing title is a salvaged title, a previous salvage title had been issued, or that miles were unknown or not provided at the time of the transaction. Another type of discrepancy is known as contextual discrepancy and can only be determined by studying and comparing the title transaction history. Contextual discrepancy checking permits the discovery of odometer readings which are not reasonable in light of the time lapsed between titles. It further enables the detection of missing titles or possible title washing. It may indicate duplicate titles have been issued where the prior title state is not the same as the state issuing the duplicate title. 
     All vehicles sold within the United States have a unique vehicle identification (VIN). Every title issued in the United States carries the VIN and, of course, each vehicle has the VIN impressed upon a name plate. The VIN is the key to identifying and tracing the public record of vehicles. 
     SUMMARY OF THE INVENTION 
     It is an object, according to this invention, to provide a unique system and method for handling a database of vehicle title transactions indexed by VIN to assist users in rapidly discovering or verifying prior salvage titles, verifying sellers verbal description of the vehicle, making a truer appraisal of the vehicles value, discovering odometer tampering and revealing title washing. It is a further object to provide a unique system and method for handling a database of vehicle title transactions augmented by data supplied by vehicle auctioneers. 
     It is still a further object, according to this invention, to provide a system and method for handling a database of vehicle title transactions that rapidly and effectively supplies an analysis of static discrepancies and contextual discrepancies. 
     Briefly, according to this invention, there is provided a computer method for rapidly identifying and displaying discrepancies in vehicle titles. The method comprises gathering recent title transaction data from a plurality of sources indexed by vehicle identification number. The data from different sources have common and different data elements and are organized differently. The next step comprises adding records to a master database having a plurality of standard variable format transaction records indexed by vehicle identification number. When a report is requested, all records indexed by the same vehicle identification number are selected. Discrepancies inherent in the selected transaction records are identified. Contextual discrepancies which may be determined by comparison of transaction records indexed by the same vehicle identification number are identified. Finally, the title transactions and discrepancies, if any, identified in prior steps are displayed. 
     Preferably, the variable format transaction records are indexed by vehicle identification number and have unvarying fields at least for vehicle identification number, source, odometer reading, title type, and transaction date. The source field is used to identify the structure of the variable portion of the records in the master database. 
     Preferably, the discrepancies inherent in the individual records are determined at least by the content of the title type field. Preferably, the odometer fields in all records are compared and if an odometer discrepancy is found, an odometer discrepancy is reported. Preferably, a search is made for a duplicate title source discrepancy and if found, a discrepancy is reported. Preferably, a search is made for duplicated titles issued within a preselected period of time prior to the search, and if found, a discrepancy is reported. 
     Most preferably, transaction records have an unvarying field comprising a status byte, the bits of which are used to store the identification of inherent title discrepancies detected at the time records are added to the master database. 
     According to the preferred embodiment, a computer method for rapidly identifying and displaying discrepancies in vehicle titles comprising the following steps. 
     (1) At intervals gathering recent title transaction data from a plurality of sources including state title offices indexed by vehicle identification number. 
     (2) Adding records to a single master database having a plurality of variable format transaction records indexed by vehicle identification number, and having unvarying fields for vehicle identification number, source, status, odometer reading, title type, and transaction date, the status field comprising a status byte, the bits of which are used to store identification of title discrepancies determinable from the data in the entire record. The bits in the status byte are indicative of at least one inherent discrepancy selected from the group, duplicate title issued, prior duplicate title issued, salvage title issued, prior salvage title issued, miles unknown, and miles not provided. 
     (3) Identifying the discrepancies inherent in the individual records at least by the content of the title type field at the time of adding records to the master database and setting the status byte accordingly. 
     (4) Selecting all records indexed by the same vehicle identification number and storing them in a record array and sorting the array by the transaction data field. A formatted record array is constructed from the sorted record array to provide an array of printable transaction records. 
     (5) Identifying the contextual discrepancies which may be determined by comparison of vehicle records indexed by the same vehicle identification number by comparing each record in the array with the preceding record. A two-byte status word (&#34;discrep --  flag&#34;) is built, the first byte of the status word being the logical OR of all status bytes in the record array and the second byte of the status word comprising bits which are used to store identification of contextual title discrepancies determined for any record comparison. The bits in the first byte of the status word are indicative of at least one inherent discrepancy selected from the group, duplicate title issued, prior duplicate title issued, salvage title issued, prior salvage title issued, miles unknown, and miles not provided and the bits in the second byte of the status word are indicative of at least one of the contextual discrepancies selected from the group, odometer discrepancy, duplicated title discrepancy and duplicate title within preselected time period. At least one array of status bytes is constructed from the status byte fields (&#34;flag1 --  array&#34;) of the sorted record array and a second status byte (&#34;flag2 --  array&#34;) wherein each bit stores information on contextual discrepancies found by each comparison. 
     (6) Displaying title transaction and discrepancies, if any. The status word (&#34;descrep --  flag&#34;) is used to control the display of discrepancy messages being displayed. Each title transaction is printed from the formatted array with an indicia of discrepancy if a discrepancy is indicated by the bits in the at least one array of status bytes (&#34;flag1 --  array&#34; or &#34;flag2 --  array&#34;). 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a flow diagram of the computer program for gathering-in data according to this invention; 
     FIGS. 2A, 2B and 2C are flow diagrams for the computer program for report generating according to this invention; 
     FIG. 3 is a flow diagram for the contextual discrepancy checking subroutine of the program of FIGS. 2A, 2B and 2C; and 
     FIG. 4 is a flow diagram for a report printing subroutine of the program of FIGS. 2A, 2B and 2C. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring to FIG. 1, since the format of the data received from each state title office differs, a gather-in program reads the data from each state and organizes the data in a &#34;standard record.&#34; The standard record has a number of unchanging fields and variable fields, depending upon the data available from the state. Standard records are added to the master database. The definition of the standard record for all states and the definition of the variable portions of the standard record for Indiana, Kansas and Arkansas are set forth in the following Table 1. 
     
                       TABLE I______________________________________dcl 1      new.sub.- vin.sub.- rec  static,2     vin.sub.- rec.sub.- union union,      3 vin.sub.- rec  char (70),      3 vin.sub.- struc,4         t2vin      char(17),   /* 01-17 (17) */4         t2tranid   char(3),    /* 18-20 (03) */4         t2date     fixed dec(7),                            /* 21-24 (04) */4         t2titletype                char(1),    /* 25-25 (01) */4         t2odo      union,      /* 26-29 (04) */     5 t2odo.sub.- bin                fixed bin(31),     5 t2odo.sub.- dec                fixed dec(7),4         t2zip      fixed dec(5),                            /* 30-32 (03) */4         t2lien     char(1),    /* 33-33 (01) */4         t2status       union,  /* 34-34 (01) */   5 t2status.sub.- chr                char(1),   5 t2status.sub.- bit8                bit(8),   5 t2status.sub.- bits,    6 t2stat.sub.- dup                bit(1),    6 t2stat.sub.- dupflag                bit(1),    6 t2stat.sub.- salvage                bit(1),    6 t2stat.sub.- salvageflag                bit(1),    6 t2stat.sub.- miles.sub.- unknown  bit,    6 t2stat.sub.- miles.sub.- not.sub.- provided bit,    6 t2stat.sub.- new.sub.- owner                bit(1),    6 t2stat.sub.- not.sub.- used                bit(1),4         t2titleno  char(15),   /* 35-49 (15) */4         t2dealer   char(5),    /* 50-54 (05) */4        T2.sub.- MISC  UNION,   /* 55-70 (16) */  5   T2MISC       CHAR (16),  5   T2MISC.sub.- ANY,      6  T2MISC01  CHAR,      6  T2MISC02  CHAR,      6  T2MISC03  CHAR,  6   T2MISC04     CHAR,  6   T2MISC05     CHAR,  6   T2MISC06     CHAR,  6   T2MISC07     CHAR,  6   T2MISC08     CHAR,  6   T2MISC09     CHAR,  6   T2MISC10     CHAR,  6   T2MISC11     CHAR,  6   T2MISC12     CHAR,  6   T2MISC13     CHAR,  6   T2MISC14     CHAR,  6   T2MISC15     CHAR,  6   T2MISC16     CHAR,5        T2MISC.sub.- INDIANA,  6   T2IN.sub.- PREV.sub.- STATE                      CHAR (2),  6   T2IN.sub.- NEXT.sub.- STATE                      CHAR (2),  6   T2IN.sub.- NEW.sub.- USED                      CHAR,  6   T2IN.sub.- MAINT.sub.- DATE                      FIXED DEC (7),  6   T2IN.sub.- ASSEMBLED                      CHAR,  6   T2IN.sub.- COURT.sub.- ORDER                      CHAR,  6   T2IN.sub.- OUT.sub.- OF.sub. - COUNTRY                      CHAR,  6   T2IN.sub.- NOT.sub.- USED                      CHAR (4),5        T2MISC.sub.- KANSAS  6   T2KS.sub.- HWY.sub.- STATUS                      CHAR (1),  6   T2KS.sub.- NOT.sub.- USED                      CHAR (15),5        T2misc.sub.- Arkansas,  6   T2AR.sub.- Bit.sub.- flags,    7 T2AR.sub.- New                    bit (1),    /*True = new*/    7 T2AR.sub.- Instate                    bit(1),    /*True = instate*/    7 T2AR.sub.- Fuel.sub.- code bit(3),    /* Coded with UNSPEC(code)                          */    not used              */    Gasoline              */    Diesel                */    Propane/butane        */    Electric              */    7 T2AR.sub.- unused.sub.- bits bit(3),6        T2AR.sub.- Vehicle.sub.- Type char(1),    /* Titled as:         */    City owned            */    County owned          */    State owned           */    Dealer                */    Master dealer         */    TaxiX&#39;                */    Regular (Other)       */6        T2AR.sub.- Surrendered.sub.- Title char (12),______________________________________ 
    
     The first field (&#34;VIN&#34;) in the standard record is the vehicle identification number and thus is the key field upon which data is recalled from the master database. The next field (&#34;transid&#34;) identifies the state or other source from which the transaction record was received and controls the variable portion of the record (&#34;misc&#34;) at the end of the record. The next fields (&#34;date&#34;, &#34;titletype,&#34; &#34;odo&#34;, &#34;zip&#34; and &#34;lien&#34; contain the date of the transaction, the type of title issued (duplicate, salvage, original etc.), the odometer reading, the zip code of the owner and the number of liens, respectively. The next field &#34;status&#34; is especially important in that it is created by the gather-in program and contains in one byte the information necessary to detect static errors. Bits of this byte are defined as set forth in the following Table II. 
     
                       TABLE II______________________________________Bit Name       Description______________________________________Dup            Title was a &#34;duplicate&#34;DupFlag        Some unknown previous title was a          &#34;duplicate&#34;Salvage        This is a salvage title.Salvage Flag   Some unknown previous title was          salvage.Miles Unknown  Title was marked &#34;TMU&#34;.Miles Not Provided          Mileage was not provided.______________________________________ 
    
     The next two constant fields in the record (&#34;titleno&#34;, &#34;dealer&#34;) hold the number of the title issued and the dealer number of the selling dealer, if known. The variable field (&#34;misc&#34;) is available for storing information unique to each different source. Each source has one or more different definitions of this field. In an embodiment of the invention that has been implemented, the entire record is 70 bytes long and the miscellaneous field is 16 bytes long. 
     A key feature of the system and method being described herein is that data is analyzed by the gathering in program prior to its ever being called for, notwithstanding it may never be called for. The analysis is stored in the status byte. 
     Salvage titles are issued at the time of a salvage event, such as a collision or fire which requires the vehicle to be either junked or rebuilt. In many states when insurance companies declare a vehicle to be a total loss, a salvage title is issued to the insurer upon settlement of the claim. It should be noted that the theft of an insured vehicle also results in the issuance of a salvage title upon settlement of the claim. A title record may indicate that at some unstated time in the past a salvage title was issued. In states which brand the titles of rebuilt vehicles, each subsequent issued title will carry some indication of the original salvage. If a vehicle&#39;s odometer breaks, or is disconnected, or the true and accurate mileage is no longer affirmable by the owner when the vehicle is sold, this information must be disclosed to the buyer. In the car trade, this vehicle is sold &#34;true miles unknown&#34; (&#34;TMU&#34;). If a state issues a title when the owner has not provided the mileage, this is a case of &#34;miles not provided.&#34; Miles unknown is a positive affirmation that the mileage is unknown to the seller. Miles not provided is treated by the database solely as the absence of a mileage reading. 
     Some states have a code in the title data which is set if the vehicle is sold either TMU or not provided. Some states did not collect odometer readings at one time on a required basis or did not supply the database with the odometer readings on some vehicles. These must be treated as miles not provided titles. 
     When the auctioneer or other dealer makes sales, at their option, the following data is captured in a &#34;auction pool&#34; database: vehicle identification number, sale date, odometer reading, auctioneer identification. The data may be used along with the public records data to provide further information for discrepancy checking. This data is considered of somewhat lower veracity since it is not drawn from sworn public records. Therefore, it is generally only available for use by auctioneers that provide such data. 
     When a report on a vehicle title history is required, the auctioneer or dealer submits from a remote terminal or modem an individual request or perhaps from a remote computer and modem a batch of requests. A typical report is produced in Table III. 
     
                       TABLE III______________________________________Date: 10/11/88  Vehicle Records History Service______________________________________For:             ACE, INCORPORATED            1306 Old Hwy 63 South            Columbia, MOVehicle ID No.:  1G6CD6984F4256241Yr/Mfg:          1985 CadillacModel:           DevilleBody:            4dr Sedan______________________________________NOTE the following potential problem(s) regarding thisrecords history:*Odometer reading discrepancy.No.  Date     Source   Description______________________________________1    02/04/85 Missouri Title type issued- Regular                  Odometer reading- 30                  Mileage sworn/affirmed                  Owner city- LAKE OZARK, MO                  Purchase status- New instate                  Title Number - UB5212942    05/15/85 Kansas   Title type issued- Regular                  Odometer reading- 3,316                  Owner city- SHAWNEE MISSION,                  KS3    11/04/86 Kansas   Title type issued- Regular                  Odometer reading- 31,439                  Owner city- SHAWNEE MISSION,                  KS                  Title Number - 193110514    09/28/87 Missouri Title type issued- Regular                  Odometer reading- 49,885                  Mileage sworn/affirmed                  Owner city- SEDALIA, MO                  Purchase status- Used instate                  First lien at time of title issue                  Title Number - UC6313065    08/19/88 Kansas   Title type issued- Duplicate ***                  Odometer reading- 31,439                  Owner city- SHAWNEE MISSION,                  KS                  Title Number - A0529989______________________________________ 
    
     The requests for a report at the very least contain the vehicle identification number of the vehicles for which a report is required. The request might also contain the sale date, a discrepancy mask that sets the type of discrepancies the auctioneer or dealer desires to be alerted to, a caution control flag which determines if the report will reflect that the vehicle is identified in a special caution list, a pool control flag that determines if auction pool data will be considered and one or more records of the type in the master database which the requester desires to also be considered and displayed in the report. For example, the state title office might desire to check for discrepancies in the title transaction it is about to issue. The inserted record would be of the form that would be issued by the state and the information therein could be used for contextual discrepancy checking. 
     FIGS. 2A, 2B and 2C are a flow diagram of a computer program for generating the report. Appendix A is portions of a source code listing for one implementation of this invention in the PL/1 language. The numbers in the parentheses on the flow diagram correspond to program lines of the source code. 
     Referring to FIGS. 2A, 2B and 2C, the first step in generating a report is to collect all records in the master database with the same key, that is, the same vehicle identification number and to place them into a raw records array. Next, a check is made to determine if information from the auction pool is desired. If so, all records from the auction pool are added to the raw records array. Finally, a check is made to determine if external records have been supplied by the requester and if so, these are added to the raw records array. 
     The combined raw records array is then sorted by date and checked for duplicate records. Duplicate records are discarded. The sorted raw records array is then processed into a print array. The print array is a formatted array of the same information contained in the raw records array. The process for forming the print array comprises checking the second field in the raw record (&#34;transid&#34;) to decode the miscellaneous field at the end of each record. 
     Next, the discrepancy check subroutine is called. This subroutine processes the raw record array to produce a 16 byte discrepancy flag (&#34;discrep --  flag&#34;) that holds an analysis of all records in the records array, a &#34;flag1 --  array&#34; of the &#34;status&#34; bytes of the record array, and a &#34;flag2 --  array&#34; of the local discrepancy bits (&#34;odo --  discrep&#34;, &#34;dup --  discrep&#34;, &#34;dup --  in60&#34;), and a dealer array which is an array of the &#34;dealer&#34; field from the record array. The details of this subroutine are described hereinafter with reference to FIG. 3. 
     The print header, print caution routine, print transaction routine and print footer routine are next called to produce the desired report. The print transaction step is a subroutine that is described hereinafter with reference to FIG. 4. 
     The discrepancy check subroutine will now be described with reference to FIG. 3. The source code for one implementation of this subroutine is set forth in Appendix B. Upon entering the routine, the array status word is cleared. This is a 16 bit word that keeps track of the type of discrepancies that can be found in any record in the record array and of any contextual discrepancy found by comparing records in the array. The principal purpose of the array status word is to control the display of discrepancy messages when a title report is being transmitted, displayed or printed. One byte of the array status word is comprised of a byte created by a bit by bit logical OR of each status word in the record array. The other byte of the array status word has bits set whenever a contextual discrepancy is detected. 
     Each record in the raw record array is accessed and placed into a data structure that enables access to individual fields. The status byte of the present record being handled is placed into the flag1 --  array. One byte of the array status word is ORed with the present record status byte. Next, a check for duplicate titles issued within the last 60 days is made by comparing today&#39;s date with the date of any duplicate title transaction. Next, a check is made to see if a duplicate title has been issued in a new state. Finally, a check is made for odometer discrepancies by checking whether the odometer reading has been advanced between transactions. If any of the contextual discrepancies are found, the bits corresponding thereto are set in the array status word and in the corresponding byte in the flag2 --  array. Finally, the dealer identification of the present record is transferred to the dealer array if all records have not been processed and the subroutine loops back. 
     Referring now to FIG. 4, the print report subroutine is described. The source code for one implementation of this subroutine is set forth in Appendix C. The first step is a test for the bit set in the array status word. If bits corresponding to a particular discrepancy are set, a message is printed below the report header corresponding to that discrepancy. Possible messages comprise those set forth in the following Table IV. 
     
                       TABLE IV______________________________________&#34;duplicate title issued&#34;&#34;salvage or junk title issued&#34;&#34;title with unknown mileage&#34;&#34;incomplete mileage history&#34;&#34;odometer mileage discrepancy&#34;&#34;duplicate title state and prior title state notthe same&#34;&#34;duplicate title issued within the last twomonths&#34;.______________________________________ The foregoing is based upon information supplied by sources deemed to be reliable but no responsibility is assumed by reason of errors, inaccuracies or omissions. ##SPC1## 
    
     Having thus described my invention with the detail and particularity required by the Patent Laws, what is claimed and desired to be protected by Letters Patent is set forth in the following claims.