Appearance
Response Time
Response Time measures how quickly a post's owner replies to direct messages and exposes it as a dynamic tag — the "Usually responds within an hour" badge you see on marketplaces.
Replies are tracked through the post's own conversations, so a vendor with several listings gets a separate score for each one rather than a single account-wide average.
Setup
- Go to Voxel Toolkit → Functions and enable Response Time
- Choose which post types it applies to
- Adjust the calculation settings if the defaults don't suit
There's no field to add anywhere. Turn it on and the tag works.
Dynamic tags
| Tag | Returns |
|---|---|
@post(response_time) | Average reply time in hours, as a plain number |
@post(response_time.formatted) | A human string — "2.5 hours", "3 days" |
@post(response_time.replies) | How many replies the average is based on |
@post(response_time.rate) | Reply rate as a percentage, 0–100 |
@post(response_time) returns a plain number specifically so it works in Voxel Visibility Conditions with is less than / is greater than / is equal to — for example, showing a "Fast responder" badge only when the value is under 2.
Calculation settings
| Setting | Description |
|---|---|
| Sample size | How many recent replies to average |
| Slow reply cutoff | Replies slower than this are excluded from the average |
| Minimum replies | How many replies are needed before any value is shown |
The slow-reply cutoff matters more than it sounds. Without it, one reply sent after a fortnight's holiday drags a listing's "typical" time far from reality. Excluded replies still count toward response_time.rate, so a listing can't improve its average by ignoring difficult messages — that shows up in the reply rate instead.
The minimum-replies setting stops a brand-new listing showing a flattering "responds in 3 minutes" based on a single message.
When it updates
The value recomputes the moment a message is sent or received. There's no cron job, and no delay before a new listing starts showing a figure once it passes the minimum.
Notes
- Listings with fewer replies than the minimum return an empty value — check for that in templates before rendering a badge.
- Only replies within the post's own conversations count, so activity on one listing never affects another.

