Under CONTRAN 1.013/2024, ANTT 6.079/2026, and the RioSP concession contract as amended by the 19º and 20º Termos Aditivos. Register v1, ruled 10 September 2026. Synthetic corpus of 10,000 passages.
A free-flow toll charge on this stretch is decided by public text to a degree a city permit is not. Of 93 register entries, 60 bear on a single charge and 50 of those 60 are evaluable on public documents alone. In the Chicago delivery-device study, 8 of 54 clauses decided a trip and 4 of those 8 were evaluable on public text. The difference is that the instrument delegating authority here, the concession contract and its annexes, is published by the regulator.
What the text does not settle is narrow and carries money. On 936 of 10,000 synthetic passages, vehicles above category 1 in a weekend or holiday window, the contract does not say whether the 1,66 factor applies before or after the category multiplier; the two readings differ by 10 centavos in categories 2, 4, 5 and 6, by 20 in categories 7, 8 and 9, and by 30 in category 10, and coincide in category 3, before the discount, where the amount is returned. On 4,938 of 8,163 allowed charges, the contract's own arithmetic produces an amount beyond two decimals that no document resolves to centavos. On 108 of 10,000 passages, two instruments in force count the 30-day payment window from different events, so the day a charge becomes an infraction depends on which text is read. On 10 of 10,000, the regulation and the contract disagree about who bears an unpaid passage.
The public floor: Resolução CONTRAN 1.013/2024 (identification, the 30-day window, contest, images and retention); Resolução ANTT 6.079/2026, published in the DOU on 27 March 2026 and in force 120 days after (charges, contest and refund at art. 63-G, the loss split at art. 63-H, the group-5 fine at art. 24); Deliberação CONTRAN 277/2026, ratified by Resolução CONTRAN 1.028/2026, which opened a 200-day regularisation term from DOU publication on 29 April 2026; CTB art. 209-A with the fine of R$ 195,23 and 5 points; and Lei 13.103/2015 art. 17.
The delegation: the RioSP concession contract (Edital 003/2021) with its tariff formula at cl. 19.7.4, the ten-category multiplier table at cl. 19.3.5, the exemption list at cl. 19.3.3, the rounding rule at cl. 19.7.6, the DUF schedule in Anexo 12 with a discount percentage per gantry (Paraty 0,38%, Mangaratiba 4,69%, Itaguaí 9,98%), and the tract weights in Anexo 13; the PER (Anexo 2) on collection, discounts, exemptions, and user service; the 19º Termo Aditivo, approved by Deliberação ANTT 165/2026 of 2 June 2026 and signed on 12 June 2026, which ended the sandbox and set permanent rules for operation, notification, and the loss matrix; and the 20º Termo Aditivo of 9 July 2026, which rewrote the 1,66 window to Friday 18h to Monday 6h and 18h the day before a national holiday to 6h the day after.
The operating values: R$ 4,90 on weekdays and R$ 8,10 in the weekend and holiday window for category 1, from 1 September 2026, pinned to ANTT's notice of 21 August 2026 and the concessionaire's of 24 August 2026. The base tariff and index for that revision sit in Deliberação ANTT 1.053, which anttlegis returned as still processing on every retrieval; they are recorded as unpinned inputs.
93 entries in eleven groups: framework, class, tariff, discount, exemption, timing, identification, contest and refund, fine, loss attribution, records. Each entry quotes the clause, cites the article in Portuguese, and carries a ruling: DETERMINATE, UNDETERMINED (a standard the text does not settle), or UNGROUNDED (a term used operatively and defined nowhere read). After the ruling pass: 81 of 93 DETERMINATE, 9 of 93 UNDETERMINED, 3 of 93 UNGROUNDED. The rulings are ours, published with locators so they can be contested clause by clause.
The determinate core is the charge function: category from axle count and tyre type, the category-1 tariff for the gantry and day type, the multiplier, the 5% DBT for tag-identified passages, and the progressive DUF for categories 1, 3, and 5 by passage count per gantry, direction, and month. Two questions the ruling pass settled from text: motorcycles stay exempt on Rio-Santos, because the contract's own definition places the Trecho Metropolitano on the BR-116 between km 205 and km 230 (cl. 1.1.1 (ci)); and a plate-identified passage paid later by PIX or card earns no DBT, because the contract requires electronic payment and automatic vehicle identification together and the PER names the discount "Desconto Básico de TAG."
The nine open standards and three undefined terms are listed in full in the register. Ten of the twelve are charge-bearing; four are described here.
Rounding order (TAR-06). Cl. 19.3.10 rounds the category-1 tariff, then multiplies by category. Cl. 19.3.6 multiplies "as Tarifas calculadas conforme 19.3.5" by 1,66. Cl. 19.7.6 rounds category 1 only. For a category-4 vehicle on a Saturday the text yields R$ 24,30 or R$ 24,40, and does not choose. The concessionaire publishes R$ 8,10 for category 1, which every reading produces; the register records that as the published value, not as a resolution of the order.
The 30-day trigger (TIM-01). Resolução ANTT 6.079/2026 art. 63-C and the 19º TA cl. 4.6 count thirty days from the passage. Resolução CONTRAN 1.028/2026 counts them from the day the federal traffic authority confirms processing of the passage record, a date no document read makes visible to the user.
The 90% condition (LOS-06). The 19º TA cl. 5.2 I gives the Poder Concedente 90% of an unpaid passage if the concessionaire proves two electronic notifications at day 8 and day 15. Resolução 6.079 art. 63-H I b adds a further condition, a correspondence carrying the charge and the autuação once ANTT issues the auto. The contract and the regulation do not agree on what earns the tier.
Improper charge (CON-05). Art. 63-G refunds "cobranças indevidas" at double within seven calendar days and does not define the term. The register makes five cases determinate on its own terms; the residual, any contestation upheld on other grounds, is open.
10,000 synthetic passages on the three gantries, calibrated to the concession-level indicators in ANTT's Relatório Final da Comissão do Sandbox (March 2025): plate-read failure share, no-plate share of failures, exemption shares, and non-payment over the period, each with a page locator in the metadata. Everything the report does not give is assumed and labeled in the metadata: the tag share (mapped from the report's share of payments by AVI onto passages), the category mix, hour of day, gantry and direction, the DUF passage index, payment timing beyond day 30, the notification and correspondence shares, the fraud shares, the contest mix, the split of the report's 1,45% other exemptions across four classes, the technical read-failure share (obtained by subtracting two measured rates), and a 365-day window ending 10 September 2026 with every passage priced at the September operating values. No real plates, accounts, or people.
Each passage is determined before the charge. Over 10,000: 8,163 ALLOW with an amount and the clauses checked; 803 REFUSE, of which 731 under the exemption list at cl. 19.3.3, 41 for ANTT inspection vehicles, and 31 where identification failed under CONTRAN 1.013 art. 5º; 1,034 UNDETERMINED, of which 936 on the rounding order, 108 on the 30-day trigger, 10 on the 90% condition, and 3 on proof of bad faith. A passage can carry more than one open clause.
Every one of the 10,000 determinations re-derives from the register's own function tables without the evaluator: outcome, amount, and open clauses, with zero mismatches. The same re-derivation reports three mismatches on a deliberately altered copy.
Of 10,000 passages, 6,980 have a determination that depends on an input the public documents do not supply, and a passage can depend on more than one. On 6,177 it is the tag operator's account and plate state at the instant of passage, which decides whether the DBT applies and whether the tag path is refused; on those the category-1 tariff and multiplier are determinable from text. On 772 it is the exemption procedure the PER delegates to an unnamed resolution. On 36 it is the read-confidence threshold.
A subset of 502 passages carries a posted charge that departs from the rule in one named way. For each, the determination shows the outcome under art. 63-G: refund at double within seven calendar days, on the concessionaire, with art. 24 on a missed refund. The corpus covers four of the five cases the register makes determinate and adds two open ones.
Over 502: 100 charged inside the 30-day window, refund; 100 with the DBT not applied, refund; 80 with the DUF not applied, refund; 50 motorcycles charged on Rio-Santos, refund; 10 other exempt vehicles charged, refund; 91 charged at a higher category than the vehicle's, refund; 29 charged at a lower category, no refund, because an undercharge is not a cobrança indevida; 40 on the wrong side of the rounding ambiguity, undetermined, because the text does not fix which side is wrong; 2 with a misread plate, undetermined under the residual meaning of "indevida."
The verify command re-derives the determination underlying each of these, outcome and amount, from the register on a machine that has neither the evaluator nor the corpus generator. The refund outcome follows from that determination and art. 63-G, and is shown with the article on each record.
| passage | {
"passage_id": "SYN-PASS-00004",
"gantry": "Itaguaí",
"direction": "north",
"passed_at": "2025-09-26T14:19:21.450+00:00",
"day_type": "weekday",
"category": 1,
"axles": 2,
"identification": "ocr, plate read",
"exempt_class": "none",
"payment": "pix, 2025-10-05T04:55:36.120+00:00",
"posted": {
"case": "wrong_category",
"amount": 9.8,
"note": "billed as category 2"
}
} |
|---|---|
| posted amount | R$ 9,8 (billed as category 2) |
| the register's amount | R$ 4,90
|
| difference | R$ 4,9 |
| art. 63-G §4º and §5º outcome | REFUND: R$ 9,8 (the improper amount at double), within 7 calendar days, on the concessionaire; CON-04 (Resolução ANTT 6.079/2026 art. 63-G §4º and §5º); FIN-05 (art. 24) on a missed refund; CON-04 §3º: none, no auto exists during the transition (TIM-07) |
| verify | node riosp-freeflow/corpus/verify-sample.mjs --id SYN-PASS-00004verify-sample --id SYN-PASS-00004: register v1 (ruled 2026-09-10); re-derived outcome ALLOW, amount R$ 4.90; recorded outcome ALLOW, amount R$ 4.90; MATCH |
318 of 10,000 passages are unpaid at the evaluation date. The 19º TA cl. 5 assigns each to a bearer by findings, not by amount: was the vehicle identified; were both notifications recorded; is fraud proven; is the passage within 180 days.
Over 318: 180 inside the 30-day window, no tier yet; 73 evasion with fewer than two valid notifications, concessionaire 100% under cl. 5.3 III; 30 detection or identification failure, concessionaire 100% under cl. 5.3 II; 11 evasion with both notifications recorded, Poder Concedente 90% and concessionaire 10% under cl. 5.2 I; 7 beyond 180 days, additional concessionaire revenue under cl. 6.9, outside the split; 10 undetermined under LOS-06, where art. 63-H's further condition would move the tier; 3 fraude por má-fé and 4 fraude ao sistema, constructed at a raised share to exercise cl. 5.2 III and 5.3 II, not a frequency.
Cl. 5.2.1 makes proof of the two notifications a necessary condition for the 90% tier and requires auditable records of every attempt for five years. On this corpus the difference between the notified and un-notified tiers is 73 passages at 100% against 11 at 10%; the record of what was sent, and when, is what moves a passage between them.
The corpus is synthetic and calibrated to concession-level indicators, not gantry-level counts. The tag share, category mix, hour of day, gantry and direction, DUF passage index, payment timing beyond day 30, notification and correspondence shares, fraud shares, contest mix, the split of other exemptions across classes, the technical read-failure share, and the 365-day pricing window are assumed and labeled in the metadata; counts that depend on them, including the 936 rounding cases, describe the corpus, not traffic. The base tariff and index for the 1 September 2026 revision are unpinned; the operating values are pinned to two notices. The register models the floor as it stood on 10 September 2026, with the CONTRAN regularisation term in force; the closing day of that term is itself an open entry (TIM-08), and the register models nothing after the retrieval date. Records carry no signature and are marked synthetic. The rulings are ours; re-derivation proves the engine made this determination given this register, not that ANTT or the concessionaire agrees with the encoding. Amounts are reported at the precision the text produces; how discounted amounts settle in centavos is not in any document read. The exemption procedure, the AMAP-authorizing act, the tag operator's account and plate state, and the read-confidence threshold are inputs the public documents do not supply and are listed in the gaps file. Nothing on this page describes the concessionaire's operations, volumes, or disputes, and nothing is a safety claim, a savings claim, or a proposal for new regulation.
Register v1 with rulings and locators. Corpus of 10,000 passages with determinations and metadata. Contest subset of 502. Loss-attribution table. Gaps file. Sources with retrieval dates and digests. The verify command. Published at the address in the page footer.
riosp-freeflow/register-v1/riosp-freeflow-register.v1.jsonriosp-freeflow/register-v1/README.mdriosp-freeflow/corpus/passages.synthetic.jsonlriosp-freeflow/corpus/determinations.jsonlriosp-freeflow/corpus/metadata.jsonriosp-freeflow/corpus/summary.mdriosp-freeflow/corpus/amounts.mdriosp-freeflow/corpus/determinations.jsonlriosp-freeflow/gaps.mdriosp-freeflow/sources/sources.mdriosp-freeflow/fixturesriosp-freeflow/corpus/verify-sample.mjsriosp-freeflow/SESSION-REPORT.mdriosp-freeflow/siteVerify any determination on a machine with the repository and Node:
node riosp-freeflow/corpus/verify-sample.mjs 200 7Re-derives a seeded sample against register v1, ruled 2026-09-10, from the register's own function tables, and exits with an error on any mismatch; --id with a passage id re-derives one.
Convert: the instruments above, read in full from the regulator's and the concessionaire's own domains, into 93 entries with rulings. Simulate: 10,000 passages against the register on the operating values. Determine: one determination per passage before the charge, with the clauses checked. Contest: re-derivation of any determination offline against the register version it was made under. The same four steps as the Chicago study and as the finance registers before it.