---
title: time.interval_elapsed_ratio
summary: null
url: >-
  https://www.fastly.com/documentation/reference/vcl/functions/date-and-time/time-interval-elapsed-ratio
---

```
FLOAT time.interval_elapsed_ratio(TIME ref, TIME start, TIME end)
```

**Available in:** all subroutines

Returns the proportion of time between start and end that has elapsed at the reference time, as a number between 0 and 1.

## Example

```vcl
sub vcl_miss {
    declare local var.ratio FLOAT;
    set var.ratio = time.interval_elapsed_ratio(now,
        std.time("2025-01-01 00:00:00", now),
        std.time("2026-01-01 00:00:00", now));

    if (var.ratio >= req.digest.ratio) {
        // Request is eligible for A/B test
    }
}
```

Note that `req.digest.ratio` is not meaningful in `vcl_recv` since the digest is not yet computed, but you can use `fastly.hash` to acheive similar results.

```vcl
sub vcl_recv {
    declare local var.ratio FLOAT;
    set var.ratio = time.interval_elapsed_ratio(now,
        std.time("2025-01-01 00:00:00", now),
        std.time("2026-01-01 00:00:00", now));

    declare local var.current_ratio FLOAT = fastly.hash(req.url, 0, 0, 1024);
    set var.current_ratio /= 1024.0;

    if (var.ratio >= var.current_ratio) {
        // Request is eligible for A/B test
    }
}
```
