Raw data in.Deployed models out.

We source, clean and structure data for AI training, then build, fine-tune and deploy the models that run on it.

Satellite view of the Lena River Delta in Siberia, its channels branching across the tundra into the Laptev Sea.
Lena River Delta, SiberiaLandsat 7, NASA / USGS

Data we prepare

  • Household surveys
  • Census and labour statistics
  • Satellite imagery
  • GIS layers
  • Lab instrument output
  • Research papers
  • Simulation results
  • CAD and drawings
  • Sensor telemetry
  • Contracts and case law
  • Financial statements
  • Transaction records
  • Process logs
  • CRM records
  • Sales pipeline history
  • Support tickets
  • Agent tool traces

Every good model starts with prepared data.

Preparation is most of the work in any training run, and most of what we do. We take data from wherever it lives to a dataset a model can learn from.

  • Socio-economic

    Surveys, census, labour, household and market data.

  • Geospatial

    Satellite and aerial imagery, GIS layers, location traces.

  • Scientific

    Instrument output, lab records, papers and research datasets.

  • Engineering

    CAD models, simulations, sensor logs and specifications.

  • Legal

    Contracts, case law, regulation, filings and legal opinions.

  • Finance

    Financial statements, transactions, pricing and risk data.

  • Workflows

    Process logs, tickets and tool use that show how work gets done.

  • CRM

    Customer records, deal history, support cases and account notes.

A grid of circular centre-pivot farms cut into wind-streaked sand dunes in southern Egypt, seen from the International Space Station.

Sourcing and harvesting

We collect from your systems and archives, and compile and clean publicly available data. Every source is recorded.

Centre-pivot farms, southern Egypt

Cleaning and formatting

Deduplication, PII redaction, language and quality filtering, then conversion to the format your training stack reads.

  • JSONL
  • Parquet
  • WebDataset
  • HF Datasets
  • TFRecord
Hundreds of circular crop fields near Garden City, Kansas, each a different colour in false-colour Landsat imagery.

Annotation and evaluation

Reviewers label, rank and grade examples against written rubrics.

Packaged to a lab's standard

Versioned shards with full lineage. Ready for your own team, or for an AI lab if you choose to go further.

Rectangular salt evaporation ponds in shades of pink and maroon on a salt pan in Botswana, seen from the International Space Station.

From archive to production.

Pick an example and follow one record from raw files to a model in production. The same path works for scientific, engineering and sensor data.

  1. Source

    We gather the scattered pieces: scanned field surveys, GPS points from enumerators and the satellite imagery over each plot. Each file gets a provenance record on arrival.

    surveys/2025/region-07/form-1142.pdfStep 1/6
    [scanned form, page 2 of 4]  (example)
    
    Household ID     07-114-2
    Plot no.         3       Area  ~1.5 acre
    Main crop        maize / sweet potato
    Planted          "after first rains"
    Harvest          23 bags x 50 kg
    GPS              -13.98213, 33.78654
    Respondent       [name, signature]
    Enumerator note  plot shared w/ brother
  2. Clean

    Forms are read and translated, households de-identified before labelling, units standardised and cloudy satellite scenes masked out.

    clean/plot_07-114-2-3.jsonStep 2/6
    plot_id     p_7f3a91
    household   [HH_ID]   respondent removed
    crops       maize, sweet potato (intercrop)
    area_ha     0.61      from "~1.5 acre"
    planted     2024-W46  from "after first rains"
    yield_kg    1,150     from "23 bags x 50 kg"
    location    snapped to plot boundary
    imagery     14 scenes, 5 masked (cloud)
  3. Structure

    Each plot becomes one training example: survey answers, a season of imagery and rainfall. Whole regions are held out for testing, so the model is judged on places it has never seen.

    shards/train-00031.parquetStep 3/6
    {
      "plot_id": "p_7f3a91",
      "split": "train",
      "season": "2024-25",
      "imagery": {
        "sensors": ["Landsat 8/9", "Sentinel-2"],
        "scenes": 9,
        "bands": ["red", "nir", "swir1"]
      },
      "rainfall_mm": [12, 48, 103, 96, ...],
      "label": { "crop": "maize", "yield_t_ha": 1.89 }
    }
  4. Review

    Reviewers check crop labels against the imagery and flag yields that don't fit the field. Disagreements go to a senior reviewer, not averaged away.

    review/p_7f3a91.jsonStep 4/6
    {
      "plot_id": "p_7f3a91",
      "checks": {
        "crop_matches_imagery": true,
        "yield_plausible": true,
        "intercrop": "maize dominant"
      },
      "reviewers": ["reviewer_04", "reviewer_11"],
      "agreement": "full",
      "pii_scan": "pass"
    }
  5. Train

    We fine-tune a model that reads a season of imagery and weather, and test it on held-out regions before anything ships.

    runs/crop-yield/train.yamlStep 5/6
    # training run  (example)
    
    task          crop type + yield per plot
    inputs        imagery time series, rainfall,
                  soil and elevation layers
    model         geospatial foundation model,
                  fine-tuned
    evals
      - yield error on held-out regions
      - crop-type accuracy by district
    promote_if    beats the survey-only baseline
  6. Deploy

    Each season the model maps expected yields across a whole region before harvest. New field surveys flow back in to keep it accurate.

    deploy/crop-yield.yamlStep 6/6
    # seasonal deployment  (example)
    
    model         crop-yield v4
    runs          on every new satellite pass
    output        yield map per plot and district
    timing        estimates ahead of harvest
    access        API and GIS layer for analysts
    monitoring    drift against new field surveys
    feedback      new surveys -> review queue

Models built on your data, run in production.

We take a model from first training run to a live, monitored endpoint, on our infrastructure or yours.

The Richat Structure in Mauritania, a series of concentric rock rings in the Sahara.
Richat Structure, Mauritania

We extend open base models on your corpus, on GPUs we arrange or in your own cloud account, with evaluation at every checkpoint.

  • Base-model selection and data mix
  • Distributed training runs
  • Checkpoint evaluation
  • Compute and cost planning
Turquoise and green potash evaporation ponds laid out across the desert at Lop Nur, China.
Potash ponds, Lop Nur, China

Your data may be worth more than you think.

Labs need specialised, rights-cleared data. If you want, we prepare yours to their standards and introduce you to labs that license training data.

How licensing works
Opt-in only
We raise it when your data has clear training value. Whether to explore it is entirely your call.
You approve every step
Samples, buyers and terms are put in front of you before anything is shared.
Ownership stays with you
Labs license defined rights to train. Your data and its source systems remain yours.

How we handle your data.

Provenance on every dataset

Each dataset carries its sources, licences and the transformations applied, so it can be audited back to origin.

Private by default

Personal and confidential data is de-identified and redacted before delivery.

Your environment, if needed

The full pipeline can run in your cloud account or on-premise. Raw data never has to leave your network.

Clear rights

Every licensed dataset ships with a data card and a written licence. No ambiguity about who can train on what.

Common questions.

  • Yes. Many projects start there. You can take the prepared dataset to your own team, train with us, or both.

Tell us what you're working with.

A short note about your data or your model goals is enough to start. We reply with next steps, and a time to talk if it helps.

What it is, roughly how much, and what you would like to do with it.

We use these details only to reply to your enquiry. See our privacy notice.