Version 0.1.1 - January 24, 2026
Macrostrat stratigraphic columns can be ingested from tabular formats (such as Excel spreadsheets) that follow a defined template. Details on the required sheets and fields are provided below.
- See the Examples folder for example datasets.
- The Future updates documents collects features that may be included in future versions of this format.
This format can help prepare columns for assimilation into Macrostrat and may be useful as a lightweight archival specification for column-based information (e.g., for paper supplements).
Overview of sheets
- Units: Core table defining stratigraphic units
- Columns: Metadata for each column
- Metadata: High-level project metadata
- Refs: Reference information for citations
- Facies: User-defined facies descriptions
- Images: Images associated with columns
- Column-linked data sheets: Arbitrary datasets linked to columns (Prototype)
Some data can be provided in alternate formats:
- Column and project metadata can be provided as layers in an associated GIS file instead of in the
geomandrgeomfields - References can be provided as a BibTeX or BibJSON file instead of a
refssheet - Column images can be provided as separate image files, if included
General considerations:
- All tables can include
commentsand/ornotesfor additional notes or clarifications. - Extra columns will be skipped, allowing non-conforming data to be carried alongside this spec
- Extra sheets will also be ignored (although sheets following a certain format will be treated as column-linked data)
The units sheet
The core table for defining units within a column. Each row represents a rock unit, with its boundaries defined by age intervals and proportions (for Composite columns) or measured height/depth ranges (for Measured sections).
Unique identifiers
unit_id: Unique identifier for each stratigraphic unit Not usually required, but useful to track changes between versions or reference in other tables At a minimum, units must be unique within a columncol_id: Unique identifier linking stratigraphic unit to a specific column Required if multiple columns are provided in the same spreadsheetsection_id: Unique identifier for each section (packages of units bounded by age gaps) Required only if there are multiple sections per column. Sections can also be inferred from gaps in chronostratigraphic position fields.
Column position
The most important aspect of a stratigraphic column is the vertical position of each unit. Positional fields help define the unit's vertical position within the column.
b_pos: Position of the bottom boundary of the unit relative to others in the column (synonyms:position,pos); in the case of axis-type==age this should be a sequence from oldest to youngest; in the of axis_type is height or depth this is the positional value.t_pos: Position of the top boundary of the unit; axis-type conditions above apply, but in reference to the top boundary of the unit.
For Measured sections (col_type: "section"), these fields are expressed
in terms of measured heights/depths in physical units (e.g., meters). For
Composite columns (col_type: "column"), these fields should be a unitless ordination of surface positions (
see thickness fields for entering approximate physical height for units in
Composite Columns).
Constraints
- In simple cases (when units do not overlap), only one of
b_posort_posis required to define a unit's position. If only one is provided, the other will be inferred from adjacent units.positioncan be used in these cases as a synonym forb_pos. - All
b_pos/t_pospairs must have a consistent ordering (upwards or downwards, depending on whether the column is organized in terms of depth or height). Composite Columns can use either ordering, but it must be consistent within a column. - Units that are unbounded at the top or bottom of a section are dropped during
ingestion, but their
t_pos,b_posvalues are still used to infer the bounds of units above or below. In practice, this can allow a section to be defined with a singlepositioncolumn, if an unbounded unit is included at the top. - Complex overlapping relationships can be described by units that share
b_pos/t_posvalues. - For Composite Columns, these fields are optional but recommended. If neither
b_posnort_posis provided for a unit, positional ordering will be inferred from the order of rows in the sheet. This is not recommended, as it can easily lead to data loss if rows are reordered.
Attribute filling
For Measured sections (col_type: "section"), units are often defined at
small (meter- to sub-meter) scale, reflecting the scale of rock attributes
captured during field stratigraphic measurement or core logging. It can be
tedious to enter repeated values for attributes that change infrequently.
Unit description fields (lithology, environment, grainsize,
strat_name, etc.) can be automatically filled to subsequent units based on
the values of lower units. This allows gradually changing attributes within a wider grouping to be
entered intuitively. For instance, a single strat_name setting at the base
of a recognized unit can be applied to an entire set of stratigraphic
measurement within that unit.
- By default, attributes are filled according the numeric ordering of the positional axis of the column. That is, for height-based axes (e.g., measured sections) attributes will be filled "up" to stratigraphically higher units, and for depth axes (e.g., cores), attributes are filled stratigraphically "down".
- The direction of filling can be controlled by the
fill_valuesattribute in the Column or Metadata sheets. - Descriptors that are referenced to an individual unit (
unit_name,unit_description,basal_surface,lateral relationship) are not filled. Filling is also disabled if Positional columns are not defined, as the lack of an explicit ordering field for sheets based on relative ages can easily lead to data loss.
Chronostratigraphic position
Chronostratigraphic position columns are used to tie a column's positional axis to geologic time. At least the top and bottom units of the column must be defined in chronostratigraphic terms in order for an age model to be applied This is essential for Composite columns (since the primary axis of the column is based on age) but optional for Measured sections.
b_int: Geologic interval at the bottom boundary of the unit. Name (e.g., "Devonian") or Macrostrat interval IDt_int: Geologic age at the top boundary of the unit. Name (e.g., "Devonian") or Macrostrat interval IDb_prop: Position of the bottom boundary of the unit, relative to its interval (optional)t_prop: Position of the top boundary of the unit, relative to its interval (optional)
Some additional approaches to chronostratigraphic compilation are described in the Future updates document.
Constraints
-
Only one of
b_int/t_intis required; if only one is provided, the unit will be assumed to lie within the specified interval, withb_propandt_propdefining its relative position. -
b_intmust be older thant_int(if both provided) -
b_propandt_propmust be between 0 and 1 -
b_propmust be less thant_propif provided -
Values of these fields that do not match ordering provided by
b_pos/t_poswill raise warnings during ingestion. -
If chronostratigraphic information is not provided within the Units sheet, it will be inferred from column or project-level defaults in the Columns or Metadata sheets. This will yield highly generalized age models and is not recommended.
Names and descriptions
unit_name: Display name of the rock unitunit_description: Original description of the stratigraphic unit from stratigraphic chart or supplemental materials, if provided
These fields are generally important for Composite columns but optional for Measured sections.
Stratigraphic names
Stratigraphic names are formal (or potentially formal) names associated with a unit. Often, they will be linked specifically to an external lexicon, such as Macrostrat's stratigraphic lexicon.
strat_name: Stratigraphic unit name(s) associated with the unit.
Formatting stratigraphic names
Typically, names can be found in Macrostrat's stratigraphic lexicon; in this case, only the formal name needs to be provided.
If names are not linked to an external lexicon, multiple stratigraphic names can be expressed in hierarchical chains (member → formation → group → supergroup). This allows multiple alternative or related hierarchies to be attached to one unit, if necessary.
- Use commas
,to separate child and parent within a single chain. - Use semicolons
;to separate distinct name chains. - Common rank indicators (e.g., "Member", "Formation") and/or shorthands (e.g., "Sandstone", "Shale") should be included for clarity.
Examples
- Single name:
Molas Formation - Name chain:
Alexandria Bay Gneiss, Piseco Group, Adirondack Supergroup - Multiple names:
Dry Creek Canyon Member, Dakota Sandstone; Burro Canyon Formation - Non-standard names:
Lower Member, Ubisis Formation; Bed A, Ubisis Formation - Macrostrat IDs:
1234; 5678 - Other lexicon IDs:
usgs:22438, usgs:9876; Lower Member, gsc:5432Note: Lexicon-specific prefixes are not yet implemented.
Lithology
The lithology fields collectively describe the type of rock present in a unit.
lithology: Primary lithology of the unit (single or list)minor_lith: Secondary lithology of the unit (optional; single or list).grainsize: Optional grain size description for the unit. This is a shorthand field that is used to set lithology attributes where not defined. Examples:- Lithology attributes of type "grains":
fine-grained,coarse-grained - Common shorthands:
ms,s,vf,f,m,c,p(Not recommended; use full terms where possible) - Numeric values, in φ units
- Lithology attributes of type "grains":
covered: Boolean field to denote whether the unit is covered (implying that any lithology information is uncertain). Note: This field is not currently used during ingestion
Constraints and format
- The
lithologyandminor_lithfields should be formatted as<attribute> <proportion>, <attribute> <lith> <proportion>; <attribute>, <attribute> <lith>. <lith>is a standard lithology term (e.g., sandstone, shale, limestone). Lithologies should be present in Macrostrat's lithology lexicon, but new terms can also be added.<attribute>is an optional modifier (e.g.,fine-grained,arkosic,calcareous). Lithologies should be present in Macrostrat's lithology attribute lexicon, but other terms can also be added, which will be skipped with a warning on ingestion.<proportion>is an optional parenthetical containing a proportion of the lithology within the unit (or attribute within the lithology). It can be expressed as a number between 0 and 1, a percentage, or a qualitative proportion (majororminor). If omitted, all lithologies are assumed to be present in equal proportions.- The
minor_lithfield is a shorthand to set lithologies with a(minor)proportion by default.
Environment
environment: Depositional environment interpretation; free text (e.g., "fluvial", "shallow marine") or Macrostrat environment
Facies
facies: Comma- or semicolon- separated list of facies associated with this unit, with optional proportions. These should be referred to values of thefacies_idfield in the Facies sheet (if provided).
Constraints and format
- Multiple facies can be expressed as
<facies_name> (<proportion>), where<proportion>is a number between 0 and 1, a percentage, or a qualitative proportion (majororminor). Multiple facies are separated by semicolons;or commas,. - If no proportion is provided, all facies are assumed to be present in equal proportions.
Thickness
min_thickness: Minimum thickness of the unit (in position units; e.g., meters)max_thickness: Maximum thickness of the unit (in position units; e.g., meters)
These fields are required for Composite columns only. For
Measured sections, they will be
inferred from the b_pos and t_pos fields to match the measured physical height of the unit.
Misc. unit descriptors (optional, experimental)
These fields provide additional notes or clarifications about a unit's relationship with adjacent units. They do not yet have a defined vocabulary and are currently being evaluated for future use within Macrostrat.
basal_surface: Description of the basal surface of the unit Examples:conformable,disconformable,unconformable,fault,gradational,sharp,erosionallateral_relationship: A description of how the unit relates laterally to adjacent units (only applicable when there are multiple overlapping units) Examples:interfingering,transgressive,onlaps,erosional,gradational
The columns sheet
The Columns sheet contains metadata for each column in the project. Each row represents a single column, which should
be linked to units in the Units sheet via the col_id field. If this sheet is not provided, a column can still be
imported, but it will be incomplete pending addition of metadata.
col_id: Unique identifier for a column (string or integer; required if multiple columns per spreadsheet)col_name: Name for the column (required)col_group: Group of the column (optional)date_collected: Date or date range of collection (if applicable)geom: Primary geometry of the columnlng,lat: Position of the column
Constraints and format
Either geom or a lng,lat pair are required. The geom field can be provided either as two comma-separated values (which
will be interpreted as a point location) or a Well-known text (e.g. 1(https://wktmap.com/)) geometry value, which can be
a point, line, or polygon.
Column metadata fields
All fields in this category are optional.
The following metadata fields set the type and spatial/temporal context of a column dataset. These will override project-level defaults where provided. See Chronostratigrahic position for more details.
ref_ids: References (keyed to refs table); comma- or semicolon-separated listaxis_type: Default axis type; defaults toagefor Composite Columns; filled from defaults if not givencol_type:sectionorcolumn(defaults tocolumnfor chronostratigraphy;sectionfor lithostratigraphy)rgeom: Reference geometry of the column, its "area of influence" (optional; falls back togeomif not provided)b_int: Lowest interval considered during the drafting of the column (if applicable)t_int: Highest interval considered during the drafting of the column (if applicable)b_prop: Position within the lowest interval (if known; fraction between 0 and 1)t_prop: Position within the highest interval (if known; fraction between 0 and 1)
Column location
For most columns, rgeom will not be set. This field handles cases where a column is assigned an "area of influence" beyond its
actual measured location. This is useful to denote that certain columns are representative of a study area. In most cases,
Macrostrat will automatically infer this information.
Column location fields (both geom and rgeom) can also be provided as layers (with col_id and/or project_id
fields to map to specific columns) in an associated GIS file.
The metadata sheet
The Metadata sheet contains high-level information about a stratigraphic dataset, including the name, organization, compilers, and default settings for columns within the project.
- Unlike other sheets, this sheet is laid out as key-value pairs, with one field per row.
- If required metadata is not provided, the user will be prompted to provide it during ingestion.
Basic compilation information
project_name: Name of the project (required)organization: Organization that originated the projecturl: URL to a landing page for the project, if applicableproject_id: A unique identifier of the project (string or integer)compiler_orcid: ORCIDscompile_date: Date digitally compiledcompiler_name: Name(s) of compilers, string; eithercompiler_nameorcompiler_orcidare required
Column type defaults
col_type: Default column type (sectionorcolumn); filled from project defaults if not givenaxis_type: Default axis type; defaults toagefor Composite Columns; filled from defaults if not givenfill_values: Default fill value. Whether to fill unit attribute values (strat_name, lithology, environment, and related fields) from lower units. Boolean, defaults tof, or direction to fill stratigraphically -up(default for height-based sections) ordown(default for boreholes)
Spatial and stratigraphic context
Optional fields to provide context for the scope of the project. These will be used as defaults for age/spatial information if they are not provided at the column level.
b_int: Lowest interval considered during the compilation effort (if applicable)t_int: Highest interval considered during the compilation effort (if applicable)b_prop: Position within the lowest interval (Default: 0)t_prop: Position within the highest interval (Default: 1)rgeom: Reference geometry of the project area, its "area of influence" (optional). Can be provided as a layer (with aproject_idfield) in an associated GIS file.
Definitions
position_unit: The unit that spatial positions are expressed in; default: metertime_unit: The unit that temporal positions are expressed in; default: metertimescale: Name or Macrostrat ID of default timescale for age intervals; default: ICS agessrid: The spatial reference frame that geometries are expressed in; default: EPSG:4326
The refs sheet
The References sheet contains citation information for references used in the project. Each row represents a single reference, which should
be linked to columns in the Columns sheet via the ref_id field (if references differ between columns).
This sheet can also be provided as a BibTeX or BibJSON file alongside the spreadsheet.
The facies sheet
The optional Facies sheet contains user-defined facies descriptions that can be linked to units in the Units sheet. Each row represents a single facies, as part of a facies scheme for the project. Facies are named categories that are analogous to map units, in that they describe a set of patterns observed in field-based stratigraphy that are used to drive interpretations.
Note
Facies are new and experimental in Macrostrat's ingestion system, and do not currently map to a specific data model within Macrostrat.
facies_id: Unique identifier for each facies (string or integer; required)facies: Name of the facies (required)facies_group: Grouping of the facies (optional)description: Description of the facieslithology: Lithologies associated with the facies, formatted like thelithologyfield in the Units sheetinterpretation: Interpretation of depositional environment or processes associated with the faciesenvironment: Depositional environment associated with the facies; formatted like theenvironmentfield in the Units sheet
The images sheet
The optional Images sheet contains information about images associated with columns in the project, and optionally the images themselves (either pasted into the Excel sheet or as separate image files). This is designed to allow the source material for column digitization to be carried alongside the data.
col_ids: Column ID or comma-separated list of IDs (if image contains multiple columns)image_name: Name of image (should match the name of the Excel embed or associated file)ref_id: Reference this image was extracted from (keyed to the refs table)page_no: Page number within reference (optional)fig_no: Figure number within reference (optional)description: Description/caption for the image (optional)
Column-linked data sheets
Note
Column-linked data sheets are experimental and currently do not have defined behavior in Macrostrat system itself. However, this will be improved in future versions of the system, with plugins to load and link different data "facets".
Often, stratigraphic columns are packaged with attribute information that can be presented alongside the column, without being part of a core unit definition. Examples include geochemical data, fossil occurrences, geochronologic data, or notes and interpretations that are outside the scope of Macrostrat's core data models. This is most often the case for Measured sections, but it can also apply to Composite Columns.
Ingested Excel templates can include any number of additional sheets beyond the core sheets defined above.
- All sheets that include the necessary positioning fields to link them to a column and heights will be treated as column-linked data.
- Beyond these positioning fields, attribute sheets can contain any number of additional fields.
- Column-linked data can also be loaded from GIS layers, provided that they contain the necessary positioning fields.
Positioning relative to a column
A column attribute sheet must position each row relative to the column's height/depth or age model. As such, attribute sheets must reference a specific column:
col_id: Unique identifier for the column (string or integer; required)section_id: Optional unique identifier for the section within the column (string or integer; only required if multiple sections per column)
Attributes must also reference a height (or range of heights) in the column's reference frame. This can be done
by reusing the positioning fields from the Units sheet.
Like units, attributes can be positioned absolutely (via measured positions, with b_pos and t_pos) or relatively (via
intervals and proportions, with b_int, t_int, b_prop, and t_prop).
Additionally, since the unit sheet is separately defined, attributes can be positioned relative to specific stratigraphic units,
via unit_id (optionally, extended with b_unit_id, t_unit_id, b_prop, and t_prop).
Spatial location
It is common for datasets that might be linkable to a column to have their own spatial information,
distinct from the column's geometry. To this end, attribute sheets can also include a geom or
geometry field to define the spatial location of each attribute record.
Field aliases
Some fields have common synonyms that will be recognized during ingestion. Here is a partial index:
project_id:project_slugcol_id:column_id,column_slug,col_sluglithology:major_lithology,major_lith,lithminor_lith:minor_lithologyb_pos:position,pos,height,depth,b_position,bottom_positiont_pos:top_positionb_int:b_interval,intervalt_int:top_interval,t_intervalgeom:geometryrgeom:ref_geometry,ref_geommin_thickness:min_thick,thicknessmax_thickness:max_thickfacies:facies_id,facies_ids
