docs← Back to article

Markdown for LLMs

Parameter on a date

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# Parameter on a date

## Intention

I want to read a pinned parameter value along the legal-time axis.

The scenes check two dated rates, a gap without a value, and the coverage bound.

## Incorrect form and why it stays silent

```law title="Incorrect form"
fragment Clause in MissingEdition { kind paragraph; locator "1"; }
```

A parameter needs an A3 sidecar, an anchor and a pin. A wrong edition reference does not create provenance. The lawparam file and resources are shown below; a single literate page does not replace them.

## Correct form

```law
language "law.core" version "0.2";
package recipes.l.r09 version "0.1.0";
namespace "urn:recipe:l-calc:09";

source Standard { kind standard; jurisdiction "none"; }
edition Edition of Standard { language ru; officiality official; in_force [@2026-01-01, infinity); }
fragment Clause in Edition { kind paragraph; locator "1"; text ru official "Учебный предел меняется по датированному приложению."; }
relation ready();
```

## Frozen execution scene

| Facts and choice | Question | Answer |
|---|---|---|
| 1. 2026-01-01 | `Limit` | `1000 KZT` / `COMPUTED` |
| 2. 2026-05-31 | `Limit` | `1000 KZT` / `COMPUTED` |
| 3. 2026-07-01 | `Limit` | `1200 KZT` / `COMPUTED` |
| 4. coverage gap | `Limit` | no value / `RUNTIME_ERROR` |
| 5. coverage end excluded | `Limit` | no value / `RUNTIME_ERROR` |

```law
test "limit on January first" {
    given {
        context {
            legal_time @2026-01-01;
            decision_time @2026-09-13T09:00:00+05:00;
            knowledge_time @2026-09-13T09:00:00+05:00;
            timezone "Asia/Almaty";
        }
        
    }
    evaluate Limit;
    expect value == 1000 KZT;
    expect evaluation_status == COMPUTED;
    
}
```

```law
test "limit late May" {
    given {
        context {
            legal_time @2026-05-31;
            decision_time @2026-09-13T09:00:00+05:00;
            knowledge_time @2026-09-13T09:00:00+05:00;
            timezone "Asia/Almaty";
        }
        
    }
    evaluate Limit;
    expect value == 1000 KZT;
    expect evaluation_status == COMPUTED;
    
}
```

```law
test "limit from July" {
    given {
        context {
            legal_time @2026-07-01;
            decision_time @2026-09-13T09:00:00+05:00;
            knowledge_time @2026-09-13T09:00:00+05:00;
            timezone "Asia/Almaty";
        }
        
    }
    evaluate Limit;
    expect value == 1200 KZT;
    expect evaluation_status == COMPUTED;
    
}
```

```law
test "gap in coverage" {
    given {
        context {
            legal_time @2026-06-15;
            decision_time @2026-09-13T09:00:00+05:00;
            knowledge_time @2026-09-13T09:00:00+05:00;
            timezone "Asia/Almaty";
        }
        
    }
    evaluate Limit;
    
    expect evaluation_status == RUNTIME_ERROR;
    expect issue(MISSING_PARAMETER_VALUE);
}
```

```law
test "coverage end excluded" {
    given {
        context {
            legal_time @2027-01-01;
            decision_time @2026-09-13T09:00:00+05:00;
            knowledge_time @2026-09-13T09:00:00+05:00;
            timezone "Asia/Almaty";
        }
        
    }
    evaluate Limit;
    
    expect evaluation_status == RUNTIME_ERROR;
    expect issue(MISSING_PARAMETER_VALUE);
}
```

The A3 set in the [package root](https://github.com/arxohq/law/blob/master/docs/recipes/l-calc/resources/09-parameter/law.toml), pinned by [law.lock](https://github.com/arxohq/law/blob/master/docs/recipes/l-calc/resources/09-parameter/law.lock):

```json
{
  "schemaVersion": "law.params/0.1",
  "kind": "parameter-dataset",
  "id": "urn:recipe:l-calc:09:limit",
  "parameter": "urn:recipe:l-calc:09#Limit",
  "valueType": {
    "name": "urn:law:std#Money"
  },
  "timeAxis": "legal_time",
  "granularity": "date",
  "coverage": {
    "start": "2026-01-01",
    "endExclusive": "2027-01-01"
  },
  "values": [
    {
      "id": "urn:recipe:l-calc:09:limit#0",
      "valid": {
        "start": "2026-01-01",
        "endExclusive": "2026-06-01"
      },
      "value": {
        "kind": "value",
        "type": {
          "name": "urn:law:std#Money"
        },
        "value": 1000,
        "currency": "KZT"
      },
      "anchors": [
        "urn:recipe:l-calc:09#Clause"
      ]
    },
    {
      "id": "urn:recipe:l-calc:09:limit#1",
      "valid": {
        "start": "2026-07-01",
        "endExclusive": "2027-01-01"
      },
      "value": {
        "kind": "value",
        "type": {
          "name": "urn:law:std#Money"
        },
        "value": 1200,
        "currency": "KZT"
      },
      "anchors": [
        "urn:recipe:l-calc:09#Clause"
      ]
    }
  ]
}
```


## Counterfactual

Mutation: `in Edition {` → `in MissingEdition {`; expected `LDC-E5102`. Additional counterfactuals are shown as separate table rows.

## Boundary

A parameter is one time axis; a multidimensional scale is a decision table. An A3 rules-table is not a callable function. The resources/09-parameter root is executed via program: practicum; the corpus is not imported. The lock file is re-pinned to the current resource hashing; the parameter file bytes are unchanged.

## Pitfall

On a date inside the gap, or on the excluded coverage end, there is no value: MISSING_PARAMETER_VALUE.