ForHosting KIT · Science

Sediment compaction porosity calculator

Sand starting at 0.5 porosity, buried 2 km with a compaction coefficient of 0.5 per km, keeps just over eighteen percent pore space, a little over a third of its surface value. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Surface porosity
0.5
Burial depth
2
Compaction coefficient
0.5
You get
Porosity
0.1839397206
Porosity percent
18.3939720586
Compaction ratio
0.3678794412

As sediments are buried under younger deposits, pore space shrinks under effective stress and diagenesis. Basin models, reservoir volumetrics, and well-log QC all need a simple, reproducible way to estimate porosity at depth from a surface starting value and a compaction trend. The classic Athy exponential porosity–depth law writes porosity as surface porosity times e to the power of minus compaction coefficient times burial depth. A negative compaction coefficient is physically inconsistent with progressive compaction and is rejected as invalid input.

What the exponential porosity–depth law means

The Athy-style exponential porosity–depth relationship is the workhorse first-order model taught in sedimentary geology and used as a default trend in many basin and petroleum systems workflows. Surface porosity φ0 is the depositional or near-surface void fraction of the lithology of interest—typically on the order of 0.4–0.5 for clean sands and higher for some mudrocks before significant compaction. Burial depth z must share the length unit implied by c (for example kilometres when c is expressed per kilometre, or metres when c is per metre).

At the surface, z equals zero and the exponential equals one, so porosity returns exactly φ0. As depth grows, exp(−c·z) falls toward zero and porosity asymptotes toward zero in this pure exponential form. The model is isotropic and one-dimensional: it does not invent overpressure, cementation kicks, or unconformity truncations.

Those processes matter in real basins, but they are layered on top of a baseline exponential trend, not a reason to discard a transparent screening formula. This calculator applies the baseline only—φ(z) equals φ0 times exp(−c times z)—so every client can reproduce the same number from the same three scalars. Surface porosity is accepted only as a dimensionless fraction between zero and one inclusive; if your logs report percent, divide by one hundred before calling.

Depth must be non-negative.

Where a porosity-at-depth estimate helps

Exploration and reservoir teams need quick porosity-at-depth estimates when screening prospects, checking that a log-derived porosity is plausible for a given burial, or building simple one-dimensional compaction profiles before launching a full basin model. Government and consulting reports often document an exponential trend line beside a well; automating that calculation with a versioned formula string keeps appendices reproducible. Failed validation does not consume balance.

Keep φ0 as a fraction, pin rounded outputs in tests, and you get deterministic porosity-at-depth numbers for teaching, QC, and lightweight automation without standing up a full geomechanical or basin-modelling stack of your own.

Prospect and well porosity screening

Estimate porosity at target burial from a surface φ0 and regional compaction coefficient before comparing against log or core measurements.

Teaching and lab exercises

Let students apply the Athy exponential law for arbitrary φ0, c, and z and check that negative c is rejected as invalid input.

What happens if the compaction coefficient is negative?

A negative c would make porosity increase with burial under this law, which is rejected and not billed.

Should surface porosity be a fraction or a percent?

Use a dimensionless fraction between 0 and 1 (for example 0.45 for 45%).

Which units do depth and the coefficient need?

The same length system for both. Enter depth in kilometres when the coefficient is per kilometre, or in metres when it is per metre. Mixing them shifts the exponent and gives a porosity that means nothing.

Where do I find a compaction coefficient?

Take it from your own well calibration or from published regional charts for the lithology. A larger coefficient means pore space disappears faster with burial; the calculator has no built-in table of values.

Does it account for overpressure or cementation?

No. It applies only the baseline exponential trend, one-dimensional and with no overpressure, cementation or unconformities. Those effects matter in real basins and have to be layered on top of this screening estimate.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/earth/sediment-compaction

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/earth/sediment-compaction \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"surface_porosity":0.5,"burial_depth":2,"compaction_coefficient":0.5}'
{
  "surface_porosity": 0.5,
  "burial_depth": 2,
  "compaction_coefficient": 0.5
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "earth.sediment_compaction",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

This sediment compaction porosity at depth calculator applies that law deterministically: you supply φ0 as a fraction, burial depth z in a consistent length unit, and compaction coefficient c in inverse length; the response returns porosity at depth, percent porosity, and the residual compaction ratio φ/φ0.

What the exponential porosity–depth law means

Compaction coefficient c describes how quickly that porosity decays with depth: larger c means faster reduction of pore space for the same burial interval. When you need lithology-specific c values, take them from your well calibration or published regional charts and feed them here; the endpoint does not embed a secret table of coefficients. Compaction coefficient must be finite and non-negative: a negative c would make porosity grow with burial, which this law rejects as invalid_input rather than returning a misleading upturn.

Input contract, response shape, and error behaviour

Surface porosity must lie in the closed interval from zero to one. Burial depth must be greater than or equal to zero. Compaction coefficient must be greater than or equal to zero; negative values produce a clear message that the compaction coefficient cannot be negative and are not billed. POST a JSON body with three required finite numbers: surface_porosity (aliases phi0, phi_0, porosity0, initial_porosity, phi_surface), burial_depth (aliases depth, z, depth_km, burial_z), and compaction_coefficient (aliases c, k, compaction_c, beta, compact_coeff). Each field may arrive as a JSON number or as a numeric string; missing fields, empty strings, and non-finite values fail with invalid_input naming the field. On success the body echoes the three inputs rounded to twelve decimal places for stable goldens, then returns porosity (fraction at depth), porosity_percent (fraction times one hundred), compaction_ratio (porosity divided by surface porosity, or one when surface porosity is zero), and a short formula string restating the Athy law. Example: surface_porosity 0.5, burial_depth 2, compaction_coefficient 0.5 yields porosity equal to 0.5 times e to the minus one, about 0.1839, with porosity_percent about 18.39 and compaction_ratio about 0.3679. Example: at burial_depth zero the porosity equals surface_porosity for any non-negative c. Pair the response with your own plotting code if you need a continuous depth profile; this endpoint evaluates a single depth per call and does not emit grids or well curves.

Where a sediment compaction porosity API earns its keep

Academic labs and short courses that rank for sediment compaction porosity calculator benefit from a free browser tool whose answers match the paid API byte-for-byte for homework and lab reports. Geomodelling pipelines and Jupyter notebooks can call a tiny parse endpoint instead of re-implementing exp and edge cases in every script, reducing silent unit mistakes and negative-c bugs.

Notebook and pipeline baselines

Call a deterministic API from basin-screening scripts so every run uses the same φ(z)=φ0·exp(−c·z) contract and rounding.

How is porosity at burial depth calculated?

Send surface_porosity (fraction in [0,1]), burial_depth (≥0), and compaction_coefficient (≥0). The API returns φ(z)=φ0·exp(−c·z) as porosity, plus porosity_percent and compaction_ratio.

What units should burial depth and c use?

Any consistent length system: if c is in 1/km, give burial_depth in km; if c is in 1/m, give depth in m. The handler does not convert units.

What does the sediment compaction porosity calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →