# Reports and developer tools

Choose a defined job, inspect its input and result example, then review available payment options. Each is a one-time job with private JSON result access for 30 days. Save a downloaded copy.

## Panel Ranking Reconciliation

Service ID: schulze-panel-ranking. USD 9.00 per job.

Reconcile a panel decision with complete weighted preferences and trace the strongest supporting paths. Uses the winning-votes Schulze method on two to twelve candidates and one to 128 complete strict ballots; integer ballot weights are one to one million. A direct edge exists only for a strict pairwise win, carrying its winning vote count. Strongest paths maximize their weakest edge; winners are unbeaten by the reverse strongest-path comparison. Ranking layers repeatedly remove the unbeaten remaining candidates. Witnesses use a shortest path in each positive-strength threshold graph, then supplied-index traversal order; absent paths have strength zero and an empty witness. Reported winners are compared as a set. Up to 1,728 strength updates and 132 bounded path searches per record; one or two independent records. Private JSON report retained for 30 days. One-time USD 9.00 job with no subscription. Uses supplied, authorized, non-sensitive records; no provider lookup, external changes, prediction or operational guarantee. Planning methods are chosen analytical models, with no official election, legal apportionment or fairness certification. Document limits are 36,000 UTF-8 bytes, 6,000 value nodes and depth 24; results are limited to 500,000 bytes. All dimensions, references and work profiles are checked before checkout. 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.

[Open this service](https://gatewayinformationgroup.com/data-tools?tool=schulze-panel-ranking) · [Technical reference](https://arxiv.org/abs/1804.02973)

Example input:

```json
{
  "records": [
    {
      "id": "R1",
      "candidateIds": [
        "A",
        "B",
        "C"
      ],
      "ballots": [
        {
          "id": "AB",
          "weight": 3,
          "ranking": [
            0,
            1,
            2
          ]
        },
        {
          "id": "BC",
          "weight": 2,
          "ranking": [
            1,
            2,
            0
          ]
        },
        {
          "id": "CA",
          "weight": 1,
          "ranking": [
            2,
            0,
            1
          ]
        }
      ],
      "reportedWinners": [
        0
      ]
    }
  ]
}
```

Selected expected result fields:

```json
{
  "/records/0/winners": [
    0
  ],
  "/records/0/rankingLayers": [
    [
      0
    ],
    [
      1
    ],
    [
      2
    ]
  ],
  "/records/0/pairwise": [
    [
      0,
      4,
      3
    ],
    [
      2,
      0,
      5
    ],
    [
      3,
      1,
      0
    ]
  ],
  "/records/0/strongest": [
    [
      0,
      4,
      4
    ],
    [
      0,
      0,
      5
    ],
    [
      0,
      0,
      0
    ]
  ],
  "/records/0/claimMatches": true
}
```

## Approval Committee Plan Reconciliation

Service ID: proportional-approval-committee. USD 9.00 per job.

Choose an approval committee and reconcile its recorded score with every eligible committee. Exact Proportional Approval Voting maximizes the weighted sum of H(k), where H(0)=0 and H(k)=1+1/2+...+1/k for the approved members selected on each ballot. Two to twelve candidates, one to six seats no greater than the candidate count, one to 128 approval ballots with integer weights one to one million, and one or two independent records. Empty approval sets are allowed; repeated approvals are rejected. Enumerates at most 924 committees; equal scores select the lexicographically earliest supplied-index tuple and count every optimum. Per-ballot harmonic satisfaction and weighted contributions accompany the selected and reported plans. Any optimal reported committee passes optimality, including a tied alternative. Scores use exact integer units of 1/60 and return reduced fractions. Reported fraction fields accept safe integer numbers or canonical unsigned decimal strings up to 64 digits, no signs, whitespace, exponents or leading zeros; denominator is positive. Every reduced result fits this claim domain (score at most 313,600,000 and reduced denominator at most 60); equivalent non-reduced claims within it compare exactly. Private JSON report retained for 30 days. One-time USD 9.00 job with no subscription. Uses supplied, authorized, non-sensitive records; no provider lookup, external changes, prediction or operational guarantee. Planning methods are chosen analytical models, with no official election, legal apportionment or fairness certification. Document limits are 36,000 UTF-8 bytes, 6,000 value nodes and depth 24; results are limited to 500,000 bytes. All dimensions, references and work profiles are checked before checkout. 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.

[Open this service](https://gatewayinformationgroup.com/data-tools?tool=proportional-approval-committee) · [Technical reference](https://arxiv.org/abs/1407.8269)

Example input:

```json
{
  "records": [
    {
      "id": "R1",
      "candidateIds": [
        "A",
        "B",
        "C"
      ],
      "seats": 2,
      "ballots": [
        {
          "id": "AB",
          "weight": 2,
          "approvals": [
            0,
            1
          ]
        },
        {
          "id": "C",
          "weight": 1,
          "approvals": [
            2
          ]
        }
      ],
      "reportedCommittee": [
        0,
        1
      ],
      "reportedScore": {
        "numerator": "3",
        "denominator": "1"
      }
    }
  ]
}
```

Selected expected result fields:

```json
{
  "/records/0/committee": [
    0,
    1
  ],
  "/records/0/score": {
    "numerator": "3",
    "denominator": "1"
  },
  "/records/0/evaluatedCommittees": 3,
  "/records/0/optimalCommitteeCount": 3,
  "/records/0/reportedScoreMatches": true,
  "/records/0/reportedPlanOptimal": true,
  "/records/0/claimMatches": true
}
```

## Planning Unit Allocation Reconciliation

Service ID: huntington-hill-planning-units. USD 9.00 per job.

Allocate whole planning units from supplied positive weights and explain each award. The chosen Huntington–Hill method first gives one unit to every participant, then awards each remaining unit to the largest weight/sqrt(a(a+1)) priority for its current allocation a. One to twenty-four participants, total units at least the participant count and at most 256, integer weights one to one million, and one or two independent records. Exact BigInt cross-products compare squared priorities without floating-point roots; an equal priority goes to the earliest supplied participant. The trace retains every award, selected squared priority and complete tied set. A reported allocation is checked for total, minimum-one feasibility and per-participant differences. At most 255 awards and 24 priority comparisons per award. Units describe the supplied planning model and do not establish demand or statutory entitlement. Private JSON report retained for 30 days. One-time USD 9.00 job with no subscription. Uses supplied, authorized, non-sensitive records; no provider lookup, external changes, prediction or operational guarantee. Planning methods are chosen analytical models, with no official election, legal apportionment or fairness certification. Document limits are 36,000 UTF-8 bytes, 6,000 value nodes and depth 24; results are limited to 500,000 bytes. All dimensions, references and work profiles are checked before checkout. 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.

[Open this service](https://gatewayinformationgroup.com/data-tools?tool=huntington-hill-planning-units) · [Technical reference](https://www.census.gov/topics/public-sector/congressional-apportionment/about/computing.html)

Example input:

```json
{
  "records": [
    {
      "id": "R1",
      "participants": [
        {
          "id": "Large",
          "weight": 100
        },
        {
          "id": "Small",
          "weight": 50
        }
      ],
      "totalUnits": 5,
      "reportedAllocation": [
        3,
        2
      ]
    }
  ]
}
```

Selected expected result fields:

```json
{
  "/records/0/allocation": [
    3,
    2
  ],
  "/records/0/reportedTotal": 5,
  "/records/0/reportedPlanFeasible": true,
  "/records/0/claimMatches": true
}
```

## Integer Coalition Cost Plan Reconciliation

Service ID: integer-coalition-minimax-cost-split. USD 9.00 per job.

Find a whole-unit cost split that minimizes the largest signed coalition excess and reconcile a recorded alternative. Two to four participants, a grand total of zero to forty nonnegative integer analysis units, and one integer cost from zero to one million for every nonempty proper coalition. Coalition masks use bit i for supplied participant i; duplicates, missing masks and grand or empty coalitions reject. Enumerates every nonnegative integer allocation summing to the total, at most 12,341 compositions, and minimizes max(sum allocated to coalition minus its supplied cost). Negative excesses remain negative. Equal objectives select the lexicographically earliest allocation and count every optimum. Both plans retain all coalition excesses and maximizing-coalition witnesses; reported feasibility, objective accuracy and optimality are separate. One or two independent records; at most 172,774 coalition assessments per record. This is finite integer minimax cost sharing, with no continuous least-core, nucleolus, transferable-payment execution or inferred coalition behavior. The bounded analysis units are not payment limits. Private JSON report retained for 30 days. One-time USD 9.00 job with no subscription. Uses supplied, authorized, non-sensitive records; no provider lookup, external changes, prediction or operational guarantee. Planning methods are chosen analytical models, with no official election, legal apportionment or fairness certification. Document limits are 36,000 UTF-8 bytes, 6,000 value nodes and depth 24; results are limited to 500,000 bytes. All dimensions, references and work profiles are checked before checkout. 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.

[Open this service](https://gatewayinformationgroup.com/data-tools?tool=integer-coalition-minimax-cost-split) · [Technical reference](https://web.mit.edu/schulz/www/epapers/su-do-2013.pdf)

Example input:

```json
{
  "records": [
    {
      "id": "R1",
      "participantIds": [
        "A",
        "B"
      ],
      "totalUnits": 4,
      "coalitionCosts": [
        {
          "mask": 1,
          "cost": 3
        },
        {
          "mask": 2,
          "cost": 3
        }
      ],
      "reportedAllocation": [
        2,
        2
      ],
      "reportedMaximumExcess": -1
    }
  ]
}
```

Selected expected result fields:

```json
{
  "/records/0/allocation": [
    2,
    2
  ],
  "/records/0/minimumMaximumExcess": -1,
  "/records/0/evaluatedAllocations": 5,
  "/records/0/optimalAllocationCount": 1,
  "/records/0/maximizingCoalitions": [
    1,
    2
  ],
  "/records/0/reportedPlanOptimal": true,
  "/records/0/claimMatches": true
}
```

## Fixed Tree Fitch Parsimony API

Service ID: fixed-tree-fitch-parsimony. USD 1.00 per job.

Calculations use only the records you submit, with deterministic ties and exact results. No external data is retrieved. Private JSON result retained for 30 days; USD 1.00 per one-time job. Find the minimum number of equally weighted state changes on your fixed rooted strict binary tree. Submit 2 through 24 uniquely named leaves, 1 through 24 sites, and an explicit ordered alphabet of at most eight states. Every leaf has one nonempty allowed-state set at every site. References, unique parents, root, connectivity and coverage are checked. Each site returns bottom-up Fitch sets, one deterministic minimum-change ancestral assignment and its changed-edge witness. The root uses the first state in alphabet order; each child retains its parent state when it belongs to its bottom-up set, otherwise uses the first available state. Bottom-up sets are not claimed to enumerate every globally possible ancestral state. No tree search, sequence alignment, mutation weighting, probability estimate or biological inference is performed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Open this service](https://gatewayinformationgroup.com/data-tools?tool=fixed-tree-fitch-parsimony) · [Technical reference](https://evoluscope.fr/phylographe/biblio/Fitch1971.pdf)

Example input:

```json
{
  "alphabet": [
    "A",
    "B"
  ],
  "root": 2,
  "nodes": [
    {
      "taxon": "L"
    },
    {
      "taxon": "R"
    },
    {
      "children": [
        0,
        1
      ]
    }
  ],
  "leafStates": [
    {
      "taxon": "L",
      "sites": [
        [
          "A"
        ]
      ]
    },
    {
      "taxon": "R",
      "sites": [
        [
          "B"
        ]
      ]
    }
  ]
}
```

Selected expected result fields:

```json
{
  "/totalChanges": 1,
  "/sites/0/assignment": [
    {
      "nodeIndex": 0,
      "state": "A"
    },
    {
      "nodeIndex": 1,
      "state": "B"
    },
    {
      "nodeIndex": 2,
      "state": "A"
    }
  ],
  "/sites/0/changedEdges": [
    {
      "parentIndex": 2,
      "childIndex": 1,
      "fromState": "A",
      "toState": "B"
    }
  ]
}
```

## Unrooted Robinson Foulds Splits API

Service ID: unrooted-robinson-foulds-splits. USD 1.00 per job.

Calculations use only the records you submit, with deterministic ties and exact results. No external data is retrieved. Private JSON result retained for 30 days; USD 1.00 per one-time job. Compare the nontrivial edge splits of two supplied unrooted trees on the same ordered list of 2 through 24 unique taxa. Taxon leaves occupy node indices 0 through n-1; internal nodes have degree at least three and total node count is at most 46. Both graphs must be simple connected trees. Polytomies are accepted without resolution. Each split keeps its smaller taxon-index side; equal-size sides use lexicographic numeric order. Return both split sets, shared splits, each unique set and the symmetric-difference COUNT as the declared Robinson-Foulds convention. The normalized value is count divided by the sum of the two split counts, or null when that sum is zero. No branch-length comparison, silent taxon pruning or taxon matching is performed. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Open this service](https://gatewayinformationgroup.com/data-tools?tool=unrooted-robinson-foulds-splits) · [Technical reference](https://ms609.github.io/TreeDist/articles/Robinson-Foulds.html)

Example input:

```json
{
  "taxa": [
    "A",
    "B",
    "C",
    "D"
  ],
  "tree1": {
    "nodeCount": 6,
    "edges": [
      [
        0,
        4
      ],
      [
        1,
        4
      ],
      [
        4,
        5
      ],
      [
        2,
        5
      ],
      [
        3,
        5
      ]
    ]
  },
  "tree2": {
    "nodeCount": 5,
    "edges": [
      [
        0,
        4
      ],
      [
        1,
        4
      ],
      [
        2,
        4
      ],
      [
        3,
        4
      ]
    ]
  }
}
```

Selected expected result fields:

```json
{
  "/splits1": [
    [
      0,
      1
    ]
  ],
  "/splits2": [],
  "/robinsonFouldsCount": 1,
  "/normalized": {
    "numerator": "1",
    "denominator": "1"
  }
}
```

## Average Link UPGMA Hierarchy API

Service ID: average-link-upgma-hierarchy. USD 1.00 per job.

Calculations use only the records you submit, with deterministic ties and exact results. No external data is retrieved. Private JSON result retained for 30 days; USD 1.00 per one-time job. Rational values are reduced numerator/denominator decimal strings with a positive denominator; no floating-point approximation is used. Input distances are symmetric nonnegative integers at most 1000000 with a zero diagonal, for 2 through 16 unique IDs. IDs follow submitted order; ties compare the numeric leaf-index tuples of the active clusters, then the pair of clusters. Arithmetic is bounded to 2000000 counted operations and 512-bit integer intermediates. Build an average-link hierarchy using leaf-count-weighted cluster distance updates. Each merge reports its children, member indices, merge distance, height at half the merge distance and both child limbs. The cophenetic matrix reports twice the height of each pair’s first shared cluster; residuals are cophenetic distance minus submitted distance. The hierarchy does not guarantee an exact fit to the supplied matrix or establish an evolutionary history. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Open this service](https://gatewayinformationgroup.com/data-tools?tool=average-link-upgma-hierarchy) · [Technical reference](https://biopython.org/docs/latest/api/Bio.Phylo.TreeConstruction.html)

Example input:

```json
{
  "ids": [
    "A",
    "B",
    "C"
  ],
  "matrix": [
    [
      0,
      2,
      4
    ],
    [
      2,
      0,
      8
    ],
    [
      4,
      8,
      0
    ]
  ]
}
```

Selected expected result fields:

```json
{
  "/merges/0/leafIndices": [
    0,
    1
  ],
  "/merges/0/height": {
    "numerator": "1",
    "denominator": "1"
  },
  "/merges/1/mergeDistance": {
    "numerator": "6",
    "denominator": "1"
  },
  "/residualMatrix/0/2": {
    "numerator": "2",
    "denominator": "1"
  },
  "/residualMatrix/1/2": {
    "numerator": "-2",
    "denominator": "1"
  }
}
```

## Neighbor Joining Distance Tree API

Service ID: neighbor-joining-distance-tree. USD 1.00 per job.

Calculations use only the records you submit, with deterministic ties and exact results. No external data is retrieved. Private JSON result retained for 30 days; USD 1.00 per one-time job. Rational values are reduced numerator/denominator decimal strings with a positive denominator; no floating-point approximation is used. Input distances are symmetric nonnegative integers at most 1000000 with a zero diagonal, for 2 through 16 unique IDs. IDs follow submitted order; ties compare the numeric leaf-index tuples of the active clusters, then the pair of clusters. Arithmetic is bounded to 2000000 counted operations and 512-bit integer intermediates. Construct a neighbor-joining tree by minimizing Q(i,j)=(m-2)d(i,j)-r(i)-r(j) at each stage with more than two active clusters, then connect the final two nodes. Each join reports active nodes, row sums, selected Q value, both limbs and every updated row distance. Return the edge list, fitted pair distances and residuals defined as fitted minus submitted distance. Negative limbs and reduced distances are preserved exactly, with negative edge indices identified; no clipping, best-tree guarantee or biological inference is provided. Two taxa return their single supplied-distance edge. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Open this service](https://gatewayinformationgroup.com/data-tools?tool=neighbor-joining-distance-tree) · [Technical reference](https://academic.oup.com/mbe/article/4/4/406/1029664)

Example input:

```json
{
  "ids": [
    "A",
    "B",
    "C"
  ],
  "matrix": [
    [
      0,
      5,
      9
    ],
    [
      5,
      0,
      10
    ],
    [
      9,
      10,
      0
    ]
  ]
}
```

Selected expected result fields:

```json
{
  "/joins/0/firstNode": 0,
  "/joins/0/secondNode": 1,
  "/joins/0/qValue": {
    "numerator": "-24",
    "denominator": "1"
  },
  "/edges": [
    {
      "firstNode": 0,
      "secondNode": 3,
      "length": {
        "numerator": "2",
        "denominator": "1"
      }
    },
    {
      "firstNode": 1,
      "secondNode": 3,
      "length": {
        "numerator": "3",
        "denominator": "1"
      }
    },
    {
      "firstNode": 3,
      "secondNode": 2,
      "length": {
        "numerator": "7",
        "denominator": "1"
      }
    }
  ],
  "/negativeEdgeIndices": []
}
```

Use authorized, non-sensitive input. Each service applies its stated profile and does not change external systems or provide professional certification. A quote is unpaid; a signature alone does not establish settlement.
