# Springtail Wiki open data

Release 76b1850c12464746. Data reviewed up to 2026-10-23.

This is the data behind [Springtail Wiki](https://springtails.wiki/), as tables and as full records. It holds the species, the hobby cultures, the trade names, the taxa, the sources and the claims. Every claim has an evidence level and its sources, and the tables keep that link.

## Licence and credit

The data and the text are published under the [Creative Commons Attribution 4.0 International licence](https://creativecommons.org/licenses/by/4.0/). You may copy, change and share them, including for money. You must credit the project, link the licence and say what you changed.

To credit the project, write

> Springtail Wiki contributors. Springtail Wiki open data, release 76b1850c12464746. https://springtails.wiki/open-data/. Licensed under CC BY 4.0.

The works that the claims cite have their own rights. The tables hold facts about them, such as the title and the year, and not their text.

## Files

| File | What it holds | Rows |
| --- | --- | --- |
| `species.csv` | Species. One row for each species page. Hobby cultures are in cultures.csv, and the claims behind each value are in species_claims.csv. | 47 |
| `species_claims.csv` | Claims behind each species value. One row for each claim that a part of a species record rests on. Join it to species.csv by species_id and to claims.csv by claim_id. | 817 |
| `life_tables.csv` | Life history at several temperatures. One row for each temperature at which a species was measured. The claims behind the table are in species_claims.csv under husbandry.lifeTable. | 3 |
| `cultures.csv` | Hobby cultures. One row for each hobby culture. A culture is a line of animals under a hobby name. It is placed under a species page with a stated confidence, and the name does not make it a species. | 53 |
| `trade_names.csv` | Trade names. One row for each name a label or a listing might use. The species a name might mean are in trade_name_candidates.csv. | 56 |
| `trade_name_candidates.csv` | What a trade name might mean. One row for each species or taxon a trade name might stand for, with how likely that is. Exactly one of species and taxon is filled. | 92 |
| `taxa.csv` | Taxa above species. One row for each node of the classification above species. A taxon is a concept under a named classification, not a timeless fact. | 126 |
| `sources.csv` | Sources. One row for each work the statements cite. The standing says how far the entry has been checked against a registry or a stored copy. | 83 |
| `claims.csv` | Claims. One row for each statement on the site. Every claim names its subject, its evidence level and its sources, which are in claim_sources.csv. The text has no markup. | 1132 |
| `claim_sources.csv` | Sources behind each claim. One row for each source a claim cites, in the order the claim gives them, with the place in the source. | 1360 |
| `questions.csv` | Open questions. One row for each thing that science or the hobby does not yet know, with what would help. | 43 |
| `species.json` | Species, in full. Every field of every species record except the drawing parameters. Foods, bands, life tables, character states and the claims behind them stay nested as they are authored. | 47 |
| `cultures.json` | Hobby cultures, in full. Every field of every culture record except the import notes, which belong to the spreadsheet the first list of cultures came from and say how a page was to be made. | 53 |
| `trade_names.json` | Trade names, in full. Every trade name with its candidates, the characters that tell them apart and its local names by language. | 56 |
| `taxa.json` | Taxa, in full. Every taxon with its character states, the names that have been used for it and its history. | 126 |
| `sources.json` | Sources, in full. Every source with its standing and the result of the last check. | 83 |
| `claims.json` | Claims, in full. Every claim with its subject, its three reading levels, its evidence level and its sources with the place in each. | 1132 |
| `questions.json` | Open questions, in full. Every open question with the phrasings readers use when they ask it. | 43 |
| `characters.json` | Characters and their states. The features the identification key reads, with the states each can take. The character states in species.json and taxa.json name these. | 13 |
| `datapackage.json` | The description of the tables in the Frictionless Data Package format, with every column, its type and the links between tables. | |
| `manifest.json` | The name, size and SHA-256 checksum of every file in the release. | |

The CSV files are UTF-8, with a header row, commas between cells, double quotes around a cell that needs them and a line feed at the end of every line. Open them in a spreadsheet with the import dialog and choose UTF-8, so that names with accents read correctly.

## How to read the data

- Every row has an identifier. The same identifier means the same thing in every table. A species with the identifier `folsomia-candida` has its page at https://springtails.wiki/species/folsomia-candida/.
- An empty cell means that no value is recorded. It does not mean zero, and it does not mean no.
- A cell that holds a list separates the items with a semicolon, and an item never contains one. A text column is not a list, so a semicolon in it is part of the text.
- Dates are written year, month, day. Lengths are in millimetres, temperatures in degrees Celsius, humidity in percent and times in days. A column that holds a quantity says its unit in its description, and most end their name with it, as `_mm`, `_c`, `_pct` and `_days` do.
- The text has no markup. On the site, italics, units and links are marked inside the text. Here an italic name is plain, a temperature is in degrees Celsius and a link is replaced by the words it names.
- A hobby name is not a species. A hobby culture is a line of animals under a name. It is placed under a species page with a qualifier and a confidence. Read both before you treat the placement as a fact.
- The values say what the sources say, and the evidence level says how well they say it. Many keeping values rest on the experience of keepers and sellers and not on experiments. Choose the evidence levels you trust before you use a number.

### Evidence levels

Every claim has one of these.

- `peer-reviewed`. Reported in the published scientific literature.
- `expert-source`. From a specialist checklist, official guideline or named expert.
- `hobby-consensus`. Two or more independent keepers or sellers agree.
- `anecdotal`. One keeper or seller reports it. Treat it as a lead.
- `unknown`. Nobody has tested this yet. The open question is linked.

A claim with `verification` set to `unchecked` has a source and a place in it, but a person has not yet compared the statement with that place. Treat it as a draft and read the source if the statement matters.

## Versions

A release has an identifier taken from the content of its files, so the same data always has the same identifier. A release at https://springtails.wiki/data/v/76b1850c12464746/ never changes. https://springtails.wiki/data/latest/ always holds the newest release, and https://springtails.wiki/data/index.json lists the releases. Cite the identifier and not the word latest.

## Corrections

If you find a mistake or know a source we missed, send it at https://springtails.wiki/contribute/. Changes to the data are listed at https://springtails.wiki/changelog/.

## Columns

### species.csv

One row for each species page. Hobby cultures are in cultures.csv, and the claims behind each value are in species_claims.csv. The key is `id`.

| Column | Type | Meaning |
| --- | --- | --- |
| `id` | string | The species identifier. It is the same in every table and in the page address. |
| `scientific` | string | The working identification as the site shows it, with its qualifier. Some species carry only a genus and a hobby name. |
| `working_rank` | string | The lowest rank the identification reaches. One of species, genus, tribe, subfamily, family. |
| `qualifier` | string | How firmly the name is attached. exact is a confirmed name. cf. and aff. mean a comparison. One of exact, cf., aff., sp., species-group, family-only, unresolved. |
| `working_name` | string | The hobby name that tells apart species that share one scientific name. |
| `compared_with` | string | For cf. and aff. names, the name being compared against. |
| `taxon` | string | The taxon the species sits under, in taxa.csv. |
| `family` | string | The family the species belongs to, in taxa.csv. |
| `order` | string | The order the species belongs to. One of poduromorpha, entomobryomorpha, symphypleona, neelipleona. |
| `id_confidence` | string | How sure the identification is. One of verified, strongly-supported, probable, tentative, unresolved. |
| `id_evidence` | string | What the identification rests on. One of morphology, morphology+expert, dna, morphology+dna, type-comparison, trade-label-only. |
| `id_stability` | string | How settled the classification of the group is. One of stable, recently-revised, conflicting-classifications, active-research. |
| `id_review` | string | Who has reviewed the identification. One of imported, machine-matched, curator-reviewed, specialist-reviewed. |
| `completeness` | string | How much of the species page is written. A stub has a name and little else. One of full, partial, stub. |
| `tagline_claim` | string | The claim that is the one sentence under the page title. |
| `length_min_mm` | number | The lowest adult length. Unit, millimetres. |
| `length_typical_mm` | number | The typical adult length, where a source gives one. Unit, millimetres. |
| `length_max_mm` | number | The highest adult length. Unit, millimetres. |
| `length_reading` | string | How to read the length. range is a measured spread. about, at-most and average are one figure from a source. One of range, about, at-most, average. |
| `length_stage` | string | The life stage that was measured. One of egg, juvenile, subadult, adult, unknown. |
| `length_method` | string | How the length was measured. |
| `difficulty` | string | How hard the species is to keep. One of easy, moderate, hard, expert, unknown. |
| `growth` | string | How fast a culture grows. One of slow, moderate, fast, very-fast, unknown. |
| `yield` | string | How many animals a culture gives. One of low, moderate, high, very-high, unknown. |
| `temp_optimal_min_c` | number | The lowest temperature of the best range. Unit, degrees Celsius. |
| `temp_optimal_typical_c` | number | The typical temperature of the best range, where a source gives one. Unit, degrees Celsius. |
| `temp_optimal_max_c` | number | The highest temperature of the best range. Unit, degrees Celsius. |
| `temp_tolerable_min_c` | number | The lowest temperature the species survives. Unit, degrees Celsius. |
| `temp_tolerable_max_c` | number | The highest temperature the species survives. Unit, degrees Celsius. |
| `humidity_optimal_min_pct` | number | The lowest relative humidity of the best range, in the container. Unit, percent. |
| `humidity_optimal_typical_pct` | number | The typical relative humidity of the best range, in the container, where a source gives one. Unit, percent. |
| `humidity_optimal_max_pct` | number | The highest relative humidity of the best range, in the container. Unit, percent. |
| `humidity_tolerable_min_pct` | number | The lowest relative humidity the species survives, in the container. Unit, percent. |
| `humidity_tolerable_max_pct` | number | The highest relative humidity the species survives, in the container. Unit, percent. |
| `moisture_optimal_min_index` | number | The lowest substrate wetness of the best range, from 0 dry to 1 waterlogged. A model scale, not a measurement. Unit, index from 0 to 1. |
| `moisture_optimal_typical_index` | number | The typical substrate wetness of the best range, from 0 dry to 1 waterlogged. A model scale, not a measurement, where a source gives one. Unit, index from 0 to 1. |
| `moisture_optimal_max_index` | number | The highest substrate wetness of the best range, from 0 dry to 1 waterlogged. A model scale, not a measurement. Unit, index from 0 to 1. |
| `moisture_tolerable_min_index` | number | The lowest substrate wetness the species survives, from 0 dry to 1 waterlogged. Unit, index from 0 to 1. |
| `moisture_tolerable_max_index` | number | The highest substrate wetness the species survives, from 0 dry to 1 waterlogged. Unit, index from 0 to 1. |
| `dry_share_pct` | number | For species kept on a moisture gradient, the share of the substrate kept dry. Unit, percent. |
| `ventilation` | string | The airflow the culture container needs. One of low, medium, high. |
| `reproduction` | string | How the species reproduces. One of sexual, parthenogenetic, mixed, unknown. |
| `life_reference_temp_c` | number | The temperature at which the life history figures were measured. Unit, degrees Celsius. |
| `egg_time_min_days` | number | The lowest time from laying to hatching. Unit, days. |
| `egg_time_typical_days` | number | The typical time from laying to hatching, where a source gives one. Unit, days. |
| `egg_time_max_days` | number | The highest time from laying to hatching. Unit, days. |
| `maturity_min_days` | number | The lowest time from hatching to the first egg batch. Unit, days. |
| `maturity_typical_days` | number | The typical time from hatching to the first egg batch, where a source gives one. Unit, days. |
| `maturity_max_days` | number | The highest time from hatching to the first egg batch. Unit, days. |
| `eggs_per_batch_min_n` | number | The lowest number of eggs in a batch. Unit, eggs. |
| `eggs_per_batch_typical_n` | number | The typical number of eggs in a batch, where a source gives one. Unit, eggs. |
| `eggs_per_batch_max_n` | number | The highest number of eggs in a batch. Unit, eggs. |
| `lifespan_min_days` | number | The lowest life span. Unit, days. |
| `lifespan_typical_days` | number | The typical life span, where a source gives one. Unit, days. |
| `lifespan_max_days` | number | The highest life span. Unit, days. |
| `foods_staple` | string | Foods rated staple for the species. Several values are separated by a semicolon (;). Each value is one of dry-yeast, rolled-oats, fish-flakes, wheat-bran, leaf-litter, rotting-wood, algae, fungal-biofilm, slime-mold, fresh-vegetable, mushroom, pollen-granules, commercial-mix. |
| `foods_good` | string | Foods rated good for the species. Several values are separated by a semicolon (;). Each value is one of dry-yeast, rolled-oats, fish-flakes, wheat-bran, leaf-litter, rotting-wood, algae, fungal-biofilm, slime-mold, fresh-vegetable, mushroom, pollen-granules, commercial-mix. |
| `foods_occasional` | string | Foods rated occasional for the species. Several values are separated by a semicolon (;). Each value is one of dry-yeast, rolled-oats, fish-flakes, wheat-bran, leaf-litter, rotting-wood, algae, fungal-biofilm, slime-mold, fresh-vegetable, mushroom, pollen-granules, commercial-mix. |
| `foods_avoid` | string | Foods rated avoid for the species. Several values are separated by a semicolon (;). Each value is one of dry-yeast, rolled-oats, fish-flakes, wheat-bran, leaf-litter, rotting-wood, algae, fungal-biofilm, slime-mold, fresh-vegetable, mushroom, pollen-granules, commercial-mix. |
| `substrates_excellent` | string | Substrates rated excellent for the species. Several values are separated by a semicolon (;). Each value is one of charcoal-plaster, calcium-clay, plain-plaster, coco-coir, peat-based-soil, sphagnum, leaf-litter-soil, bark-mulch, vermiculite, agar. |
| `substrates_good` | string | Substrates rated good for the species. Several values are separated by a semicolon (;). Each value is one of charcoal-plaster, calcium-clay, plain-plaster, coco-coir, peat-based-soil, sphagnum, leaf-litter-soil, bark-mulch, vermiculite, agar. |
| `substrates_workable` | string | Substrates rated workable for the species. Several values are separated by a semicolon (;). Each value is one of charcoal-plaster, calcium-clay, plain-plaster, coco-coir, peat-based-soil, sphagnum, leaf-litter-soil, bark-mulch, vermiculite, agar. |
| `substrates_poor` | string | Substrates rated poor for the species. Several values are separated by a semicolon (;). Each value is one of charcoal-plaster, calcium-clay, plain-plaster, coco-coir, peat-based-soil, sphagnum, leaf-litter-soil, bark-mulch, vermiculite, agar. |
| `habit` | string | Where in the habitat the species lives. One of surface-litter, soil, deep-soil, vegetation, rotting-wood, cave, water-edge, unknown. |
| `surface_activity` | string | How much of the time the species is seen on the surface. One of high, medium, low, unknown. |
| `escape` | string | How the species behaves at the edge of a container. One of climbs-glass, jumps-readily, stays-in-substrate, unknown. |
| `establishes` | string | Whether the species can hold a population in a bioactive enclosure. One of readily, with-help, unlikely, unknown. |
| `roles` | string | The jobs the species can do in a keeper's setup. Several values are separated by a semicolon (;). Each value is one of cleanup-crew, feeder-culture, display, research-model. |
| `range_status` | string | Whether the species is native, introduced or of unknown origin where it is found. One of native, introduced, cryptogenic, captive-only, unknown. |
| `regions` | string | The regions where the species is found. Several values are separated by a semicolon (;). Each value is one of north-america, europe, uk-ireland, latin-america, asia, oceania, africa, global. |
| `found_in` | string | The places the species is found, such as caves, gardens and bought cultures. Several values are separated by a semicolon (;). |
| `availability` | string | How easily a keeper can buy the species. One of common, regular, occasional, rare, not-in-trade, unknown. |
| `availability_as_of` | date | The date the availability was recorded. |
| `market_regions` | string | The regions the availability applies to. Several values are separated by a semicolon (;). Each value is one of north-america, europe, uk-ireland, latin-america, asia, oceania, africa, global. |
| `questions` | string | The open questions about the species, in questions.csv. Several values are separated by a semicolon (;). Each value is a id in questions.csv. |
| `reviewed` | date | The date the species record was last reviewed. |
| `review_by` | string | Who reviewed the record as a specialist. |
| `review_date` | date | The date of the specialist review. |
| `review_scope` | string | What the specialist review covered. Several values are separated by a semicolon (;). |

### species_claims.csv

One row for each claim that a part of a species record rests on. Join it to species.csv by species_id and to claims.csv by claim_id. The key is `species_id` with `fact` with `claim_id`.

| Column | Type | Meaning |
| --- | --- | --- |
| `species_id` | string | The species whose record holds the fact. |
| `fact` | string | The part of the species record the claim supports, as a path into species.json, such as husbandry.temperatureC or compat.escape. |
| `claim_id` | string | The claim, in claims.csv. |

### life_tables.csv

One row for each temperature at which a species was measured. The claims behind the table are in species_claims.csv under husbandry.lifeTable. The key is `species_id` with `temp_c`.

| Column | Type | Meaning |
| --- | --- | --- |
| `species_id` | string | The species that was measured. |
| `temp_c` | number | The temperature of the measurement. Unit, degrees Celsius. |
| `maturity_days` | number | Mean days from hatching to the first egg batch. Unit, days. |
| `lifespan_days` | number | Mean days from hatching to death. Unit, days. |
| `lifetime_eggs` | number | Mean eggs laid by one female over her life. Unit, eggs. |
| `hatch_share` | number | The share of eggs that hatched, from 0 to 1, averaged over the batches. Unit, share from 0 to 1. |

### cultures.csv

One row for each hobby culture. A culture is a line of animals under a hobby name. It is placed under a species page with a stated confidence, and the name does not make it a species. The key is `id`.

| Column | Type | Meaning |
| --- | --- | --- |
| `id` | string | The culture identifier. |
| `name` | string | The name keepers use for the culture. |
| `aliases` | string | Other names for the same culture. Several values are separated by a semicolon (;). |
| `name_type` | string | What kind of name it is. A hobby name is a label for a line of animals and is not a species. One of common-name, trade-name, breeder-line, locality-line, phenotype-line, historical-label. |
| `species` | string | The species page the culture is placed under. |
| `qualifier` | string | How firmly the culture is attached to that species. One of exact, cf., aff., sp., species-group, family-only, unresolved. |
| `id_confidence` | string | How sure the placement is. One of verified, strongly-supported, probable, tentative, unresolved. |
| `id_evidence` | string | What the placement rests on. One of morphology, morphology+expert, dna, morphology+dna, type-comparison, trade-label-only. |
| `id_review` | string | Who has reviewed the placement. One of imported, machine-matched, curator-reviewed, specialist-reviewed. |
| `flags` | string | The warnings the site shows beside the culture, such as that a colour form is not a taxon. Several values are separated by a semicolon (;). Each value is one of color-morph-not-taxon, cf-not-confirmed, trade-misid-not-synonym, unpublished-variety, locality-label, provenance-needed, species-complex, sexual-dimorphism, classification-badge, working-id-only. |
| `vendor` | string | The seller the lineage came from, where a record says. |
| `acquired` | date | The date the lineage was acquired. |
| `origin` | string | Where the lineage is said to come from. |
| `lineage` | string | What is known of the line of descent. |
| `popularity_tier` | string | How sought after the culture is in the hobby, from S, the most, to C. It says nothing about how easy the culture is to keep. One of S, A, B, C. |
| `popularity_rank` | integer | The place in the source's own order of popularity, where 1 is the most sought. |
| `appearance` | string | What a source says the animals look like. |
| `questions` | string | The open questions about the culture, in questions.csv. Several values are separated by a semicolon (;). Each value is a id in questions.csv. |
| `reviewed` | date | The date the record was last reviewed. |

### trade_names.csv

One row for each name a label or a listing might use. The species a name might mean are in trade_name_candidates.csv. The key is `id`.

| Column | Type | Meaning |
| --- | --- | --- |
| `id` | string | The trade name identifier. |
| `name` | string | The name as it appears on labels and listings. |
| `name_type` | string | What kind of name it is. One of common-name, trade-name, breeder-line, locality-line, phenotype-line, historical-label. |
| `aliases` | string | Other names for the same thing. Several values are separated by a semicolon (;). |
| `misspellings` | string | Spellings that appear in listings and mean the same thing. Several values are separated by a semicolon (;). |
| `regions` | string | The regions where the name is used. Several values are separated by a semicolon (;). Each value is one of north-america, europe, uk-ireland, latin-america, asia, oceania, africa, global. |
| `questions` | string | The open questions about the name, in questions.csv. Several values are separated by a semicolon (;). Each value is a id in questions.csv. |
| `reviewed` | date | The date the record was last reviewed. |

### trade_name_candidates.csv

One row for each species or taxon a trade name might stand for, with how likely that is. Exactly one of species and taxon is filled. The key is `trade_name_id` with `position`.

| Column | Type | Meaning |
| --- | --- | --- |
| `trade_name_id` | string | The trade name the candidate belongs to. |
| `position` | integer | The place of the candidate in the list for that name. |
| `species` | string | The species the name might mean. |
| `taxon` | string | The taxon the name might mean, where no species page exists. |
| `culture` | string | The culture the name might mean. |
| `likelihood` | string | How likely the candidate is. One of likely, possible, unlikely. |

### taxa.csv

One row for each node of the classification above species. A taxon is a concept under a named classification, not a timeless fact. The key is `id`.

| Column | Type | Meaning |
| --- | --- | --- |
| `id` | string | The taxon identifier. |
| `rank` | string | The rank. One of class, order, family, subfamily, tribe, genus, species. |
| `name` | string | The scientific name, without the author. |
| `parent` | string | The taxon above this one. |
| `status` | string | Whether the name is accepted. One of accepted, synonym, unresolved, doubtful, misapplied, unavailable-or-informal. |
| `classification_source` | string | The classification that places the taxon here, in sources.csv. |
| `stability` | string | How settled the classification of the group is. One of stable, recently-revised, conflicting-classifications, active-research. |
| `authorship` | string | Who described the name, and when. |
| `gbif` | integer | The taxon key in GBIF, the Global Biodiversity Information Facility. |
| `col` | string | The identifier in the Catalogue of Life. |
| `itis` | integer | The ITIS taxonomic serial number. |
| `worms` | integer | The AphiaID in WoRMS, the World Register of Marine Species. |
| `ncbi` | integer | The NCBI taxonomy identifier. |
| `inaturalist` | integer | The taxon identifier in iNaturalist. |
| `collembola_org` | string | The page for the taxon on collembola.org. |
| `reviewed` | date | The date the record was last reviewed. |

### sources.csv

One row for each work the statements cite. The standing says how far the entry has been checked against a registry or a stored copy. The key is `id`.

| Column | Type | Meaning |
| --- | --- | --- |
| `id` | string | The source identifier. |
| `kind` | string | What sort of work it is. One of journal-article, book, book-chapter, checklist, database, standard, web-page, retailer-page, thesis, dataset. |
| `quality` | string | What the source is, from a peer reviewed paper to a seller page. It says how the source was made, not whether it is right. One of peer-reviewed-primary, specialist-monograph, authoritative-database, peer-reviewed-secondary, official-standard, expert-observation, retailer, hobby-observation. |
| `title` | string | The title of the work. |
| `authors` | string | The authors, in the order the work gives them. Several values are separated by a semicolon (;). |
| `year` | integer | The year of publication. |
| `container` | string | The journal, book or site the work appears in. |
| `volume` | string | The volume of the journal or book. |
| `issue` | string | The issue of the journal. |
| `pages` | string | The pages of the work, such as the range of an article. |
| `publisher` | string | The publisher of the work. |
| `origin` | string | Who stands behind the source. Two pages from one seller share an origin and count as one voice. |
| `edition` | string | The edition of the book. |
| `doi` | string | The DOI of the work, as 10.xxxx/yyyy with no link in front of it. |
| `url` | string | A web address where the work or its record can be read. |
| `isbn` | string | The ISBN of the book. |
| `language` | string | The language of the work, as a language code. |
| `standing` | string | How far the entry has been checked. verified was matched in a registry. attested is a stored copy that matches its checksum. link-ok is a web address that answered. unchecked has not been checked. failed did not match. One of verified, attested, link-ok, unchecked, failed. |
| `checked_on` | date | The date of the last check. |
| `check_method` | string | How the entry was checked. One of crossref, datacite, openlibrary, googlebooks, http, file, manual. |
| `accessed` | date | The date the source was last read for the site. |
| `note` | string | A note on the source. |

### claims.csv

One row for each statement on the site. Every claim names its subject, its evidence level and its sources, which are in claim_sources.csv. The text has no markup. The key is `id`.

| Column | Type | Meaning |
| --- | --- | --- |
| `id` | string | The claim identifier. It begins with the subject it was written under. |
| `about_type` | string | What kind of thing the claim is about. One of species, culture, trade-name, taxon, guide, troubleshooting, glossary, enclosure, inhabitant, model, site. |
| `about_id` | string | The identifier of the thing the claim is about, in the table for its type. |
| `topic` | string | The part of a page the claim belongs to. One of glance, identification, husbandry, compatibility, natural-history, taxonomy. |
| `kind` | string | What kind of statement it is. One of fact, observation, method, warning, tip, model-assumption, definition, history. |
| `evidence` | string | How the claim is supported. peer-reviewed is reported in the published literature. expert-source is from a specialist checklist, an official guideline or a named expert. hobby-consensus is agreed by two or more independent keepers or sellers. anecdotal is one keeper or seller. unknown means nobody has tested it, and the open question is in the question column. One of peer-reviewed, expert-source, hobby-consensus, anecdotal, unknown. |
| `text` | string | The statement, at the keeper reading level. |
| `text_beginner` | string | The statement in plain words, where the page has a shorter version. |
| `text_specialist` | string | The statement with technical terms, where the page has a fuller version. |
| `levels` | string | The reading levels that show the claim. Several values are separated by a semicolon (;). Each value is one of beginner, keeper, specialist. |
| `source_count` | integer | How many sources the claim cites. |
| `question` | string | For an unknown claim, the open question that tracks it, in questions.csv. |
| `verification` | string | checked means a person compared the statement with the place in the source. unchecked is a draft, and the reader should read the source if the statement matters. One of checked, unchecked. |
| `tags` | string | Free tags. Several values are separated by a semicolon (;). |
| `reviewed` | date | The date the claim was last reviewed. |

### claim_sources.csv

One row for each source a claim cites, in the order the claim gives them, with the place in the source. The key is `claim_id` with `position`.

| Column | Type | Meaning |
| --- | --- | --- |
| `claim_id` | string | The claim that cites the source. |
| `position` | integer | The place of the source in the claim's list. |
| `source_id` | string | The source the claim cites. |
| `locator` | string | The place in the source, such as a page or a section. |

### questions.csv

One row for each thing that science or the hobby does not yet know, with what would help. The key is `id`.

| Column | Type | Meaning |
| --- | --- | --- |
| `id` | string | The question identifier. |
| `title` | string | The question. |
| `category` | string | The kind of question. One of identification, husbandry, taxonomy, trade-name, distribution, molecular, model. |
| `status` | string | Where the question stands. One of open, needs-voucher, needs-specialist, answered-pending-review. |
| `species` | string | The species the question is about. Several values are separated by a semicolon (;). Each value is a id in species.csv. |
| `why_it_matters` | string | Why the answer matters. |
| `what_would_help` | string | What would settle it. |
| `raised` | date | The date the question was raised. |
