Meticulous Espresso

Meticulous Pop Removal Guide

Fix the vacuum snap at the end of your shots by adding a Soft Close stage to any Meticulous profile.

For the Meticulous community

Why does the pop happen?

When your final extraction stage exits on weight, the piston retracts immediately - regardless of how much pressure is still in the group. If pressure is above ~2 bar at that moment, rapid depressurization creates a vacuum cavity that collapses with a sharp snap or pop.

A Soft Close stage bleeds pressure or flow to near-zero over a few seconds before the piston lifts - eliminating the snap entirely.

How to wire it in

  1. Find the last extraction stage in your profile (the one that currently holds the weight exit trigger).
  2. Remove the weight exit trigger from that stage. Keep your time-based safety exit.
  3. Add the Soft Close stage below as the last stage in your profile. It now owns the weight exit.

Choose a variant

Use after pressure-controlled stages - lever profiles, adaptive espresso, any pressure-type final stage.

// Add as the last stage in your profile
{
  "name": "Soft Close",
  "key": "soft_close",
  "type": "pressure",
  "dynamics": {
    "over": "time",
    "interpolation": "linear",
    "points": [
      [0, 3.0],   // start - tune to your typical end pressure
      [6, 0.5]    // end - near-zero to clear the group
    ]
  },
  "exit_triggers": [
    {
      "type": "weight",
      "value": "$weight_YourYieldVariable",  // ← replace with your variable
      "relative": false,
      "comparison": ">="
    },
    {
      "type": "time",
      "value": 6,
      "relative": true,
      "comparison": ">="
    }
  ],
  "limits": [
    { "type": "flow", "value": 3.0 }
  ]
}

Tune the starting pressure

Profile typeStart pressureDuration
High peak (9 - 10 bar), short decline4.0 - 5.0 bar6 - 8 s
Medium peak (7 - 9 bar), long decline2.0 - 3.0 bar5 - 6 s
Soft spring / low peak (4 - 6 bar)1.0 - 1.5 bar4 - 5 s
Already near floor (1 - 2 bar)1.0 bar3 - 4 s

Use after flow-controlled stages - allongé, turbo, constant-flow, or any flow-type final stage.

// Add as the last stage in your profile
{
  "name": "Soft Close",
  "key": "soft_close",
  "type": "flow",
  "dynamics": {
    "over": "time",
    "interpolation": "linear",
    "points": [
      [0, 4.5],   // match your extraction flow rate
      [5, 0.5]    // taper to near-zero
    ]
  },
  "exit_triggers": [
    {
      "type": "weight",
      "value": "$weight_YourYieldVariable",  // ← replace with your variable
      "relative": false,
      "comparison": ">="
    },
    {
      "type": "time",
      "value": 5,
      "relative": true,
      "comparison": ">="
    }
  ],
  "limits": [
    { "type": "pressure", "value": "$pressure_YourPressureLimitVariable" }  // ← same as extraction stage
  ]
}

Tune the starting flow

Extraction flowStartEndDuration
4.0 - 5.0 ml/s (allongé)4.5 ml/s0.5 ml/s5 s
2.0 - 3.0 ml/s (standard)3.0 ml/s0.5 ml/s4 s
1.5 - 2.0 ml/s (slow/Italian)2.0 ml/s0.3 ml/s4 s

Just want a quick fix? Drop this in, move your weight exit, done.

// Add as the last stage in your profile
{
  "name": "Soft Close",
  "key": "soft_close",
  "type": "pressure",
  "dynamics": {
    "over": "time",
    "interpolation": "linear",
    "points": [
      [0, 2.0],
      [3, 0.0]
    ]
  },
  "exit_triggers": [
    {
      "type": "weight",
      "value": "$weight_YourYieldVariable",
      "relative": false,
      "comparison": ">="
    },
    {
      "type": "time",
      "value": 3,
      "relative": true,
      "comparison": ">="
    }
  ],
  "limits": [
    { "type": "flow", "value": 2.0 }
  ]
}

Before & after - stage wiring

✕  Before (hard cutoff)
Extraction Stage
  exit_triggers:
    - weight >= $weight_Yield
      ← shot ends hard here
         at full pressure
    - time >= 30 (safety)
✓  After (soft close)
Extraction Stage
  exit_triggers:
    - time >= 30 (safety)
    - flow >= 4.0 (runaway)
      ← no weight exit here

Soft Close
  exit_triggers:
    - weight >= $weight_Yield
      ← weight exit moves here
    - time >= 6 (safety)

Bonus - flow runaway exit

Add this exit trigger to your extraction stage (not Soft Close) to catch a collapsing puck before it gushes. If flow climbs above the threshold, the stage exits into Soft Close regardless of weight.

// Add to exit_triggers of your extraction stage
{
  "type": "flow",
  "value": 4.0,         // tune to ~1.5x your normal extraction flow
  "relative": false,
  "comparison": ">="
}
Extraction typeTypical flowRunaway threshold
Espresso / adaptive locked1.5 - 2.5 ml/s3.5 - 4.0 ml/s
Adaptive locked (higher range)2.5 - 3.5 ml/s4.0 - 5.0 ml/s
Allongé / high-flow4.0 - 5.0 ml/s6.0 - 7.0 ml/s

Notes

The time safety exit on Soft Close ensures the stage always terminates even if the scale hasn't registered yield yet - rare but possible with slow scale response.
💧 The flow limit on pressure-type Soft Close prevents the pump from over-driving during the bleed. Keep it at or below your extraction flow.
⚠️ A starting pressure of 0.0 is valid but may cause a brief re-pressurization artifact on some machines. A floor of 0.3 - 0.5 bar is safer.
🕐 Soft Close adds ~3 - 8 s to total shot time depending on variant. Account for this in your timing expectations and brew guides.