IP Library Granted Patent US 12,608,254
Granted Patent B2
US 12,608,254 · App. 17/573,580 · Granted Apr 21, 2026

Systems and methods for validating data

Inventors: David Lisuk (New York, NY); Guodong Xu (Shoreline, WA); Luis Voloch (Brooklyn, NY); Matthew Elkherj (Palo Alto, CA)
Assignee: Palantir Technologies Inc.
G06F11/0709G06F3/048G06F16/23G06F16/43G06F17/18G06Q10/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,608,254
App. No.
17/573,580
Granted
Apr 21, 2026
Kind
B2
Abstract

Systems and methods are validating data in a data set. A data set including data to validate and a validator to use in validating the data is selected based on user input generated based on interactions of a user with a graphical user interface. The validator is applied to the data to determine whether one or more statistics generated through application of the validator to the data is valid or invalid based on a validation routine associated with the validator. A data quality report indicating whether the data set is valid or invalid, based on a determination of whether the one or more statistics is valid or invalid, is generated and selectively presented to the user through the graphical user interface.

Claims (42)

1 . A system for validating data comprising:

one or more processors; and

a memory storing instructions that, when executed by the one or more processors, cause the system to:

obtaining a data set;

detecting that the data set has been modified, where the modified data set comprises additional entries added to the data set, wherein the additional entries result in a changed schema or a new schema of the modified data set compared to the data set;

in response to detecting the additional entries, automatically configuring a new validator based on the additional entries, the new validator being configured for the changed schema or the new schema, wherein the new validator has a new validation parameter or a new validation routine that is distinct from an existing validation parameter or an existing validation routine of an existing validator, and the new validator has the new validation parameter, the new validation routine, a different validation parameter, or a different validation routine that is in common with the existing validation parameter, the existing validation routine, a different existing validation parameter, or a different existing validation routine of the existing validator;

applying the new validator to determine a validity of the modified data set, wherein the validity of the data set is determined based on an evaluation of one or more statistics associated with the data set with respect to the new validation parameter or the new validation routine;

generating one or more statistics associated with the data set; and

providing the statistics to a user.

2 . The system of claim 1 , wherein the application of the new validator comprises determining the validity of the modified data set based on a proportion of entries in the modified data set having null values.

3 . The system of claim 1 , wherein the application of the validator comprises determining the validity of the modified data set based on a validity of join keys among different tables.

4 . The system of claim 1 , wherein the application of the validator comprises determining the validity of the modified data set based on a proportion of rows among different tables that joined or that failed to join.

5 . The system of claim 1 , wherein the validation parameter is distinct from the existing validation parameter and the validation routine is distinct from the existing validation routine.

6 . The system of claim 1 , wherein the application of the validator comprises determining the validity of the modified data set based on schemas of different tables in the modified data set.

7 . The system of claim 1 , wherein the application of the validator comprises determining the validity of the modified data set in response to respective schemas of different tables in the modified data set matching.

8 . The system of claim 1 , wherein the instructions further cause the system to:

perform a validation of the modified data set based on an existing validator prior to applying the new validator.

9 . A method being implemented by a computing system including one or more physical processors and storage media storing machine-readable instructions, the method comprising:

obtaining a data set;

detecting that the data set has been modified, where the modified data set comprises additional entries added to the data set, wherein the additional entries result in a changed schema or a new schema of the modified data set compared to the data set;

in response to detecting the additional entries, automatically configuring a new validator based on the additional entries, the new validator being configured for the changed schema or the new schema, wherein the new validator has a new validation parameter or a new validation routine that is distinct from an existing validation parameter or an existing validation routine of an existing validator, and the new validator has the new validation parameter, the new validation routine, a different validation parameter, or a different validation routine that is in common with the existing validation parameter, the existing validation routine, a different existing validation parameter, or a different existing validation routine of the existing validator;

applying the new validator to determine a validity of the modified data set, wherein the validity of the data set is determined based on an evaluation of one or more statistics associated with the data set with respect to the new validation parameter or the new validation routine;

generating one or more statistics associated with the data set; and

providing the statistics to a user.

10 . The method of claim 9 , wherein the application of the new validator comprises determining the validity of the modified data set based on a proportion of entries in the modified data set having null values.

11 . The method of claim 9 , wherein the application of the validator comprises determining the validity of the modified data set based on a validity of join keys among different tables.

12 . The method of claim 9 , wherein the application of the validator comprises determining the validity of the modified data set based on a proportion of rows among different tables that joined or that failed to join.

13 . The method of claim 9 , wherein the validation parameter is distinct from the existing validation parameter and the validation routine is distinct from the existing validation routine.

14 . The method of claim 9 , wherein the application of the validator comprises determining the validity of the modified data set based on schemas of different tables in the modified data set.

15 . The method of claim 9 , wherein the application of the validator comprises determining the validity of the modified data set in response to respective schemas of different tables in the modified data set matching.

16 . The method of claim 9 , wherein the application of the validator comprises determining the validity of the modified data set based on a row count among different tables in the data set.

17 . The method of claim 9 , further comprising:

in response to applying the validator, determining that the modified data set is invalid; and

in response to determining that the modified data set is invalid, generating an identification of particular statistics that were invalid.

18 . A non-transitory computer readable medium comprising instructions that, when executed, cause one or more processors to perform:

obtaining a data set;

detecting that the data set has been modified, where the modified data set comprises additional entries added to the data set, wherein the additional entries result in a changed schema or a new schema of the modified data set compared to the data set;

in response to detecting the additional entries, automatically configuring a new validator based on the additional entries, the new validator being configured for the changed schema or the new schema, wherein the new validator has a new validation parameter or a new validation routine that is distinct from an existing validation parameter or an existing validation routine of an existing validator, and the new validator has the new validation parameter, the new validation routine, a different validation parameter, or a different validation routine that is in common with the existing validation parameter, the existing validation routine, a different existing validation parameter, or a different existing validation routine of the existing validator;

applying the new validator to determine a validity of the modified data set, wherein the validity of the data set is determined based on an evaluation of one or more statistics associated with the data set with respect to the new validation parameter or the new validation routine;

generating one or more statistics associated with the data set; and

providing the statistics to a user.

19 . The non-transitory computer readable medium of claim 18 , wherein the application of the new validator comprises determining the validity of the modified data set in response to schemas of different tables in the modified data set matching.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2022
From: LISUK, DAVID; XU, GUODONG; VOLOCH, LUIS; ELKHERJ, MATTHEW
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 060478/0715 →
Continuity (4)
Continuation 16675056 · Nov 5, 2019
Continuation 15670304 · Aug 7, 2017
Provisional Application 62483815 · Apr 10, 2017
Related Publication 20220138034A1 · May 5, 2022
References Cited (82)
US 6057757A · Arrowsmith et al. · 2000 [cited by applicant]
US 6643613B2 · McGee et al. · 2003 [cited by applicant]
US 6988235B2 · Brown · 2006 [cited by examiner]
US 7028223B1 · Kolawa et al. · 2006 [cited by applicant]
US 7080104B2 · Ring et al. · 2006 [cited by applicant]
US 7117430B2 · Maguire et al. · 2006 [cited by applicant]
US 7739246B2 · Mooney et al. · 2010 [cited by applicant]
US 7756728B2 · Maughan et al. · 2010 [cited by applicant]
US 7877421B2 · Berger et al. · 2011 [cited by applicant]
US 8424054B2 · Matsuda · 2013 [cited by examiner]
US 8601326B1 · Kirn · 2013 [cited by examiner]
US 8799867B1 · Peri-Glass et al. · 2014 [cited by applicant]
US 8850177B2 · Brown · 2014 [cited by examiner]
US 8924389B2 · Elliot et al. · 2014 [cited by applicant]
US 8938434B2 · Jain et al. · 2015 [cited by applicant]
US 9230060B2 · Friedlander et al. · 2016 [cited by applicant]
US 9338013B2 · Castellucci et al. · 2016 [cited by applicant]
US 9348851B2 · Kim · 2016 [cited by applicant]
US 9696856B2 · D'Souza · 2017 [cited by examiner]
US 10263997B2 · Roth · 2019 [cited by examiner]
US 10503574B1 · Lisuk · 2019 [cited by examiner]
US 10749676B2 · Simons · 2020 [cited by examiner]
US 11221898B2 · Lisuk et al. · 2022 [cited by applicant]
US 11281804B1 · Uthaman · 2022 [cited by examiner]
US 20020194058A1 · Eldering · 2002 [cited by applicant]
US 20030040854A1 · Rendahl · 2003 [cited by examiner]
US 20030171942A1 · Gaito · 2003 [cited by applicant]
US 20040117387A1 · Civetta et al. · 2004 [cited by applicant]
US 20040153837A1 · Preston et al. · 2004 [cited by applicant]
US 20050060574A1 · Klotz · 2005 [cited by examiner]
US 20060123009A1 · Bruno · 2006 [cited by examiner]
US 20060129992A1 · Oberholtzer et al. · 2006 [cited by applicant]
US 20060161558A1 · Tamma et al. · 2006 [cited by applicant]
US 20060209085A1 · Wong et al. · 2006 [cited by applicant]
US 20080104407A1 · Horne et al. · 2008 [cited by applicant]
US 20090019313A1 · Pokala · 2009 [cited by examiner]
US 20090199047A1 · Vaitheeswaran et al. · 2009 [cited by applicant]
US 20090282097A1 · Alberti et al. · 2009 [cited by applicant]
US 20100036847A1 · Birsan · 2010 [cited by examiner]
US 20100125470A1 · Chisholm · 2010 [cited by applicant]
US 20100211550A1 · Daniello · 2010 [cited by examiner]
US 20100228786A1 · Torok · 2010 [cited by examiner]
US 20110010394A1 · Carew · 2011 [cited by examiner]
US 20110131547A1 · Elaasar · 2011 [cited by applicant]
US 20110208855A1 · Robertson · 2011 [cited by examiner]
US 20120198281A1 · Weinberg · 2012 [cited by examiner]
US 20120284356A1 · Luna · 2012 [cited by examiner]
US 20120290879A1 · Shibuya et al. · 2012 [cited by applicant]
US 20130006947A1 · Akinyemi et al. · 2013 [cited by applicant]
US 20130024731A1 · Shochat et al. · 2013 [cited by applicant]
US 20130091084A1 · Lee · 2013 [cited by examiner]
US 20130097130A1 · Bingol et al. · 2013 [cited by applicant]
US 20130198565A1 · Mancoridis et al. · 2013 [cited by applicant]
US 20130226879A1 · Talukder · 2013 [cited by examiner]
US 20130246316A1 · Zhao et al. · 2013 [cited by applicant]
US 20140146650A1 · Alber · 2014 [cited by examiner]
US 20140156617A1 · Tomkins · 2014 [cited by applicant]
US 20140207521A1 · Onder · 2014 [cited by examiner]
US 20150012509A1 · Kim · 2015 [cited by applicant]
US 20150019488A1 · Higginson · 2015 [cited by examiner]
US 20150112641A1 · Faraj · 2015 [cited by applicant]
US 20150188715A1 · Castelluci et al. · 2015 [cited by applicant]
US 20160224701A1 · Kim · 2016 [cited by examiner]
US 20170230353A1 · Kurian · 2017 [cited by examiner]
US 20190158481A1 · Ronda · 2019 [cited by examiner]
AU 2014203669A1 · 2015 [cited by applicant]
DE 102014213036A1 · 2015 [cited by applicant]
EP 1566758A1 · 2005 [cited by applicant]
EP 1962222A2 · 2008 [cited by applicant]
EP 2551799A2 · 2013 [cited by applicant]
EP 2897051A2 · 2015 [cited by applicant]
GB 2517582A · 2015 [cited by applicant]
NL 2013134A · 2015 [cited by applicant]
WO 2005010685A2 · 2005 [cited by applicant]
WO 2011017289A2 · 2011 [cited by applicant]
WO 2011071833 · 2011 [cited by applicant]
WO 2012079836A1 · 2012 [cited by applicant]
WO 2013067077A1 · 2013 [cited by applicant]
How to Find Percentage of Null Values in every Column of all the Tables in SQL Server Database—SQL Server Tutorial / TSQL Tutorial, Mar. 16, 2017, pp. 1-4 (https://web.archive.org/web/20170316050630/https://www.techbrot… [cited by examiner]
Geiger, Jonathan G., “Data Quality Management, The Most Critical Initiative You Can Implement”, Data Warehousing, Management and Quality, Paper 098-29,SUGI 29, Intelligent Solutions, Inc., Bounder, CO, pp. 14, accessed … [cited by applicant]
Johnson, Steve, “Access 2013 on demand,” Access 2013 on Demand, May 9, 2013, Que Publishing. [cited by applicant]
Pythagoras Communications Ltd., “Microsoft CRM Duplicate Detection,” Sep. 13, 2011, https://www.youtube.com/watch?v=j-7Qis0D0Kc. [cited by applicant]