About .ice

Initial Conditions Equilibrium files

A minimal, transparent container for calibration data: flat CSV tables plus a YAML manifest. Built to be citable, reproducible, and easy to diff.

CSV tables metadata.yaml Checksums Versions

Contract

  • TablesOne CSV per table. UTF-8, keys first, value last.
  • Metadatametadata.yaml with description, version, timestamp, sources, license, checksum.
  • SchemaPer-table key names, types, and units for value.
  • Packagingtar -czf baseline.ice *.csv metadata.yaml

Design goals

Readable, reproducible, portable

No exotic dependencies—just CSV and YAML. Semantic versions and explicit citations make calibration assets citable and verifiable.

Structure

  • Long tables with normalized identifiers (ISO country codes, ISIC/HS/GTAP sectors, factor names, time).
  • Single value column. Units and price base documented in metadata.
  • Completeness checks for Cartesian keys and missing values via validators.

Provenance

  • Metadata records sources, licenses, citations, checksums, generator version, and timestamp.
  • Supports semantic versioning (major.minor.patch) tied to data changes.
  • Ready for DOI minting (e.g., Zenodo) alongside code and papers.

Specification

What goes into a .ice file?

Flat CSV tables plus a YAML manifest. Keys first, value last, with explicit citations and semantic versions.

Minimal contract

  • UTF-8 CSVs, one table per file. Keys first, then value.
  • Normalized identifiers: ISO country codes, sector codes, factor labels, time.
  • metadata.yaml with description, version, timestamp, sources, license, and contacts.
  • Per-table schema: key names, types, descriptions, and units for value.

Lifecycle

  • Build: generate_ice(tables, metadata, "baseline.ice")
  • Inspect: list_tables(), extract_table()
  • Validate: validate_ice() for completeness and types
  • Version and cite: semantic versioning, checksum, DOI via Zenodo

Workflow

Build, validate, share

Use icetools (R) or your own scripts to construct tables, generate .ice archives, and publish to the library with checksums.

1

Build

Assemble tables as CSV and craft metadata.yaml with schema, sources, license, and notes.

2

Validate

Run validate_ice() to enforce completeness and types. Record checksum and semantic version.

3

Share

Package as .ice, publish alongside replication code, and add an entry to the library.