# Importing data

> Bring data into a project from AGS, CSV, Excel or GEF CPT files, with validation and a preview.

Manage imports ground investigation data from **AGS**, **CSV** and **Excel** files,
and CPT data from **GEF** files, validating and previewing it before anything is
written. Imports are available on all plans, subject to your role.

## Start an import

On the **Imports** screen, choose **New import** and add your files:

- **one AGS4 file** (up to 20 MB), or
- **up to 50 CSV files** (1 MB each) and **Excel workbooks** (.xlsx, up to 20 MB).
  Each visible sheet imports as a CSV named after the sheet; hidden and empty
  sheets are skipped, and each sheet counts towards the 50. Or
- **GEF CPT files** (.gef, up to 20 MB each), which import together as one AGS
  file. See [GEF CPT files](#gef-cpt-files).

You cannot mix these in a single import.

Dates and times in your files are read as your organisation's local time (UK time
unless your organisation has set another timezone), with the day first: 10/03/2026
is 10 March.

### Preparing CSV files

Each CSV file holds one table, and Manage matches it by name:

- **The file name** is the table's name, or its CSV code if your configuration
  sets one: `Location Details.csv`, `Samples.csv`. Case doesn't matter. A file
  named after its AGS group (`LOCA.csv`) is not recognised unless that is the
  table's CSV code.
- **The first row** holds the column headings, each a field's name or its CSV
  code (`Final Depth` or `LOCA_FDEP`). A column Manage doesn't recognise is
  listed as a warning and left out.
- **Every table except Location Details** needs a **Location ID** column
  (`Location ID` or `LOCA_ID`), which links each row to its location.

The simplest way to get the names right is to [export a project as
CSV](/manage/exporting-data) and use those files as your template.

Commas, semicolons and tabs all work as separators: Manage reads which one a
file uses from its heading row. A CSV saved in a country that writes decimal
commas, such as `LOCA_ID;LOCA_FDEP` and `BH1;12,5`, imports with 12,5 read as
12.5. The validation lists each column where numbers were read that way.

### GEF CPT files

GEF is the Dutch exchange format for cone penetration tests, also used in Belgium,
Germany and the Nordics. Contractors usually send one file per CPT: add them all
to the same import and Manage puts them into a single AGS file, then validates and
imports it like any other AGS import.

Under the files, each GEF file gets a line saying what was read, such as
**CPT01.gef: CPT01, 1003 readings to 20.00 m**, and any warnings for it.

What goes where:

- **The location (LOCA)**: the test ID (`#TESTID`, or the file name if there is
  none) as the location ID, the position, the ground level and its datum (NAP,
  TAW), the start date and the final depth.
- **The test (SCPG)**: cone type, tip area, area ratio, standard, contractor and
  any pre-excavated depth.
- **The readings (SCPT)**: one row per depth, with cone resistance, sleeve
  friction, friction ratio, pore pressures u1, u2 and u3, corrected and net cone
  resistance, Bq and inclinations. Readings are in MPa; a file in kPa is
  converted. The depth is the file's corrected depth, or its penetration length
  where it has none.

Positions in **RD New** (the Netherlands) and **Belgian Lambert 72** are read as
those grids and placed on the map. A position in any other coordinate system is
kept as a local grid with a warning, and won't show on the map until you enter it
as the location's easting and northing.

Some things are left out on purpose, and the file's line says so:

- Unit weight, stresses and elapsed time. These are interpretations, so they are
  worked out from your own parameters where the data is used, not taken from the
  contractor's file.
- The GEF groundwater level. Files differ on whether it is a depth or a level, so
  it is quoted in the test's remarks rather than used as the water depth.
- Depths with no readings, and a second reading on a depth already read.
  Readings closer together than 10 mm keep their depths to the millimetre.

A GEF file that isn't a CPT, such as a borehole log or a dissipation test, is
left out with its reason, and the other files still import. So is a second file
for a test ID already in the import.

## Choose how it merges

Set the **import mode** for how incoming data meets what is already there:

| Mode | What it does |
| --- | --- |
| **New rows only** | Create new rows, skip all updates. The recommended default. |
| **Fill gaps only** | Only fill empty fields, never overwrite existing data. |
| **Merge** | Incoming values overwrite existing data (blanks are skipped). |
| **Overwrite all** | Incoming values overwrite everything, including with blanks. |

## Validate

Manage checks your files and shows **warnings** and **errors** per file. Open a
file to see the detail - the rule, line, group and message. If there are errors,
fix the file and try again; informational AGS notices are flagged but do not block
you.

### Accented letters and file encodings

Names and descriptions in any European language import as written, such as
Šentvid BH-č1, Łódź OW-3 or Győr TP-ő1. Manage reads files saved as **UTF-8**,
**UTF-16** (Excel's "Unicode text") and the Windows code pages Excel uses for
"CSV (Comma delimited)": **Windows-1252** in the UK and Western Europe and
**Windows-1250** in Central Europe. You don't need to re-save a file first.

AGS4 **Rule 1** only allows plain ASCII, and the AGS checker accepts Western
European letters such as é, ü and ø but rejects letters like č, ł, ő and ş. When
those are the only problem on a line, Manage shows a **warning** naming the
letters and lets you import: it is your data and the letters are kept. A line
with a character that could not be read at all (shown as **�**) is still an
error, because that means the file itself is damaged.

If you later need a file that passes a strict AGS checker, turn on
[**ASCII only**](/manage/exporting-data#create-an-export) when you export.

### AGS versions

An AGS file is checked against the version it declares in its TRAN group
(`TRAN_AGS`), such as 4.0.4, 4.1 or 4.2. A file that doesn't declare one is
checked against your configuration's AGS version, or 4.1 if none is set.

## Quality checks (advisory)

For AGS imports, Manage also shows **Quality checks** alongside the required
validation - reference only, they never block the import:

- **Validation engine** - advisory geotechnical and data-quality checks (BS 5930,
  depth, spatial and more).
- **Project rules** - your project's [acceptance ruleset](/manage/supplier-submissions),
  the same one used to vet supplier submissions.

These are the same checks a supplier's data goes through, so you can hold your own
imports to the same standard. If your data has **Project-rule errors**, Manage shows
a warning and the action becomes **Import anyway** - you can still proceed (the
checks are advisory for your own imports), but it is a nudge to review first.

## Check against testing schedules

When an AGS file contains **lab results** and the project has
[testing schedules](/manage/lab-workflow/testing-schedules), Manage checks the file
against them. If anything looks off, a small **N to check** badge shows on the
samples card (or the first results card). Click it for the detail:

- **New samples** - results for a sample not in the project, which would be created
  as a new sample. Where it looks like a typo you get a hint, such as **Did you mean
  BH01-1.8-4?**, so you can fix the file before importing rather than delete the
  new sample and its lab data afterwards.
- **Missing, but has results** - results for a sample marked missing on a schedule.
- **Scheduled, no results** - scheduled samples with no results in the file, grouped
  by schedule with their tests.
- **Not on a schedule** - samples already in the project but on no schedule. These
  are listed but not counted, as they are usually fine.

Cancelled, not required and completed schedules are left out. Long lists show a few
rows with **Show all**, and a very long list leads with the likely cause, such as the
wrong project or a part delivery. The check is only a heads-up - it **never blocks**
the import. Imports without lab results, or on projects without schedules, look
exactly as before.

## Choose what to import

<Steps>
  <Step title="Locations">
    If the files contain location data, pick which **locations** to import.
  </Step>
  <Step title="Tables">
    Choose which **tables** to bring in. They are all selected by default to save
    time - clear any you do not want.
  </Step>
  <Step title="Review the plan">
    Manage shows an **import plan** - exactly what will be added and changed, table
    by table, with the differences highlighted - so there are no surprises.
  </Step>
</Steps>

## Run it

Submit the import. It processes in the background - wait on the progress screen or
carry on working. The **Imports** list keeps a history with each import's status
(**Queued**, **Processing**, **Complete** or **Failed**), who ran it, and its
files.
