> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alumio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Equals (Loose)

> Checks if the values are loosely equal, allowing type coercion. For example, 12 equals '12'.

export const FormField = ({property, label, required = false, diType, uiPatterns, children}) => {
  const patterns = Array.isArray(uiPatterns) ? uiPatterns : uiPatterns ? [uiPatterns] : [];
  return <div style={{
    margin: '1.5rem 0'
  }}>
      <div style={{
    display: 'flex',
    alignItems: 'baseline',
    flexWrap: 'wrap',
    gap: '0.5rem',
    marginBottom: '0.25rem'
  }}>
        <strong>{label}</strong>
        <span style={{
    fontSize: '0.7rem',
    fontWeight: 600,
    textTransform: 'uppercase',
    letterSpacing: '0.04em',
    color: required ? '#6241f5' : '#6b7280'
  }}>
          {required ? 'Required' : 'Optional'}
        </span>
      </div>

      <div>{children}</div>

      {diType || patterns.length > 0 ? <p style={{
    fontSize: '0.85rem',
    color: '#6b7280',
    marginBottom: 0
  }}>
          {diType ? <>
              See the <a href={`/references/${diType}`}>{diType}</a> reference.{' '}
            </> : null}
          {patterns.length > 0 ? <>
              Accepts a <a href={`/documentation/placeholders-and-patterns/patterns#${patterns[0]}`}>pattern</a>.
            </> : null}
        </p> : null}
    </div>;
};

Checks whether the value coming in equals the value you set here, while ignoring differences in type. Loose means the number `12` and the text `"12"` are treated as the same thing, so a field that arrives as text still matches a number you typed (and the other way around). Use this when your source data is inconsistent about types, which is common with values read from spreadsheets, CSV files, or query strings where everything arrives as text. If you need an exact match where type matters, use [Equals (Strict)](/references/condition/equals) instead.

This documentation describes: [Schema](/schemas/condition/equals-adaptive)

## Fields

<FormField property="value" label="Value" required>
  The value the incoming value is compared against. The types do not have to match, so a value of `12` matches both the number `12` and the text `"12"`. You can compare against text, a number, a true/false value, a list, or an empty (null) value.
</FormField>

## Sample data

This compares each entity's `quantity` field against the number `12`.

| Field | Value         |
| ----- | ------------- |
| Value | `12` (number) |

| Incoming value | Result         |
| -------------- | -------------- |
| `"12"` (text)  | Matches        |
| `12` (number)  | Matches        |
| `"5"` (text)   | Does not match |

```json Configuration theme={null}
{
  "prototype": "equals-adaptive",
  "parameters": {
    "value": 12
  }
}
```
