# Collection records and interchange utilities

Review the defined input, price and output before checkout. These are one-time supplied-data jobs, with private JSON result access for30days. Existing payment methods remain available. No external accounts, device control, professional certification or recurring commitment is included.

## Collection Component and Label Reconciliation

USD 9.00 per job.

Reconcile expected and observed component labels for multi-part collection objects, retaining both missing and unexpected pieces. Supplied records only; no authentication of provenance, ownership, physical condition, insurance value or conservation suitability. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://collectionstrust.org.uk/spectrum/). No endorsement is implied.

Example input:

```json
{
  "objects": [
    {
      "id": "O1",
      "expectedLabels": [
        "base",
        "lid"
      ],
      "observedLabels": [
        "base",
        "loose"
      ]
    }
  ]
}
```

Selected expected fields:

```json
{
  "/objects/0/missing": [
    "lid"
  ],
  "/objects/0/unexpected": [
    "loose"
  ],
  "/objects/0/complete": false
}
```

## Collection Loan Date Conflict Review

USD 9.00 per job.

Find collection objects assigned to conflicting loan commitments using caller-supplied integer calendar-day indices. Both departure and return dates are occupied; no transport or availability booking is performed. Supplied records only; no authentication of provenance, ownership, physical condition, insurance value or conservation suitability. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://collectionstrust.org.uk/spectrum/). No endorsement is implied.

Example input:

```json
{
  "loans": [
    {
      "id": "L1",
      "objectIds": [
        "O1"
      ],
      "departureDay": 1,
      "returnDay": 5
    },
    {
      "id": "L2",
      "objectIds": [
        "O1"
      ],
      "departureDay": 5,
      "returnDay": 8
    }
  ]
}
```

Selected expected fields:

```json
{
  "/conflicts": [
    {
      "objectId": "O1",
      "firstLoan": "L1",
      "secondLoan": "L2",
      "sharedDays": 1
    }
  ]
}
```

## Gallery Cumulative Light Exposure Ledger

USD 9.00 per job.

Reconcile cumulative lux-hours from supplied constant-exposure segments and a caller-declared allowance; overlapping segments must represent distinct measured contributions. Supplied records only; no authentication of provenance, ownership, physical condition, insurance value or conservation suitability. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://collectionstrust.org.uk/spectrum/). No endorsement is implied.

Example input:

```json
{
  "objects": [
    {
      "id": "O1",
      "priorLuxHours": 100,
      "declaredAllowanceLuxHours": 350
    }
  ],
  "segments": [
    {
      "id": "S1",
      "objectId": "O1",
      "hours": 5,
      "lux": 60
    }
  ]
}
```

Selected expected fields:

```json
{
  "/objects/0/addedLuxHours": 300,
  "/objects/0/totalLuxHours": 400,
  "/objects/0/remainingLuxHours": -50,
  "/objects/0/aboveDeclared": true
}
```

## Collection Condition Follow-up Crosswalk

USD 9.00 per job.

Crosswalk stable finding identifiers between two supplied condition registers and distinguish unresolved, new, resolved and omitted follow-ups. Supplied records only; no authentication of provenance, ownership, physical condition, insurance value or conservation suitability. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://collectionstrust.org.uk/spectrum/). No endorsement is implied.

Example input:

```json
{
  "previous": [
    {
      "id": "C1",
      "objectId": "O1",
      "status": "open"
    },
    {
      "id": "C2",
      "objectId": "O1",
      "status": "open"
    }
  ],
  "current": [
    {
      "id": "C1",
      "objectId": "O1",
      "status": "resolved"
    },
    {
      "id": "C3",
      "objectId": "O1",
      "status": "open"
    }
  ]
}
```

Selected expected fields:

```json
{
  "/carriedOpen": [],
  "/newOpen": [
    "C3"
  ],
  "/newlyResolved": [
    "C1"
  ],
  "/missingFollowup": [
    "C2"
  ]
}
```

## Collection Loan Document Coverage

USD 9.00 per job.

Cross-check per-object coverage of caller-required loan documents, including documents that cover several objects; no legal sufficiency judgment. Supplied records only; no authentication of provenance, ownership, physical condition, insurance value or conservation suitability. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://collectionstrust.org.uk/spectrum/). No endorsement is implied.

Example input:

```json
{
  "loans": [
    {
      "id": "L1",
      "objectIds": [
        "O1",
        "O2"
      ],
      "requiredDocuments": [
        "condition"
      ]
    }
  ],
  "documents": [
    {
      "id": "D1",
      "loanId": "L1",
      "kind": "condition",
      "coveredObjects": [
        "O1"
      ]
    }
  ]
}
```

Selected expected fields:

```json
{
  "/gaps": [
    {
      "loanId": "L1",
      "objectId": "O2",
      "documentKind": "condition"
    }
  ],
  "/coveredPairs": 1
}
```

## Collection Enclosure Location Rollup

USD 9.00 per job.

Resolve objects through validated nested enclosures to their outer storage location; reject cyclic, missing-parent and unsupported-depth records. Supplied records only; no authentication of provenance, ownership, physical condition, insurance value or conservation suitability. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://collectionstrust.org.uk/spectrum/). No endorsement is implied.

Example input:

```json
{
  "enclosures": [
    {
      "id": "E1",
      "parentId": null,
      "location": "ShelfA"
    },
    {
      "id": "E2",
      "parentId": "E1",
      "location": "inside"
    }
  ],
  "objects": [
    {
      "id": "O1",
      "enclosureId": "E2"
    }
  ]
}
```

Selected expected fields:

```json
{
  "/objects/0/outerEnclosureId": "E1",
  "/objects/0/location": "ShelfA",
  "/objects/0/nestingDepth": 2
}
```

## Collection Digitization View Coverage

USD 9.00 per job.

Reconcile required digitization views against explicitly accepted capture records, showing rejected captures and duplicate accepted views; no image-quality inspection. Supplied records only; no authentication of provenance, ownership, physical condition, insurance value or conservation suitability. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://collectionstrust.org.uk/spectrum/). No endorsement is implied.

Example input:

```json
{
  "objects": [
    {
      "id": "O1",
      "requiredViews": [
        "front",
        "back"
      ]
    }
  ],
  "captures": [
    {
      "id": "C1",
      "objectId": "O1",
      "view": "front",
      "accepted": true
    },
    {
      "id": "C2",
      "objectId": "O1",
      "view": "back",
      "accepted": false
    }
  ]
}
```

Selected expected fields:

```json
{
  "/objects/0/missingViews": [
    "back"
  ],
  "/objects/0/rejectedCaptureIds": [
    "C2"
  ],
  "/objects/0/duplicateAcceptedViews": []
}
```

## Collection Acclimatization Dwell Log

USD 9.00 per job.

Reconcile contiguous, non-overlapping constant-condition log intervals against caller-declared temperature/humidity differences and dwell duration. Gaps reset continuity. No conditions are measured, thresholds prescribed or crate-opening approval given. Supplied records only; no authentication of provenance, ownership, physical condition, insurance value or conservation suitability. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://collectionstrust.org.uk/spectrum/). No endorsement is implied.

Example input:

```json
{
  "crates": [
    {
      "id": "K1",
      "requiredContinuousMinutes": 30,
      "maxTemperatureDelta": 2,
      "maxHumidityDelta": 5
    }
  ],
  "readings": [
    {
      "id": "R1",
      "crateId": "K1",
      "startMinute": 0,
      "endMinute": 20,
      "insideTemperature": 19,
      "ambientTemperature": 20,
      "insideRelativeHumidity": 49,
      "ambientRelativeHumidity": 50
    },
    {
      "id": "R2",
      "crateId": "K1",
      "startMinute": 20,
      "endMinute": 35,
      "insideTemperature": 20,
      "ambientTemperature": 20,
      "insideRelativeHumidity": 50,
      "ambientRelativeHumidity": 50
    }
  ]
}
```

Selected expected fields:

```json
{
  "/crates/0/longestRecordedStableMinutes": 35,
  "/crates/0/finalRecordedStableMinutes": 35,
  "/crates/0/meetsDeclaredDwell": true
}
```

## Collection Display Mount Inventory

USD 9.00 per job.

Consolidate declared object mount requirements against available mount inventory, exposing type-specific shortfalls; no load or material-compatibility assessment. Supplied records only; no authentication of provenance, ownership, physical condition, insurance value or conservation suitability. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://collectionstrust.org.uk/spectrum/). No endorsement is implied.

Example input:

```json
{
  "requirements": [
    {
      "id": "R1",
      "objectId": "O1",
      "mountType": "stand",
      "quantity": 3
    }
  ],
  "stock": [
    {
      "id": "S1",
      "mountType": "stand",
      "available": 2
    }
  ]
}
```

Selected expected fields:

```json
{
  "/types/0/required": 3,
  "/types/0/available": 2,
  "/types/0/shortfall": 1
}
```

## Collection Register Version Crosswalk

USD 9.00 per job.

Compare two versioned collection registers by stable object identifiers and report additions, omissions and field-level accession/location/component changes. Supplied records only; no authentication of provenance, ownership, physical condition, insurance value or conservation suitability. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://collectionstrust.org.uk/spectrum/). No endorsement is implied.

Example input:

```json
{
  "previous": [
    {
      "id": "O1",
      "accession": "A1",
      "location": "L1",
      "componentCount": 2
    }
  ],
  "current": [
    {
      "id": "O1",
      "accession": "A1",
      "location": "L2",
      "componentCount": 3
    },
    {
      "id": "O2",
      "accession": "A2",
      "location": "L1",
      "componentCount": 1
    }
  ]
}
```

Selected expected fields:

```json
{
  "/added": [
    "O2"
  ],
  "/removed": [],
  "/changed": [
    {
      "id": "O1",
      "changedFields": [
        "location",
        "componentCount"
      ]
    }
  ]
}
```

## Mat Multiple Window Layout Review

USD 9.00 per job.

Review multiple mat openings for containment, minimum outside border, intersecting area and shortest straight-line separation between rectangle edges. At most23openings; diagonal web uses Euclidean distance, not cutter-path clearance. One consistent caller-selected length unit and supplied rectangular workshop measurements only. No cutting, structural assessment, material/conservation recommendation, archival certification or automatic order. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.nedcc.org/free-resources/preservation-leaflets/4.-storage-and-handling/4.10-matting-and-framing-for-works-on-paper-and-photographs). No endorsement is implied.

Example input:

```json
{
  "width": 100,
  "height": 80,
  "minBorder": 5,
  "minWeb": 10,
  "windows": [
    {
      "id": "A",
      "x": 10,
      "y": 10,
      "width": 30,
      "height": 40
    },
    {
      "id": "B",
      "x": 45,
      "y": 10,
      "width": 30,
      "height": 40
    }
  ]
}
```

Selected expected fields:

```json
{
  "/windows/0/contained": true,
  "/pairs/0/nearestGap": 5,
  "/pairs/0/webMatches": false
}
```

## Layered Mat Reveal Reconciliation

USD 9.00 per job.

Reconcile adjacent layered openings in front-to-back order using measured common-plane coordinates and four signed reveal widths; do not assume that nominal board edges align. One consistent caller-selected length unit and supplied rectangular workshop measurements only. No cutting, structural assessment, material/conservation recommendation, archival certification or automatic order. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.nedcc.org/free-resources/preservation-leaflets/4.-storage-and-handling/4.10-matting-and-framing-for-works-on-paper-and-photographs). No endorsement is implied.

Example input:

```json
{
  "layers": [
    {
      "id": "front",
      "x": 0,
      "y": 0,
      "width": 100,
      "height": 80
    },
    {
      "id": "back",
      "x": 5,
      "y": 5,
      "width": 90,
      "height": 70
    }
  ],
  "declaredReveal": 5,
  "tolerance": 0
}
```

Selected expected fields:

```json
{
  "/pairs/0/left": 5,
  "/pairs/0/nested": true,
  "/pairs/0/revealMatches": true
}
```

## Frame Rabbet Retention Review

USD 9.00 per job.

Reconcile a positioned frame package against the visible opening and rebate rectangle, separating edge retention from edge clearance. A geometry match is not proof of physical retention or safe hanging. One consistent caller-selected length unit and supplied rectangular workshop measurements only. No cutting, structural assessment, material/conservation recommendation, archival certification or automatic order. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.nedcc.org/free-resources/preservation-leaflets/4.-storage-and-handling/4.10-matting-and-framing-for-works-on-paper-and-photographs). No endorsement is implied.

Example input:

```json
{
  "visible": {
    "x": 5,
    "y": 5,
    "width": 90,
    "height": 70
  },
  "rebate": {
    "x": 0,
    "y": 0,
    "width": 100,
    "height": 80
  },
  "package": {
    "x": 1,
    "y": 1,
    "width": 98,
    "height": 78
  },
  "minimumRetention": 3,
  "minimumClearance": 1
}
```

Selected expected fields:

```json
{
  "/leftRetention": 4,
  "/minimumEdgeClearance": 1,
  "/retentionMatches": true,
  "/clearanceMatches": true
}
```

## Frame Sandwich Closure Record

USD 9.00 per job.

Build front/back planes for an ordered frame stack and reconcile closure depth and art-to-glazing separation. Exactly one glazing layer before exactly one art layer; no pressure, movement or hardware analysis. One consistent caller-selected length unit and supplied rectangular workshop measurements only. No cutting, structural assessment, material/conservation recommendation, archival certification or automatic order. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.nedcc.org/free-resources/preservation-leaflets/4.-storage-and-handling/4.10-matting-and-framing-for-works-on-paper-and-photographs). No endorsement is implied.

Example input:

```json
{
  "rabbetDepth": 10,
  "closureAllowance": 1,
  "layers": [
    {
      "id": "G",
      "role": "glazing",
      "thickness": 2
    },
    {
      "id": "S",
      "role": "spacer",
      "thickness": 3
    },
    {
      "id": "A",
      "role": "art",
      "thickness": 1
    },
    {
      "id": "B",
      "role": "backing",
      "thickness": 2
    }
  ],
  "requiredArtGlazingSeparation": 2
}
```

Selected expected fields:

```json
{
  "/totalThickness": 8,
  "/remainingDepth": 2,
  "/artGlazingSeparation": 3,
  "/closureMatches": true,
  "/separationMatches": true
}
```

## Moulding Long and Short Point Datum Review

USD 9.00 per job.

Reconcile all four rail long/short-point measurements to one rectangular45-degree miter profile, preserving signed errors and opposing-rail differences. Compound/angled frames, saw kerf and stock yield are excluded. One consistent caller-selected length unit and supplied rectangular workshop measurements only. No cutting, structural assessment, material/conservation recommendation, archival certification or automatic order. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.nedcc.org/free-resources/preservation-leaflets/4.-storage-and-handling/4.10-matting-and-framing-for-works-on-paper-and-photographs). No endorsement is implied.

Example input:

```json
{
  "profileFaceWidth": 10,
  "declaredInnerWidth": 100,
  "declaredInnerHeight": 80,
  "tolerance": 0,
  "rails": [
    {
      "side": "top",
      "longPoint": 120,
      "shortPoint": 100
    },
    {
      "side": "bottom",
      "longPoint": 120,
      "shortPoint": 100
    },
    {
      "side": "left",
      "longPoint": 100,
      "shortPoint": 80
    },
    {
      "side": "right",
      "longPoint": 100,
      "shortPoint": 80
    }
  ]
}
```

Selected expected fields:

```json
{
  "/rails/0/expectedLongPoint": 120,
  "/rails/0/datumSpanMatches": true,
  "/oppositeWidthDifference": 0
}
```

## Mat Bevel Front and Back Face Reconciliation

USD 9.00 per job.

Reconcile measured front/back aperture rectangles against independently declared bevel runs. Coordinates must already be transformed to the same plane; reverse bevels and localized cutter overcuts are excluded. One consistent caller-selected length unit and supplied rectangular workshop measurements only. No cutting, structural assessment, material/conservation recommendation, archival certification or automatic order. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.nedcc.org/free-resources/preservation-leaflets/4.-storage-and-handling/4.10-matting-and-framing-for-works-on-paper-and-photographs). No endorsement is implied.

Example input:

```json
{
  "front": {
    "x": 2,
    "y": 2,
    "width": 96,
    "height": 76
  },
  "back": {
    "x": 0,
    "y": 0,
    "width": 100,
    "height": 80
  },
  "expectedRuns": {
    "left": 2,
    "right": 2,
    "top": 2,
    "bottom": 2
  },
  "tolerance": 0
}
```

Selected expected fields:

```json
{
  "/leftRun": 2,
  "/frontInsideBack": true,
  "/runMatches": true
}
```

## Artwork Window Visibility Proof

USD 9.00 per job.

Reconcile actual artwork/window placement and owner-marked protected rectangles, returning visible and obscured areas. This geometric proof does not inspect or modify an image. One consistent caller-selected length unit and supplied rectangular workshop measurements only. No cutting, structural assessment, material/conservation recommendation, archival certification or automatic order. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.nedcc.org/free-resources/preservation-leaflets/4.-storage-and-handling/4.10-matting-and-framing-for-works-on-paper-and-photographs). No endorsement is implied.

Example input:

```json
{
  "artwork": {
    "x": 0,
    "y": 0,
    "width": 100,
    "height": 80
  },
  "window": {
    "x": 5,
    "y": 5,
    "width": 90,
    "height": 70
  },
  "protectedRegions": [
    {
      "id": "signature",
      "x": 1,
      "y": 1,
      "width": 10,
      "height": 5
    }
  ]
}
```

Selected expected fields:

```json
{
  "/visibleArtworkArea": 6300,
  "/coveredArtworkArea": 1700,
  "/protectedRegions/0/visibleArea": 6,
  "/protectedRegions/0/clippedArea": 44
}
```

## Photographic Sensitometric Strip Reconstruction

USD 9.00 per job.

Reconstruct net photographic density from a base-plus-fog reading, retain local slopes and linearly bracket every requested crossing without extrapolating. Non-monotone curves retain multiple crossings; no film-speed or ISO certification. Supplied photographic test records only. No exposure, chemical processing, image editing, physical equipment control or treatment instruction. Caller-provided conventions and targets are retained rather than prescribed. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.ilfordphoto.com/exposure-testing/). No endorsement is implied.

Example input:

```json
{
  "baseFog": 0.1,
  "steps": [
    {
      "id": "A",
      "logExposure": 0,
      "density": 0.2
    },
    {
      "id": "B",
      "logExposure": 1,
      "density": 1.2
    },
    {
      "id": "C",
      "logExposure": 2,
      "density": 1.6
    }
  ],
  "targetNetDensities": [
    0.6,
    2
  ]
}
```

Selected expected fields:

```json
{
  "/steps/0/netDensity": 0.1,
  "/intervals/0/slope": 1,
  "/crossings/0/logExposures": [
    0.5
  ],
  "/crossings/1/logExposures": []
}
```

## Split Filter Masked Exposure Reconciliation

USD 9.00 per job.

Reconcile effective exposure by discrete print zone and filter channel using explicit visible-zone masks. Burn/dodge effects are represented by actual exposed zones; no spectral equivalence, automatic mask inference or print-quality prediction. Supplied photographic test records only. No exposure, chemical processing, image editing, physical equipment control or treatment instruction. Caller-provided conventions and targets are retained rather than prescribed. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.ilfordphoto.com/exposure-testing/). No endorsement is implied.

Example input:

```json
{
  "zones": [
    "sky",
    "land"
  ],
  "channels": [
    "soft",
    "hard"
  ],
  "exposures": [
    {
      "id": "E1",
      "channel": "soft",
      "seconds": 10,
      "visibleZones": [
        "sky",
        "land"
      ]
    },
    {
      "id": "E2",
      "channel": "hard",
      "seconds": 5,
      "visibleZones": [
        "land"
      ]
    }
  ],
  "approved": [
    {
      "id": "A",
      "zone": "land",
      "channel": "hard",
      "seconds": 4
    }
  ]
}
```

Selected expected fields:

```json
{
  "/cells/0/totalSeconds": 10,
  "/cells/3/totalSeconds": 5,
  "/cells/3/differenceSeconds": 1
}
```

## Enlarger Carrier and Print Coverage Proof

USD 9.00 per job.

Project the intersecting negative/carrier rectangle through a supplied positive uniform magnification and translation onto a paper rectangle. Rotation, lens distortion, emulsion mirroring and optical exposure falloff are excluded. Supplied photographic test records only. No exposure, chemical processing, image editing, physical equipment control or treatment instruction. Caller-provided conventions and targets are retained rather than prescribed. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.ilfordphoto.com/exposure-testing/). No endorsement is implied.

Example input:

```json
{
  "negative": {
    "x": 0,
    "y": 0,
    "width": 36,
    "height": 24
  },
  "carrier": {
    "x": 1,
    "y": 1,
    "width": 34,
    "height": 22
  },
  "magnification": 5,
  "printOffsetX": 0,
  "printOffsetY": 0,
  "paper": {
    "x": 0,
    "y": 0,
    "width": 150,
    "height": 100
  }
}
```

Selected expected fields:

```json
{
  "/carrierVisibleNegativeArea": 748,
  "/projectedImage": {
    "x": 5,
    "y": 5,
    "width": 170,
    "height": 110
  },
  "/visiblePrintArea": 13775,
  "/projectedClippedArea": 4925
}
```

## Photographic Emulsion Orientation Chain

USD 9.00 per job.

Resolve an explicitly declared sequence of origin-centered quarter-turns and horizontal/vertical mirrors into exact coordinate correspondence and handedness. Coordinates are Cartesian with x right/y up; optical or emulsion transformations are never guessed. Supplied photographic test records only. No exposure, chemical processing, image editing, physical equipment control or treatment instruction. Caller-provided conventions and targets are retained rather than prescribed. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.ilfordphoto.com/exposure-testing/). No endorsement is implied.

Example input:

```json
{
  "points": [
    {
      "id": "P",
      "x": 2,
      "y": 3
    }
  ],
  "stages": [
    {
      "id": "A",
      "operation": "mirrorX"
    },
    {
      "id": "B",
      "operation": "rotate90"
    }
  ]
}
```

Selected expected fields:

```json
{
  "/points": [
    {
      "id": "P",
      "x": -3,
      "y": -2
    }
  ],
  "/mirrored": true
}
```

## Stop Stepped Test Strip Exposure Proof

USD 9.00 per job.

Reconcile logarithmic stop-spaced test exposures and the actual additional exposures needed for a cumulative strip. One stop doubles time at unchanged light intensity; unsupported decreasing cumulative targets reject before checkout. Supplied photographic test records only. No exposure, chemical processing, image editing, physical equipment control or treatment instruction. Caller-provided conventions and targets are retained rather than prescribed. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.ilfordphoto.com/exposure-testing/). No endorsement is implied.

Example input:

```json
{
  "referenceSeconds": 10,
  "mode": "cumulative",
  "steps": [
    {
      "id": "A",
      "stopOffset": 0,
      "recordedIncrementSeconds": 10
    },
    {
      "id": "B",
      "stopOffset": 1,
      "recordedIncrementSeconds": 10
    },
    {
      "id": "C",
      "stopOffset": 2,
      "recordedIncrementSeconds": 20
    }
  ],
  "toleranceSeconds": 0
}
```

Selected expected fields:

```json
{
  "/steps/2/targetSeconds": 40,
  "/steps/2/requiredIncrementSeconds": 20,
  "/steps/2/matches": true
}
```

## Safelight Paired Density Test Record

USD 9.00 per job.

Reconcile measured safelight-test pairs against their dark control and a caller-declared net-density allowance. Retain negative corrected readings, do not interpolate or infer unmeasured passing times; comparisons use twelve significant decimal digits, matching the reported approximate values. This is a test record, not safelight qualification. Supplied photographic test records only. No exposure, chemical processing, image editing, physical equipment control or treatment instruction. Caller-provided conventions and targets are retained rather than prescribed. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.ilfordphoto.com/exposure-testing/). No endorsement is implied.

Example input:

```json
{
  "allowedNetIncrease": 0.05,
  "readings": [
    {
      "id": "A",
      "exposureMinutes": 1,
      "protectedDensity": 0.1,
      "exposedDensity": 0.13,
      "darkControlDifference": 0.01
    },
    {
      "id": "B",
      "exposureMinutes": 3,
      "protectedDensity": 0.1,
      "exposedDensity": 0.2,
      "darkControlDifference": 0.01
    }
  ]
}
```

Selected expected fields:

```json
{
  "/readings/0/controlCorrectedIncrease": 0.02,
  "/readings/1/withinDeclared": false,
  "/longestRecordedPassingMinutes": 1
}
```

## Fret Position Drawing Reconciliation

USD 9.00 per job.

Reconcile fret positions measured from the nut using explicitly supplied increasing pitch ratios and a scale length. Equal temperament is not assumed; bridge compensation, string stiffness and sound quality are excluded. Supplied workshop measurements and caller-declared targets only. Use one consistent length unit per job. No acoustic prediction, instrument adjustment, structural approval or target-setting recommendation. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.stewmac.com/fret-calculator/). No endorsement is implied.

Example input:

```json
{
  "scaleLength": 600,
  "tolerance": 0.1,
  "frets": [
    {
      "id": "F1",
      "pitchRatio": 2,
      "measuredFromNut": 300
    },
    {
      "id": "F2",
      "pitchRatio": 4,
      "measuredFromNut": 449.8
    }
  ]
}
```

Selected expected fields:

```json
{
  "/frets/0/targetFromNut": 300,
  "/frets/1/targetFromNut": 450,
  "/frets/1/spacingFromPrevious": 150,
  "/frets/1/matches": false
}
```

## Nut Slot Center and Edge Spacing Review

USD 9.00 per job.

Reconcile ordered string diameters and measured nut-slot centers under an explicit equal-center or equal-clear-gap convention. Edge allowances are measured to outer string edges; no slot width/depth or playability assessment. Supplied workshop measurements and caller-declared targets only. Use one consistent length unit per job. No acoustic prediction, instrument adjustment, structural approval or target-setting recommendation. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.stewmac.com/fret-calculator/). No endorsement is implied.

Example input:

```json
{
  "nutWidth": 10,
  "leftEdge": 1,
  "rightEdge": 1,
  "convention": "equalClearGaps",
  "tolerance": 0,
  "strings": [
    {
      "id": "L",
      "diameter": 1,
      "measuredCenter": 1.5
    },
    {
      "id": "R",
      "diameter": 2,
      "measuredCenter": 8
    }
  ]
}
```

Selected expected fields:

```json
{
  "/strings/0/targetCenter": 1.5,
  "/strings/1/targetCenter": 8,
  "/clearGaps": [
    5
  ]
}
```

## Fingerboard Circular Radius Profile Inspection

USD 9.00 per job.

Inspect transverse drops from a crown tangent against a supplied circular radius using stable sagitta arithmetic. Compound radii, longitudinal relief and surface fitting are excluded. Supplied workshop measurements and caller-declared targets only. Use one consistent length unit per job. No acoustic prediction, instrument adjustment, structural approval or target-setting recommendation. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.stewmac.com/fret-calculator/). No endorsement is implied.

Example input:

```json
{
  "radius": 100,
  "tolerance": 0.01,
  "stations": [
    {
      "id": "C",
      "x": 0,
      "measuredDrop": 0
    },
    {
      "id": "E",
      "x": 60,
      "measuredDrop": 20
    }
  ]
}
```

Selected expected fields:

```json
{
  "/stations/0/targetDrop": 0,
  "/stations/1/targetDrop": 20,
  "/stations/1/matches": true
}
```

## Neck Relief Reference Chord Record

USD 9.00 per job.

Reconstruct a separate linear reference chord for each string and signed intermediate relief as reference minus measured height. Keep strings without readings explicit; no truss-rod instructions or ideal relief assumption. Supplied workshop measurements and caller-declared targets only. Use one consistent length unit per job. No acoustic prediction, instrument adjustment, structural approval or target-setting recommendation. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.stewmac.com/fret-calculator/). No endorsement is implied.

Example input:

```json
{
  "strings": [
    {
      "id": "S",
      "firstStation": 0,
      "lastStation": 100,
      "firstHeight": 2,
      "lastHeight": 4,
      "minRelief": 0,
      "maxRelief": 1
    }
  ],
  "measurements": [
    {
      "id": "M",
      "stringId": "S",
      "station": 50,
      "measuredHeight": 2.5
    }
  ]
}
```

Selected expected fields:

```json
{
  "/measurements/0/referenceHeight": 3,
  "/measurements/0/relief": 0.5,
  "/strings/0/maximumRelief": 0.5
}
```

## Instrument Open Harmonic and Fretted Intonation Comparison

USD 9.00 per job.

Compare matched open/harmonic/fretted frequency measurements to caller-supplied ratios and units per octave. It does not estimate pitch from audio, identify harmonics or prescribe saddle/nut changes. Supplied workshop measurements and caller-declared targets only. Use one consistent length unit per job. No acoustic prediction, instrument adjustment, structural approval or target-setting recommendation. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.stewmac.com/fret-calculator/). No endorsement is implied.

Example input:

```json
{
  "unitsPerOctave": 1200,
  "strings": [
    {
      "id": "S",
      "openHz": 100,
      "harmonicHz": 200,
      "frettedHz": 400,
      "harmonicTargetRatio": 2,
      "frettedTargetRatio": 2,
      "allowedAbsoluteUnits": 1
    }
  ]
}
```

Selected expected fields:

```json
{
  "/strings/0/harmonicDeviation": 0,
  "/strings/0/frettedDeviation": 1200,
  "/strings/0/harmonicFrettedDifference": 1200,
  "/strings/0/withinDeclared": false
}
```

## Soundboard Graduation Grid Reconciliation

USD 9.00 per job.

Reconcile a rectangular measurement grid to a declared thickness envelope and integrate only measured cells as constant-thickness rectangles. Unmeasured cells are never filled; outline weighting and stiffness/tonal prediction are excluded. Supplied workshop measurements and caller-declared targets only. Use one consistent length unit per job. No acoustic prediction, instrument adjustment, structural approval or target-setting recommendation. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.stewmac.com/fret-calculator/). No endorsement is implied.

Example input:

```json
{
  "rows": 1,
  "columns": 2,
  "cellWidth": 10,
  "cellHeight": 20,
  "minimumThickness": 2,
  "maximumThickness": 3,
  "measurements": [
    {
      "id": "M",
      "row": 0,
      "column": 0,
      "thickness": 4
    }
  ]
}
```

Selected expected fields:

```json
{
  "/measuredArea": 200,
  "/missingCells": 1,
  "/measuredVolume": 800,
  "/minimumTargetVolumeForMeasuredArea": 400
}
```

## Bridge String Path Angle Record

USD 9.00 per job.

Reconcile2D approach/saddle/anchor coordinates into a signed path turn in[-180,180), x right/y up. No downforce, tension, clearance,3D geometry or sound-quality calculation. Supplied workshop measurements and caller-declared targets only. Use one consistent length unit per job. No acoustic prediction, instrument adjustment, structural approval or target-setting recommendation. Integral report quantities must remain exactly representable; unsupported calculation profiles reject before checkout. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.stewmac.com/fret-calculator/). No endorsement is implied.

Example input:

```json
{
  "strings": [
    {
      "id": "S",
      "approachX": 0,
      "approachY": 0,
      "saddleX": 1,
      "saddleY": 0,
      "anchorX": 1,
      "anchorY": -1,
      "minimumTurnDegrees": -100,
      "maximumTurnDegrees": -80
    }
  ]
}
```

Selected expected fields:

```json
{
  "/strings/0/approachDegrees": 0,
  "/strings/0/departureDegrees": -90,
  "/strings/0/signedTurnDegrees": -90,
  "/strings/0/withinDeclared": true
}
```

## OSC Core Message Inspector

USD 1.00 per job.

Decode one complete OSC message and validate its type tags, values, exact byte consumption and padding. OSC1.0 core profile supports explicit i/f/s/b tags, zero padding and finite float32 values. Packets are supplied as hex, at most8192bytes; bundles have at most8nesting levels and128nodes. At most128arguments per message and512per packet are supported. No network message is sent, scheduled or executed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://opensoundcontrol.stanford.edu/spec-1_0.html). No endorsement is implied.

Example input:

```json
{
  "packetHex": "2f6100002c69000000000007"
}
```

Selected expected fields:

```json
{
  "/address": "/a",
  "/typeTags": ",i",
  "/args": [
    {
      "type": "i",
      "value": 7
    }
  ],
  "/byteLength": 12
}
```

## OSC Nested Bundle Inventory

USD 1.00 per job.

Inventory messages inside nested OSC bundles while retaining their paths and timing-order discrepancies. OSC1.0 core profile supports explicit i/f/s/b tags, zero padding and finite float32 values. Packets are supplied as hex, at most8192bytes; bundles have at most8nesting levels and128nodes. At most128arguments per message and512per packet are supported. No network message is sent, scheduled or executed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://opensoundcontrol.stanford.edu/spec-1_0.html). No endorsement is implied.

Example input:

```json
{
  "packetHex": "2362756e646c650000000000000000010000000c2f6100002c69000000000007"
}
```

Selected expected fields:

```json
{
  "/messages": [
    {
      "path": "root/0",
      "address": "/a",
      "typeTags": ",i"
    }
  ],
  "/messageCount": 1,
  "/byteLength": 32,
  "/warnings": []
}
```

## OSC Core Message Encoder

USD 1.00 per job.

Encode a supplied OSC address and typed arguments into a validated byte-exact core message. OSC1.0 core profile supports explicit i/f/s/b tags, zero padding and finite float32 values. Packets are supplied as hex, at most8192bytes; bundles have at most8nesting levels and128nodes. At most128arguments per message and512per packet are supported. No network message is sent, scheduled or executed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://opensoundcontrol.stanford.edu/spec-1_0.html). No endorsement is implied.

Example input:

```json
{
  "address": "/a",
  "args": [
    {
      "type": "i",
      "value": 7
    }
  ]
}
```

Selected expected fields:

```json
{
  "/packetHex": "2f6100002c69000000000007",
  "/byteLength": 12
}
```

## OSC Explicit Era Timetag Conversion

USD 1.00 per job.

Convert a split OSC timetag with an explicitly supplied NTP era into Unix whole seconds and fractional seconds; retain the immediate sentinel. OSC1.0 core profile supports explicit i/f/s/b tags, zero padding and finite float32 values. Packets are supplied as hex, at most8192bytes; bundles have at most8nesting levels and128nodes. At most128arguments per message and512per packet are supported. No network message is sent, scheduled or executed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://opensoundcontrol.stanford.edu/spec-1_0.html). No endorsement is implied.

Example input:

```json
{
  "seconds": 2208988800,
  "fraction": 2147483648,
  "era": 0
}
```

Selected expected fields:

```json
{
  "/immediate": false,
  "/unixSeconds": 0,
  "/fractionSeconds": 0.5
}
```

## OSC Validated Bundle Encoder

USD 1.00 per job.

Assemble validated OSC packets into a length-correct bundle with an explicit split timetag and timing-order review. OSC1.0 core profile supports explicit i/f/s/b tags, zero padding and finite float32 values. Packets are supplied as hex, at most8192bytes; bundles have at most8nesting levels and128nodes. At most128arguments per message and512per packet are supported. No network message is sent, scheduled or executed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://opensoundcontrol.stanford.edu/spec-1_0.html). No endorsement is implied.

Example input:

```json
{
  "seconds": 0,
  "fraction": 1,
  "packets": [
    "2f6100002c69000000000007"
  ]
}
```

Selected expected fields:

```json
{
  "/packetHex": "2362756e646c650000000000000000010000000c2f6100002c69000000000007",
  "/byteLength": 32,
  "/elementCount": 1,
  "/warnings": []
}
```

## OSC Length Prefixed Stream Inspector

USD 1.00 per job.

Validate signed32bit length-prefixed OSC stream frames and inspect each complete packet without opening a connection. OSC1.0 core profile supports explicit i/f/s/b tags, zero padding and finite float32 values. Packets are supplied as hex, at most8192bytes; bundles have at most8nesting levels and128nodes. At most128arguments per message and512per packet are supported. No network message is sent, scheduled or executed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://opensoundcontrol.stanford.edu/spec-1_0.html). No endorsement is implied.

Example input:

```json
{
  "streamHex": "0000000c2f6100002c69000000000007"
}
```

Selected expected fields:

```json
{
  "/frames/0/offset": 0,
  "/frames/0/bytes": 12,
  "/frames/0/messageCount": 1,
  "/frameCount": 1
}
```

## OSC Packet Semantic Comparison

USD 1.00 per job.

Compare two validated OSC packets, preserving nested order, tags, decoded argument values and timetags. OSC1.0 core profile supports explicit i/f/s/b tags, zero padding and finite float32 values. Packets are supplied as hex, at most8192bytes; bundles have at most8nesting levels and128nodes. At most128arguments per message and512per packet are supported. No network message is sent, scheduled or executed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://opensoundcontrol.stanford.edu/spec-1_0.html). No endorsement is implied.

Example input:

```json
{
  "firstHex": "2f6100002c69000000000007",
  "secondHex": "2F6100002C69000000000007"
}
```

Selected expected fields:

```json
{
  "/byteIdentical": true,
  "/semanticEqual": true,
  "/firstMessages": 1,
  "/secondMessages": 1
}
```

## OSC Address Argument Signature Register

USD 1.00 per job.

Group a supplied OSC packet by address and expose repeated-message counts and argument-signature variants. OSC1.0 core profile supports explicit i/f/s/b tags, zero padding and finite float32 values. Packets are supplied as hex, at most8192bytes; bundles have at most8nesting levels and128nodes. At most128arguments per message and512per packet are supported. No network message is sent, scheduled or executed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://opensoundcontrol.stanford.edu/spec-1_0.html). No endorsement is implied.

Example input:

```json
{
  "packetHex": "2362756e646c650000000000000000010000000c2f6100002c69000000000007"
}
```

Selected expected fields:

```json
{
  "/addresses": [
    {
      "address": "/a",
      "messages": 1,
      "typeSignatures": [
        ",i"
      ]
    }
  ],
  "/distinctAddresses": 1
}
```

## OSC Declared Address Contract Review

USD 1.00 per job.

Check exact OSC addresses and argument signatures against a supplied address contract; wildcard dispatch is outside this profile. OSC1.0 core profile supports explicit i/f/s/b tags, zero padding and finite float32 values. Packets are supplied as hex, at most8192bytes; bundles have at most8nesting levels and128nodes. At most128arguments per message and512per packet are supported. No network message is sent, scheduled or executed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://opensoundcontrol.stanford.edu/spec-1_0.html). No endorsement is implied.

Example input:

```json
{
  "packetHex": "2f6100002c69000000000007",
  "rules": [
    {
      "id": "R1",
      "address": "/a",
      "typeTags": ",f"
    }
  ]
}
```

Selected expected fields:

```json
{
  "/messages/0/declared": true,
  "/messages/0/signatureMatches": false,
  "/warnings": [
    "Declared argument signature differs at root"
  ]
}
```

## OSC Bundle Timetag Order Review

USD 1.00 per job.

Review nested bundle timetags for children earlier than their enclosing non-immediate bundle without scheduling any message. OSC1.0 core profile supports explicit i/f/s/b tags, zero padding and finite float32 values. Packets are supplied as hex, at most8192bytes; bundles have at most8nesting levels and128nodes. At most128arguments per message and512per packet are supported. No network message is sent, scheduled or executed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://opensoundcontrol.stanford.edu/spec-1_0.html). No endorsement is implied.

Example input:

```json
{
  "packetHex": "2362756e646c650000000000000000010000000c2f6100002c69000000000007"
}
```

Selected expected fields:

```json
{
  "/warnings": [],
  "/ordered": true,
  "/messageCount": 1
}
```

## vCard4 Envelope and Cardinality Review

USD 1.00 per job.

Review the single-card BEGIN/VERSION/FN/END envelope and report missing or repeated structural records; this is not complete vCard conformance certification. One supplied vCard4.0 text profile, at most256logical lines and24000characters. RFC6868caret decoding, vCard3.0 conversion, binary attachments and external retrieval are excluded. Use synthetic or otherwise authorized non-sensitive records. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.rfc-editor.org/rfc/rfc6350). No endorsement is implied.

Example input:

```json
{
  "content": "BEGIN:VCARD\r\nVERSION:4.0\r\nFN:Example Contact\r\nEND:VCARD\r\n"
}
```

Selected expected fields:

```json
{
  "/warnings": [],
  "/profileMatches": true,
  "/lineCount": 4
}
```

## vCard Content Line JSON Decoder

USD 1.00 per job.

Unfold and decode supplied vCard content lines into ordered names, groups, raw values and explicit parameter values without guessing property meaning. One supplied vCard4.0 text profile, at most256logical lines and24000characters. RFC6868caret decoding, vCard3.0 conversion, binary attachments and external retrieval are excluded. Use synthetic or otherwise authorized non-sensitive records. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.rfc-editor.org/rfc/rfc6350). No endorsement is implied.

Example input:

```json
{
  "content": "item1.EMAIL;TYPE=work:example@example.invalid\r\n"
}
```

Selected expected fields:

```json
{
  "/lineCount": 1,
  "/lines/0/group": "item1",
  "/lines/0/name": "EMAIL",
  "/lines/0/parameters": [
    {
      "name": "TYPE",
      "values": [
        "work"
      ]
    }
  ]
}
```

## vCard Text Escape Codec

USD 1.00 per job.

Encode or decode the backslash escapes of one vCard TEXT value while preserving component delimiters when escaped; URI values are outside this codec. One supplied vCard4.0 text profile, at most256logical lines and24000characters. RFC6868caret decoding, vCard3.0 conversion, binary attachments and external retrieval are excluded. Use synthetic or otherwise authorized non-sensitive records. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.rfc-editor.org/rfc/rfc6350). No endorsement is implied.

Example input:

```json
{
  "mode": "decode",
  "value": "A\\, B\\nC\\;D"
}
```

Selected expected fields:

```json
{
  "/value": "A, B\nC;D"
}
```

## vCard Structured Name Decoder

USD 1.00 per job.

Decode the five N components into ordered text lists, retaining empty components and escaped semicolon/comma values without inferring a person identity. One supplied vCard4.0 text profile, at most256logical lines and24000characters. RFC6868caret decoding, vCard3.0 conversion, binary attachments and external retrieval are excluded. Use synthetic or otherwise authorized non-sensitive records. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.rfc-editor.org/rfc/rfc6350). No endorsement is implied.

Example input:

```json
{
  "rawValue": "Example;Alex;Middle;Dr.;Jr."
}
```

Selected expected fields:

```json
{
  "/family": [
    "Example"
  ],
  "/given": [
    "Alex"
  ],
  "/additional": [
    "Middle"
  ],
  "/prefix": [
    "Dr."
  ],
  "/suffix": [
    "Jr."
  ]
}
```

## vCard Structured Address Decoder

USD 1.00 per job.

Decode the seven ADR components while preserving empty slots and escaped text; postal deliverability and geocoding are not assessed. One supplied vCard4.0 text profile, at most256logical lines and24000characters. RFC6868caret decoding, vCard3.0 conversion, binary attachments and external retrieval are excluded. Use synthetic or otherwise authorized non-sensitive records. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.rfc-editor.org/rfc/rfc6350). No endorsement is implied.

Example input:

```json
{
  "rawValue": ";;1 Example St;Example City;ZZ;00000;Example"
}
```

Selected expected fields:

```json
{
  "/street": [
    "1 Example St"
  ],
  "/locality": [
    "Example City"
  ],
  "/postOfficeBox": [
    ""
  ]
}
```

## vCard Property Preference Review

USD 1.00 per job.

Review explicit PREF1–100 values and repeated ranks within each property type, retaining original line order and unspecified ranks as null. One supplied vCard4.0 text profile, at most256logical lines and24000characters. RFC6868caret decoding, vCard3.0 conversion, binary attachments and external retrieval are excluded. Use synthetic or otherwise authorized non-sensitive records. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.rfc-editor.org/rfc/rfc6350). No endorsement is implied.

Example input:

```json
{
  "content": "EMAIL;PREF=1:a@example.invalid\nEMAIL;PREF=1:b@example.invalid"
}
```

Selected expected fields:

```json
{
  "/properties/0/preference": 1,
  "/warnings": [
    "Repeated preference1 for EMAIL."
  ]
}
```

## vCard Alternate Language Crosswalk

USD 1.00 per job.

Crosswalk ALTID variants by property name and supplied LANGUAGE labels, exposing repeated labels; this checks a bounded language-tag syntax rather than the IANA registry. One supplied vCard4.0 text profile, at most256logical lines and24000characters. RFC6868caret decoding, vCard3.0 conversion, binary attachments and external retrieval are excluded. Use synthetic or otherwise authorized non-sensitive records. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.rfc-editor.org/rfc/rfc6350). No endorsement is implied.

Example input:

```json
{
  "content": "FN;ALTID=1;LANGUAGE=en:Example\nFN;ALTID=1;LANGUAGE=fr:Exemple"
}
```

Selected expected fields:

```json
{
  "/alternates": [
    {
      "name": "FN",
      "alternateId": "1",
      "languages": [
        "en",
        "fr"
      ],
      "lines": [
        1,
        2
      ]
    }
  ],
  "/warnings": []
}
```

## vCard PID Client Map Coverage

USD 1.00 per job.

Resolve explicitly supplied PID client components against CLIENTPIDMAP entries and retain unmapped references; positive1–999999999 numeric identifiers only; map targets are retained as opaque supplied strings, not URI-validated. No remote identity lookup or synchronization. One supplied vCard4.0 text profile, at most256logical lines and24000characters. RFC6868caret decoding, vCard3.0 conversion, binary attachments and external retrieval are excluded. Use synthetic or otherwise authorized non-sensitive records. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.rfc-editor.org/rfc/rfc6350). No endorsement is implied.

Example input:

```json
{
  "content": "CLIENTPIDMAP:1;urn:uuid:example\nEMAIL;PID=2.1:a@example.invalid\nTEL;PID=3.2:tel:+10000000000"
}
```

Selected expected fields:

```json
{
  "/references/0/mapped": true,
  "/references/1/mapped": false,
  "/warnings": [
    "PID client2 has no supplied CLIENTPIDMAP."
  ]
}
```

## vCard Contact URI Scheme Review

USD 1.00 per job.

Review URL/TEL/IMPP/GEO URI schemes and the bounded subset (HTTP(S) URLs without credentials, simple tel numbers/parameters, arbitrary parseable IMPP URIs and numeric geo coordinate forms) without following links, calling numbers, validating coordinates or testing reachability. One supplied vCard4.0 text profile, at most256logical lines and24000characters. RFC6868caret decoding, vCard3.0 conversion, binary attachments and external retrieval are excluded. Use synthetic or otherwise authorized non-sensitive records. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.rfc-editor.org/rfc/rfc6350). No endorsement is implied.

Example input:

```json
{
  "content": "URL:https://example.invalid/contact\nTEL:tel:+10000000000"
}
```

Selected expected fields:

```json
{
  "/properties/0/scheme": "https",
  "/properties/0/syntaxMatches": true,
  "/properties/1/scheme": "tel"
}
```

## vCard UTC Revision Timestamp Review

USD 1.00 per job.

Validate REV values in the explicitly supported whole-second basic UTC form and expose their epoch milliseconds; timezone-local, reduced precision and leap-second forms remain unsupported. One supplied vCard4.0 text profile, at most256logical lines and24000characters. RFC6868caret decoding, vCard3.0 conversion, binary attachments and external retrieval are excluded. Use synthetic or otherwise authorized non-sensitive records. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://www.rfc-editor.org/rfc/rfc6350). No endorsement is implied.

Example input:

```json
{
  "content": "REV:20260101T120000Z"
}
```

Selected expected fields:

```json
{
  "/revisions/0/validUtc": true,
  "/revisions/0/epochMilliseconds": 1767268800000,
  "/warnings": []
}
```

## GTFS Stop Parent Reference Review

USD 1.00 per job.

Review stops.location_type and parent_station relationships, including station parents for platforms/entrances/nodes and platform parents for boarding areas. Empty parentStation represents an omitted field. Supplied JSON projection of the stated GTFS Schedule tables only; at most128object records per table and256plain IDs/dates. YYYYMMDD date fields use the explicit Ymd/ymd keys. No feed download, routing, vehicle tracking, timezone conversion or full-feed certification. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://gtfs.org/documentation/schedule/reference/). No endorsement is implied.

Example input:

```json
{
  "stops": [
    {
      "id": "ST",
      "locationType": 1,
      "parentStation": ""
    },
    {
      "id": "P",
      "locationType": 0,
      "parentStation": "ST"
    },
    {
      "id": "B",
      "locationType": 4,
      "parentStation": "ST"
    }
  ]
}
```

Selected expected fields:

```json
{
  "/stops/1/parentTypeAllowed": true,
  "/stops/2/parentTypeAllowed": false
}
```

## GTFS Trip Route and Service Crosswalk

USD 1.00 per job.

Resolve trip route_id and service_id against explicit supplied route IDs and the union of calendar/calendar_dates service IDs; unrelated optional trip fields are excluded. Supplied JSON projection of the stated GTFS Schedule tables only; at most128object records per table and256plain IDs/dates. YYYYMMDD date fields use the explicit Ymd/ymd keys. No feed download, routing, vehicle tracking, timezone conversion or full-feed certification. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://gtfs.org/documentation/schedule/reference/). No endorsement is implied.

Example input:

```json
{
  "routes": [
    "R1"
  ],
  "serviceIds": [
    "W"
  ],
  "trips": [
    {
      "id": "T1",
      "routeId": "R1",
      "serviceId": "W"
    },
    {
      "id": "T2",
      "routeId": "R2",
      "serviceId": "W"
    }
  ]
}
```

Selected expected fields:

```json
{
  "/trips/0/routeExists": true,
  "/trips/1/routeExists": false
}
```

## GTFS Stop Time Key and Sequence Review

USD 1.00 per job.

Review stop_times primary-key uniqueness and supplied trip/stop references without requiring consecutive stop_sequence values. Repeated visits to a stop remain valid at distinct sequences. Supplied JSON projection of the stated GTFS Schedule tables only; at most128object records per table and256plain IDs/dates. YYYYMMDD date fields use the explicit Ymd/ymd keys. No feed download, routing, vehicle tracking, timezone conversion or full-feed certification. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://gtfs.org/documentation/schedule/reference/). No endorsement is implied.

Example input:

```json
{
  "tripIds": [
    "T"
  ],
  "stopIds": [
    "A",
    "B"
  ],
  "stopTimes": [
    {
      "id": "x",
      "tripId": "T",
      "stopId": "A",
      "stopSequence": 1
    },
    {
      "id": "y",
      "tripId": "T",
      "stopId": "B",
      "stopSequence": 1
    }
  ]
}
```

Selected expected fields:

```json
{
  "/rows/0/duplicateKey": true,
  "/rows/1/duplicateKey": true
}
```

## GTFS Trip Service Day Time Review

USD 1.00 per job.

Review explicit arrival/departure chronology by trip and stop_sequence with service-day hours00–99, including values beyond24:00:00. Empty, interpolated and on-demand windows are excluded; no wall-clock/DST conversion. Supplied JSON projection of the stated GTFS Schedule tables only; at most128object records per table and256plain IDs/dates. YYYYMMDD date fields use the explicit Ymd/ymd keys. No feed download, routing, vehicle tracking, timezone conversion or full-feed certification. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://gtfs.org/documentation/schedule/reference/). No endorsement is implied.

Example input:

```json
{
  "stopTimes": [
    {
      "id": "A",
      "tripId": "T",
      "stopSequence": 1,
      "arrival": "23:59:00",
      "departure": "24:00:00"
    },
    {
      "id": "B",
      "tripId": "T",
      "stopSequence": 5,
      "arrival": "24:05:00",
      "departure": "24:06:00"
    }
  ]
}
```

Selected expected fields:

```json
{
  "/rows/1/arrivalSeconds": 86700,
  "/rows/1/dwellSeconds": 60,
  "/rows/1/backwardFromPrevious": false
}
```

## GTFS Calendar Service Date Expansion

USD 1.00 per job.

Expand one calendar.txt service interval into its inclusive active civil dates, using weekdays0=Sunday through6=Saturday. At most256calendar days; no exceptions or timezone conversion in this operation. Supplied JSON projection of the stated GTFS Schedule tables only; at most128object records per table and256plain IDs/dates. YYYYMMDD date fields use the explicit Ymd/ymd keys. No feed download, routing, vehicle tracking, timezone conversion or full-feed certification. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://gtfs.org/documentation/schedule/reference/). No endorsement is implied.

Example input:

```json
{
  "startYmd": "20260105",
  "endYmd": "20260111",
  "weekdays": [
    1,
    3,
    5
  ]
}
```

Selected expected fields:

```json
{
  "/dates": [
    "20260105",
    "20260107",
    "20260109"
  ],
  "/count": 3
}
```

## GTFS Calendar Exception Application

USD 1.00 per job.

Apply calendar_dates exception types1(add) and2(remove) to one supplied service date set. Duplicate exception dates reject; absent removals remain visible. This is not a multi-service merger. Supplied JSON projection of the stated GTFS Schedule tables only; at most128object records per table and256plain IDs/dates. YYYYMMDD date fields use the explicit Ymd/ymd keys. No feed download, routing, vehicle tracking, timezone conversion or full-feed certification. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://gtfs.org/documentation/schedule/reference/). No endorsement is implied.

Example input:

```json
{
  "baseDates": [
    "20260105",
    "20260106"
  ],
  "exceptions": [
    {
      "id": "E1",
      "ymd": "20260106",
      "exceptionType": 2
    },
    {
      "id": "E2",
      "ymd": "20260107",
      "exceptionType": 1
    }
  ]
}
```

Selected expected fields:

```json
{
  "/activeDates": [
    "20260105",
    "20260107"
  ],
  "/addedDates": [
    "20260107"
  ],
  "/removedDates": [
    "20260106"
  ]
}
```

## GTFS Frequency Window Review

USD 1.00 per job.

Review half-open frequencies.txt windows and headway values. Only exact_times=1 produces a count of scheduled starts; frequency-based exact_times=0 remains null rather than inventing a timetable. Supplied JSON projection of the stated GTFS Schedule tables only; at most128object records per table and256plain IDs/dates. YYYYMMDD date fields use the explicit Ymd/ymd keys. No feed download, routing, vehicle tracking, timezone conversion or full-feed certification. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://gtfs.org/documentation/schedule/reference/). No endorsement is implied.

Example input:

```json
{
  "windows": [
    {
      "id": "F",
      "tripId": "T",
      "startTime": "08:00:00",
      "endTime": "09:00:00",
      "headwaySeconds": 900,
      "exactTimes": 1
    }
  ]
}
```

Selected expected fields:

```json
{
  "/windows/0/spanSeconds": 3600,
  "/windows/0/scheduledStartCount": 4,
  "/windows/0/overlaps": false
}
```

## GTFS Stop Transfer Rule Review

USD 1.00 per job.

Review stop-to-stop transfer types0–3, supplied stop references and the required minimum for type2. Route/trip-specific rules and in-seat types4/5 are outside this profile; no connection guarantee. Supplied JSON projection of the stated GTFS Schedule tables only; at most128object records per table and256plain IDs/dates. YYYYMMDD date fields use the explicit Ymd/ymd keys. No feed download, routing, vehicle tracking, timezone conversion or full-feed certification. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://gtfs.org/documentation/schedule/reference/). No endorsement is implied.

Example input:

```json
{
  "stopIds": [
    "A",
    "B"
  ],
  "transfers": [
    {
      "id": "X",
      "fromStop": "A",
      "toStop": "B",
      "transferType": 2,
      "minimumSeconds": null
    }
  ]
}
```

Selected expected fields:

```json
{
  "/transfers/0/referencesExist": true,
  "/transfers/0/minimumRequired": true,
  "/transfers/0/minimumProvided": false
}
```

## GTFS Shape Distance Progression Review

USD 1.00 per job.

Review shape_pt_sequence uniqueness, coordinate ranges and strictly increasing supplied shape_dist_traveled in one consistent caller-selected unit. No map matching, distance recomputation or physical route validation. Supplied JSON projection of the stated GTFS Schedule tables only; at most128object records per table and256plain IDs/dates. YYYYMMDD date fields use the explicit Ymd/ymd keys. No feed download, routing, vehicle tracking, timezone conversion or full-feed certification. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://gtfs.org/documentation/schedule/reference/). No endorsement is implied.

Example input:

```json
{
  "points": [
    {
      "id": "A",
      "shapeId": "S",
      "sequence": 1,
      "distance": 0,
      "latitude": 0,
      "longitude": 0
    },
    {
      "id": "B",
      "shapeId": "S",
      "sequence": 7,
      "distance": 100,
      "latitude": 0,
      "longitude": 1
    }
  ]
}
```

Selected expected fields:

```json
{
  "/points/1/distanceIncrement": 100,
  "/points/1/strictlyIncreasing": true
}
```

## GTFS Route Agency Coverage

USD 1.00 per job.

Resolve omitted routes.agency_id only when exactly one agency is supplied and review short/long display-name presence. Route types, branding, translations and fare rules are excluded. Supplied JSON projection of the stated GTFS Schedule tables only; at most128object records per table and256plain IDs/dates. YYYYMMDD date fields use the explicit Ymd/ymd keys. No feed download, routing, vehicle tracking, timezone conversion or full-feed certification. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Technical reference](https://gtfs.org/documentation/schedule/reference/). No endorsement is implied.

Example input:

```json
{
  "agencyIds": [
    "A"
  ],
  "routes": [
    {
      "id": "R",
      "agencyId": "",
      "shortName": "10",
      "longName": ""
    }
  ]
}
```

Selected expected fields:

```json
{
  "/routes/0/resolvedAgency": "A",
  "/routes/0/agencyMatches": true,
  "/routes/0/nameProvided": true
}
```

