Importing Animals from CSV
If you have a large number of animals to add, you can bulk import them from a CSV (comma-separated values) file instead of entering each one manually.
Before You Start
Start from the import template rather than building a file from scratch. On the Import Animals page, click Download example template (with format requirements) to get an Excel workbook with two sheets:
- Requirements — the accepted values for each column.
- Animals — the header row and a few example rows. Replace the examples with your own animals.
When your data is ready, save or export the Animals sheet as a CSV file. The importer only accepts CSV — it will not read the .xlsx workbook directly.
How to Import Animals
- From the Dashboard, click Import Animals in the quick actions.
- Choose a Default Identifier — Ear Tag, EID, Freeze Brand, or Other Tag. This is the column Cattle360 treats as each animal's main identifier, and the one used to match sires and dams.
- Optionally tick Check Cattle360 system for matches so sires and dams named in your file are linked to animals you already have. If it is left unticked, every row is treated as a brand new animal.
- Drag your CSV onto the upload box, or click it to browse for the file.
- Click Validate Import. Any problems are listed on screen, one per issue, with the row number.
- Once validation passes, click Import Data to create the animal records.
Nothing is saved until you click Import Data. Validating is safe to run as many times as you like.
CSV Format
Your file needs a header row. Column names are matched ignoring case, spaces, underscores and dashes, so BirthDate, Birth Date and birth_date all work. Columns can appear in any order, and any column Cattle360 does not recognize is ignored.
Required Columns
| Column | Accepted Values |
|---|---|
| Type | Bull, Cow, or Calf. (Goat accounts: Buck, Doe, Kid. Sheep accounts: Ram, Ewe, Lamb.) |
| Sex | Bull, Steer, or Heifer. (Goat accounts: Buck, Wether, Doe. Sheep accounts: Ram, Ewe.) |
| Status | Active, Dead, Sold, or Reference. |
| An identifier | Every row must have a value in at least one of EarTag, EID, FreezeBrand, or OtherTag. |
Identification Columns
| Column | Accepted Values |
|---|---|
| EarTag | Any text. |
| EID | Any text. |
| FreezeBrand | Any text. |
| OtherTag | Any text. |
| Name | Any text. |
| Tattoo | Any text. |
| EarTagColor | Black, White, Red, Gray, Green, Yellow, Blue, Orange, Purple, Pink, Silver, Other. |
| Owner | The owner's first and last name exactly as it appears in Cattle360. If it is blank or does not match a user, the account owner is used. |
The template also has a Default Identifier column. You can leave it as-is — the choice you make on the import page is what Cattle360 actually uses.
Descriptive Columns
| Column | Accepted Values |
|---|---|
| Color | Black, Black White Face, Red White Face, Black Brockles, Red Bockles, White, Red, Gray, Cream, Brown, Tan, Orange, Blonde, Blue Roan, Red Roan, Brindle, Other. |
| Breed | Any text. |
| RegistrationNumber | Any text. |
| Brand | TRUE or FALSE. |
| Castrated | TRUE or FALSE. |
| CastratedDate | A date. |
| DeHorned | TRUE or FALSE. |
Parentage and Breeding Columns
| Column | Accepted Values |
|---|---|
| SireIdentifier | The sire's value in whichever column you chose as the Default Identifier. |
| DamIdentifier | The dam's value in whichever column you chose as the Default Identifier. |
| ConceptionType | Natural or AI. |
| BreedingStatus | Open (or Empty), Exposed, or Pregnant. |
A sire or dam can be another row in the same file. If you ticked Check Cattle360 system for matches and the parent is not in your file or in your herd, Cattle360 creates a placeholder animal for it with the status Reference so the pedigree still links up.
Birth and Weaning Columns
| Column | Accepted Values |
|---|---|
| BirthDate | A date. |
| BirthWeight | A number, in pounds. |
| WeaningDate | A date. |
| WeaningWeight | A number, in pounds. |
Purchase, Sale, and Death Columns
| Column | Accepted Values |
|---|---|
| Acquired | Raised or Purchased. |
| PurchasePrice | A number. |
| PurchasedDate | A date. |
| SaleDate | A date. |
| SalePrice | A number. |
| SaleWeight | A number, in pounds. |
| PricePerPound | A number. |
| SalePriceMethod | Weight, TotalPrice, or CWT. |
| DeathDate | A date. |
| CauseOfDeath | Any text. |
Notes Column
| Column | Accepted Values |
|---|---|
| Notes | Any text. Whatever you put here is saved as a note on the animal, exactly as if you had added it by hand on the animal record. Leave the cell blank for no note. |
Each row gets one note. To add more notes later, open the animal and use the Notes section — see Adding Notes.
Dates and Numbers
- Dates can be written as
3/9/2026,03/09/2026,2026-03-09, or3-9-2026. Month comes first. - Prices and weights can include currency symbols and thousands separators —
$1,232.50is read the same as1232.50. - Blank cells are fine for any column that is not required. Leave them empty rather than typing
N/Aor0.
Accepted Column Name Variations
If your existing spreadsheet uses different headings, these are recognized automatically and do not need renaming:
| If Your Column Says | Cattle360 Reads It As |
|---|---|
| Date of Birth, DOB | BirthDate |
| Purchase Date, Date Purchased | PurchasedDate |
| Date Sold | SaleDate |
| Date Died | DeathDate |
| Sire | SireIdentifier |
| Dam | DamIdentifier |
| Reg Number, Reg No | RegistrationNumber |
| Price Per Lb | PricePerPound |
| Note, Comment, Comments | Notes |
Tips
- Clean your data first. Remove blank rows and fix spelling inconsistencies before importing — a single misspelled status or color will fail validation for that row.
- Start with a small test. Import a handful of animals first to confirm everything lands where you expect, then import the full file.
- Save your CSV in UTF-8 format. This prevents issues with special characters in animal names or notes.
- Import parents first, or keep them in the same file. This gives sires and dams the best chance of matching instead of creating placeholder Reference animals.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article