TPL Tables is a cross tabulation system used to generate statistical tables for analysis or publication.
TPL Tables has its roots in the Table Producing Language (TPL) system, developed at the Bureau of Labor Statistics (BLS) in the 1970s and early 1980s to run on IBM mainframes. It was one of the first software languages that was task oriented rather than procedure oriented. To create a table in TPL, the user needed to specify his data and describe what his table should look like. He did not need to write procedures to create the table. This was in sharp contrast to the Cobol and PL/1 programs people were using at BLS to create tables before TPL. When statistical offices began moving to databases, TPL extended its non-procedural model to database access 
The mainframe software gained international popularity during its time, particularly in government statistical offices, but at a substantial number of other sites as well. The BLS version of TPL was distributed by the United Nations. When TPL evolved into a commercial product, the UN connections remained. This led to such diverse customers as the census of the Comoros Islands [Population 600,000] and the census of the Peoples Republic of China [Population > 1,000,000,000]
BLS ceased major software development of the software in the early to mid-1980s. At that time, two developers of the mainframe product founded QQQ Software, Inc.  and began development of TPL Tables, rewriting the system for PCs and Unix systems. The first version of TPL Tables was released in 1987. The current version is 7.0.
TPL Tables is used with many different types of data, from small surveys or other datasets to national level censuses. Its many formatting features allow creation of publication quality output that can be published on paper or on the web.
TPL Tables has a language for specifying tabulations and controlling format details. This language is the same for both Windows and Unix versions of the software. The Windows version also has an interactive interface that can access most features and includes Ted, an editor used to display PostScript tables on the screen and edit them interactively.
TPL Tables can process an unlimited amount of data and produce tables that range in size from a few lines to hundreds of pages. Subsets of the data can be selected and new variables can be computed from incoming data or from tabulated values. Alternate computations can be performed depending on specified conditions being met. New variables can also be defined by recoding or grouping values of other variables. Table rows can be ordered (ranked) according to the values in a selected column. Other computational features include percent distributions, maximums, minimums, medians and other quantiles. Weighted values can be tabulated.
TPL Tables can read files with data in fixed columns or delimited file types such as CSV Comma Separated Values . TPL-SQL, an optional add-on feature, provides direct access from TPL Tables to SQL databases produced by products such as Sybase and Oracle. In the Windows version, TPL-SQL can access databases for which there are ODBC drivers.
TPL Tables automatically formats table output according to the table specification, available names and labels, and default settings. Tables can be created in PostScript or as text. Additional format features allow control of such things as page size, table orientation and column widths Rows or columns can be deleted, and labels and titles can be replaced. Display formats for data values can include alignment specifications and addition of special characters such as % and $. Footnotes can be included for both labels and data values. PostScript tables can contain proportional fonts in various styles and sizes.
Tables can be exported as PDF, HTML, or CSV. The Windows version also allows tables to be exported for use as input to PC-Axis .