# Is there a way to test why my audience does not match my own browser?

Asked by Georgia Lam on 2025-08-27. Tags: cql, audiences, debugging.

I built an audience that combines a location clause with a session clause and the experience never shows for me, even though I should clearly match. The condition is roughly:

```cql
location's stateCode is "ca" and session's stats' pageviews > 3
```

I opened the console hoping for some kind of match log but all I get from the SDK is the usual startup output:

```
[Croct] Croct is ready
```

Is there a way to see which clause is failing instead of guessing? Right now I'm just refreshing and hoping

## 1 answer

### Accepted answer from Marcos Passos (2025-08-27)

Yes, you can evaluate the exact condition straight from the devtools console. [`croct.evaluate`](https://docs.croct.com/reference/sdk/javascript/api/plug/evaluate) takes any CQL expression and returns the live result:

```js
croct.evaluate('location\'s stateCode is "ca" and session\'s stats\' pageviews > 3')
```

The trick for debugging is to break the condition into clauses and evaluate each one separately. Undefined variables evaluate to false by design, so a clause that silently never matches will show up as `false` on its own. You can also dump what a variable currently holds:

```js
croct.evaluate('location')
```

That usually reveals the culprit immediately, for example a VPN or corporate proxy resolving to a different state than you expect.

Two more tools worth knowing:

1. The profile explorer in the dashboard shows what your profile actually contains.
2. The `attributes` option on `evaluate` injects test values without touching the profile, useful for simulating a state you are not in.

#### Reply from Georgia Lam (2025-08-28)

Found it in two minutes with this. `croct.evaluate('location')` showed my office VPN resolving to a different state entirely. The session clause was fine all along. Thanks!
