cert-machine · certified decisions · Tesouro Direto

Tesouro Direto prices re-decided from the official rule table

PU Verificado

Tesouro Direto publishes a price for every federal bond it sells, every business day, and the Treasury publishes the formula that produces it — down to a table saying which intermediate value is truncated and which is rounded, and at how many decimals. So each published price has exactly one value under its own rule. This page re-decides every price of the titles that need no price index — Tesouro Prefixado (LTN), Prefixado com Juros Semestrais (NTN-F) and Tesouro Selic (LFT) — in the public history, 145,679 of them, in exact arithmetic: 132,538 are the rule’s value to the centavo, 12,791 lie inside the interval the published rate’s two decimals allow, 289 are not the rule’s value, 0 could not be decided, and 61 are NEEDS DATA (settlement on or after maturity). The conventions the publisher follows but does not print — which day a purchase settles, whether the centavos are cut or rounded — are measured, not assumed.

The pinned history precotaxatesourodireto.csv (Tesouro Transparente, ODbL; 77,173 rows of Tesouro Prefixado = LTN, Tesouro Prefixado com Juros Semestrais = NTN-F and Tesouro Selic = LFT, 2004-12-31 to 2026-10-27, 83 titles), the ANBIMA national-holiday file to 2099, and the STN methodology of 29/04/2024 whose Tabela 3 is the rule (= ANBIMA 2021 §22), every byte sha256-pinned in corpus/pu/PINS.json. Pre-registered in corpus/pu/preregistration.json, with 6 dated amendments. For the LFT, the Selic daily rate (BCB SGS 11) builds the VNA and the Selic target (SGS 432) the projection, both pinned (6,603 Selic days, 2000-07-03 → 2026-10-15); the settlement days B3 did not trade are derived from B3’s circulars and archived calendar pages (corpus/pu/b3-settlement.json). Both sides of every row (compra, venda) under the pre-registered settlement hypotheses and printed readings. Still out: the IPCA-indexed titles (their daily projection is not public), ANBIMA’s secondary-market prices and B3’s.

tl;dr
  • The finding. 90.98% of 145,679 prices are the rule’s value to the centavo. The census decides the conventions: a purchase settles on the next business day (D+1, 62,692 buy-side prices, the whole history); a sale settled on the next business day too until 2021-09-10 (56,065 prices) and on the quotation day since (D+0, 14,674 prices; every sell-side price from 2022 on); and the centavos are the 6-decimal price truncated, never rounded (66,241 prices reproduce only under truncation; 7 only under rounding). 18,722 prices reproduce only under the calendar in force on the day they were published: 20 November became a national holiday on 2023-12-21 (Lei 14.759), today’s holiday file carries it from 2024 on, and every earlier quotation of a title maturing after 2024 was priced without it — one business day more per weekday 20 November between settlement and maturity. The data place the publisher’s switch to the new calendar at the quotation of 2023-12-26 (the last quotation priced on the old calendar: 2023-12-22). 804 prices reproduce only with settlement on the next day B3 traded — a São Paulo holiday the exchange observed (25 January, 9 July, 20 November through 2021), 24 or 31 December, or the 2014 World Cup days — the settlement calendar is B3’s, derived here from B3’s own circulars and the exchange’s archived calendar pages (80 such days 2004–2026, 56 named in a pinned document, 24 following the rule alone; 181 prices rest on a rule-only day). 12,791 prices are CONSISTENT, not reproduced: Tesouro Direto prints the LFT’s ágio/deságio at two decimals and prices with more — the printed centavos lie inside the interval the printed rate’s half-unit allows, and no closer decision is possible from what is published (LFT 12,751, NTN-F 39, LTN 1). The box holds under the side’s primary settlement for 12,058 of them and only under another pre-registered settlement for 733 (D1 573, D1x 28, D1b3 25, D0 33, D1/pre 27, D0/pre 47) — the sell side settled D+1 until 2021-09-10, and the primary D+0 alone never saw those rows (amendment 6). 289 prices are OFF: not the rule’s value under any pre-registered settlement; 0 REFUSED (the enclosure straddled a truncation boundary); 61 NEEDS DATA (settlement on or after maturity). Each is listed with its exact value and the difference in centavos, or its reason.
  • The mechanism. Every step of the Treasury’s formula is exact: business days on the pinned calendar, the rate truncated at 6 decimals, the exponent du/252 truncated at 14, each NTN-F flow rounded at 9, the price truncated at 6. The one irrational step, (1 + taxa)^(du/252), is an enclosure — BigInt fixed point with every series remainder bounded — and each truncation is a decision from the two ends or a refusal. A second decider in Python (decimal, 60 digits, directed rounding; no shared code) re-derives every OFF and REFUSED row and a seeded sample (1,789/1,789 agree). The methodology’s own worked examples (LTN 753.315323, NTN-F 903.075616 with its 12 flows, LFT 3455.211852 with its VNA and projection) are reproduced digit for digit before any row is decided. What each verdict rests on, and how far each premise was checked, is in §4.
  • Check it. node tools/run-pu-ledger.js (about a quarter of an hour on a laptop) · node instruments/pu/battery.js — 20 checks, 13 red controls · python3 -I instruments/pu/decide.py re-decides the worked examples with no engine present.
prices decided
145,679
LTN + NTN-F + LFT, buy and sell, 2004 → 2026-10-27
reproduced
90.98%
132,538 prices equal the rule’s value truncated to the centavo
consistent
12,791
inside the price interval the printed rate’s precision allows — LFT 12,751 · NTN-F 39 · LTN 1
off
289
not the rule’s value under any pre-registered settlement — each listed below
refused
0
the enclosure straddled a truncation boundary; not claimed either way
needs data
61
settlement on or after maturity — listed in the ledger with its reason
cross-checked
1,789/1,789
rows re-derived by the Python decider; every OFF and REFUSED row included
§1 · the atlas

Every title, every day, one verdict

2005 2007 2009 2011 2013 2015 2017 2019 2021 2023 2025 LFT 2005-02 2008-06 2011-03 2013-03 2017-03 2024-09 2027-03 2031-03 LTN 2005-01 2005-10 2006-07 2007-04 2008-01 2008-10 2009-07 2010-07 2012-01 2015-01 2018-01 2021-01 2024-07 2027-01 2031-01 NTN-F 2008-01 2011-01 2014-01 2023-01 2029-01 2035-01
Rows: the 83 titles without a price index by maturity (22 LFT, 44 LTN, 17 NTN-F); x: quotation days from 2004-12-31; one buy-side price per cell, settlement D+1. A thin faint line is a run of prices REPRODUCED, the centavos truncated as the rule says (54,002 cells); a thin brighter line, REPRODUCED only if the centavos are rounded (4 cells); a heavier bright line, REPRODUCED only under the calendar in force on the quotation day (no 20 November holiday after 2023) (8,992 cells); a tick, REPRODUCED only with settlement on the next day B3 traded (273 cells); an outlined bar, CONSISTENT: inside the interval of prices the printed rate’s two decimals allow (the LFT) (6,240 cells); a diamond, an OFF price (125 cells). Weight and shape carry the verdict, never a hue: a greyscale copy loses nothing.

The field is the result: an almost uniform texture of reproduced prices, with the exceptions where they are. The buy side is drawn because it carries the settlement convention; on the sell side (D+1 until 2021-09-10, D+0 since) 91.16% of 75,982 prices are REPRODUCED, 6,551 are CONSISTENT and 164 OFF, and its exceptions are in the table of §3.

§2 · the census

The conventions the publisher follows, measured

Three things the methodology does not say about Tesouro Direto’s published prices were pre-registered as hypotheses and decided row by row: on which day a purchase and a sale settle, and how a 6-decimal price becomes the 2-decimal one printed. The census answers: buy D+1 across the whole history; sell D+1 until 2021-09-10, sell D+0 since — a change of settlement convention made during 2021 and not printed beside the price (770 sell-side prices of 2021 reproduce only under D+0, every one from 2022 on; 28 earlier prices do too, on 9 days where both settlements were quoted); centavos truncated throughout. Where every hypothesis fails, the row is OFF; the table shows how many, by year.

yearbuy pricesbuy D+1of which old calendar onlybuy on B3’s next day onlybuy OFFsell pricessell D+1sell D+0of which old calendar onlysell on B3’s next day onlysell OFF
2004111100012120000
20053,2323,21301103,2313,21210110
20063,4473,43401303,8333,81000164
20074,0784,0330004,7424,69200382
20085,0304,97700145,1365,0322103842
20093,2433,2070054,2894,23300300
20102,5832,5550093,8443,800002814
20112,3392,3300723,6203,60500122
20123,0673,0450003,0062,98200240
20132,7782,72403402,6312,58100500
20142,3622,25123268332,4342,32312327434
20151,9541,91524816142,4522,40312483018
20162,6572,6314767142,9492,9194475916
20172,5692,5414942602,7052,6720494310
20182,7502,6947122962,9042,841218712538
20192,9562,9049313103,2063,149245978570
20203,4242,9601,278003,4312,9682491,287150
20213,4222,4541,2431503,4221,7079401,319150
20223,6332,6991,693703,68002,7221,94400
20233,3242,2471,721903,50132,3191,97600
20243,8752,8374003,9393512,878400
20253,8632,7554003,9232772,801900
20263,0392,27550283,0924932,2743024

A calendar is dated. The pinned holiday file is the one ANBIMA serves today, and it carries a holiday that did not exist when most of these prices were published: 20 November, national since Lei 14.759 of 21 December 2023. A quotation of 2019 for a title maturing in 2029 was priced with the calendar of 2019, in which 2024, 2025, 2026 and 2028 each had one more business day than today’s file says (2027’s 20 November is a Saturday). Re-decided with today’s calendar those prices are OFF by exactly that many days; re-decided with the calendar as of the quotation they are the rule’s value to the centavo. The pre-registration’s second amendment added that hypothesis after the full run showed the pattern (du + 1 for 2025 maturities, + 2 for 2026, + 4 for 2029 on a seeded sample of 30 rows); the rows that need it are the heavier bright lines in the atlas and the “of which old calendar only” columns here. Around the law’s date the census reads, per quotation day, how many rows reproduce only under today’s calendar and how many only under the old one; the last day priced on the old calendar is 2023-12-22 and the first priced on the new one is 2023-12-26.

The settlement calendar is the exchange’s. The methodology counts du on the national bank calendar, but Tesouro Direto settles through B3, which did not operate on São Paulo’s own holidays (25 January, 9 July, and 20 November from 2006) through 2021, on 24 and 31 December every year, and on the 2014 World Cup days the exchange listed. A purchase quoted the day before settles on the next day B3 traded, and the published price says so. corpus/pu/b3-settlement.json derives those days from B3’s circulars (2017–2026) and from the exchange’s calendar pages as the Wayback Machine captured them (2004–2016), citing for each date the documents that name the holiday; dates no captured document names (2007 and 2008 among them) follow the rule alone and the prices resting on them are counted apart. The July 2014 match days are not in the table because no page listing them was captured; those prices stay OFF.

The settlement skip: Tesouro Direto quotes on 24 and 31 December but does not settle on them, and the ANBIMA holiday file says in its own notes that it lists only days that close bank reserves and omits the last business day of the year. The amendment of 2026-10-16 in the pre-registration added that hypothesis after the first 4,000 rows showed it; the rows that need it are counted apart, never folded into the primary count.

§3 · the slips

289 published prices that are not their rule’s value

0 34 67 2004 0 2005 0 2006 4 2007 2 2008 56 2009 5 2010 23 2011 4 2012 0 2013 0 2014 67 2015 32 2016 30 2017 0 2018 14 2019 0 2020 0 2021 0 2022 0 2023 0 2024 0 2025 0 2026 52
OFF prices per quotation year, both sides. A slip is the publisher’s printed number differing from its own methodology’s value for its own published rate; it is not a refutation of the methodology.
titlequotedsiderate % a.a.printedthe rule’s value (T-6), at D1diff ¢under the other settlements
LFT 2028-03-012026-10-27buy0,0220175.2820103.6678507162D0 2026-10-27: 20093.372548
D0/pre 2026-10-27: 20093.352449
D1/pre 2026-10-28: 20103.647741
LFT 2028-03-012026-10-27sell0,0320162.2720090.6994167158D0/pre 2026-10-27: 20090.659218
D1 2026-10-28: 20100.993351
D1/pre 2026-10-28: 20100.973242
LFT 2027-03-012026-10-27buy0,0220179.4820107.6896537180D0 2026-10-27: 20097.412395
D0/pre 2026-10-27: 20097.392296
D1/pre 2026-10-28: 20107.689653
LFT 2027-03-012026-10-27sell0,0320168.5020096.7491367176D0/pre 2026-10-27: 20096.729038
D1 2026-10-28: 20107.046165
D1/pre 2026-10-28: 20107.026056
LFT 2029-03-012026-10-27buy0,0520157.7920085.7708257202D0 2026-10-27: 20075.464572
D0/pre 2026-10-27: 20075.384177
D1/pre 2026-10-28: 20085.690389
LFT 2029-03-012026-10-27sell0,0620142.7820070.8016647198D0/pre 2026-10-27: 20070.721269
D1 2026-10-28: 20081.125642
D1/pre 2026-10-28: 20081.025097
LFT 2031-03-012026-10-27buy0,1020094.0220022.7290577130D0 2026-10-27: 20012.414828
D0/pre 2026-10-27: 20012.113347
D1/pre 2026-10-28: 20022.407313
LFT 2031-03-012026-10-27sell0,1120075.0320003.8125687122D0/pre 2026-10-27: 20003.470889
D1 2026-10-28: 20014.142507
D1/pre 2026-10-28: 20013.780545
LFT 2029-03-012026-10-26buy0,0520147.4320085.7306076170D0 2026-10-26: 20075.424374
D0/pre 2026-10-26: 20075.343979
D1/pre 2026-10-27: 20085.650171
LFT 2029-03-012026-10-26sell0,0620132.4220070.7614676166D0/pre 2026-10-26: 20070.660973
D1 2026-10-27: 20081.065315
D1/pre 2026-10-27: 20080.984879
LFT 2027-03-012026-10-26buy0,0220169.2220107.6896536154D0 2026-10-26: 20097.392296
D0/pre 2026-10-26: 20097.372197
D1/pre 2026-10-27: 20107.669544
LFT 2027-03-012026-10-26sell0,0320158.2220096.7290386150D0/pre 2026-10-26: 20096.688840
D1 2026-10-27: 20107.026056
D1/pre 2026-10-27: 20107.005947
LFT 2031-03-012026-10-26buy0,1020084.4420022.6486216180D0 2026-10-26: 20012.334433
D0/pre 2026-10-26: 20012.032952
D1/pre 2026-10-27: 20022.346986
LFT 2031-03-012026-10-26sell0,1120065.4520003.7321736172D0/pre 2026-10-26: 20003.370395
D1 2026-10-27: 20014.041962
D1/pre 2026-10-27: 20013.700109
LFT 2028-03-012026-10-26buy0,0220165.0420103.6477416140D0 2026-10-26: 20093.352449
D0/pre 2026-10-26: 20093.332351
D1/pre 2026-10-27: 20103.627632
LFT 2028-03-012026-10-26sell0,0320152.0120090.6592186136D0/pre 2026-10-26: 20090.639120
D1 2026-10-27: 20100.973242
D1/pre 2026-10-27: 20100.933024
LFT 2028-03-012026-10-23buy0,0220154.7320103.6276325111D0 2026-10-23: 20093.332351
D0/pre 2026-10-23: 20093.332351
D1/pre 2026-10-26: 20103.607523
LFT 2028-03-012026-10-23sell0,0320141.7020090.6391205107D0/pre 2026-10-23: 20090.619021
D1 2026-10-26: 20100.933024
D1/pre 2026-10-26: 20100.912915
LFT 2031-03-012026-10-23buy0,1020074.4320022.5681855187D0 2026-10-23: 20012.254038
D0/pre 2026-10-23: 20011.952557
D1/pre 2026-10-26: 20022.266550
LFT 2031-03-012026-10-23sell0,1120055.4420003.6316795181D0/pre 2026-10-23: 20003.290000
D1 2026-10-26: 20013.961526
D1/pre 2026-10-26: 20013.599564
LFT 2029-03-012026-10-23buy0,0520137.3520085.6903895166D0 2026-10-23: 20075.384177
D0/pre 2026-10-23: 20075.303782
D1/pre 2026-10-26: 20085.609953
LFT 2029-03-012026-10-23sell0,0620122.3420070.7212695162D0/pre 2026-10-23: 20070.620776
D1 2026-10-26: 20081.025097
D1/pre 2026-10-26: 20080.924552
LFT 2027-03-012026-10-23buy0,0220159.0020107.6695445134D0 2026-10-23: 20097.372197
D0/pre 2026-10-23: 20097.352099
D1/pre 2026-10-26: 20107.649435
LFT 2027-03-012026-10-23sell0,0320147.9920096.6888405131D0/pre 2026-10-23: 20096.668741
D1 2026-10-26: 20107.005947
D1/pre 2026-10-26: 20106.965729
LFT 2029-03-012026-10-22buy0,0520127.1320085.6501714148D0 2026-10-22: 20075.343979
D0/pre 2026-10-22: 20075.263584
D1/pre 2026-10-23: 20085.569735
LFT 2029-03-012026-10-22sell0,0620112.1320070.6609734147D0/pre 2026-10-22: 20070.580578
D1 2026-10-23: 20080.984879
D1/pre 2026-10-23: 20080.884334
LFT 2028-03-012026-10-22buy0,0220144.4320103.6075234083D0 2026-10-22: 20093.332351
D0/pre 2026-10-22: 20093.312252
D1/pre 2026-10-23: 20103.607523
LFT 2028-03-012026-10-22sell0,0320131.4020090.6190214079D0/pre 2026-10-22: 20090.598922
D1 2026-10-23: 20100.912915
D1/pre 2026-10-23: 20100.892806
LFT 2027-03-012026-10-22buy0,0220148.7520107.6494354111D0 2026-10-22: 20097.352099
D0/pre 2026-10-22: 20097.332000
D1/pre 2026-10-23: 20107.629326
LFT 2027-03-012026-10-22sell0,0320137.7420096.6687414108D0/pre 2026-10-22: 20096.648643
D1 2026-10-23: 20106.965729
D1/pre 2026-10-23: 20106.945620
LFT 2031-03-012026-10-22buy0,1020064.3220022.4877494184D0 2026-10-22: 20012.173643
D0/pre 2026-10-22: 20011.872162
D1/pre 2026-10-23: 20022.186114
LFT 2031-03-012026-10-22sell0,1120045.3420003.5512844179D0/pre 2026-10-22: 20003.209605
D1 2026-10-23: 20013.860981
D1/pre 2026-10-23: 20013.519127
LFT 2029-03-012026-10-21buy0,0520116.5520085.6099533095D0 2026-10-21: 20075.303782
D0/pre 2026-10-21: 20075.223387
D1/pre 2026-10-22: 20085.529517
LFT 2029-03-012026-10-21sell0,0620101.5320070.6207763091D0/pre 2026-10-21: 20070.520282
D1 2026-10-22: 20080.924552
D1/pre 2026-10-22: 20080.844116
LFT 2027-03-012026-10-21buy0,0220138.6020107.6293263098D0 2026-10-21: 20097.332000
D0/pre 2026-10-21: 20097.332000
D1/pre 2026-10-22: 20107.609217
LFT 2027-03-012026-10-21sell0,0320127.5820096.6486433094D0/pre 2026-10-21: 20096.628544
D1 2026-10-22: 20106.945620
D1/pre 2026-10-22: 20106.925511
LFT 2028-03-012026-10-21buy0,0220134.0320103.6075233043D0 2026-10-21: 20093.312252
D0/pre 2026-10-21: 20093.292153
D1/pre 2026-10-22: 20103.587414
LFT 2028-03-012026-10-21sell0,0320121.0020090.5989223041D0/pre 2026-10-21: 20090.578824
D1 2026-10-22: 20100.892806
D1/pre 2026-10-22: 20100.872697
LFT 2031-03-012026-10-21buy0,1020053.8920022.4073133149D0 2026-10-21: 20012.113347
D0/pre 2026-10-21: 20011.791767
D1/pre 2026-10-22: 20022.105678
LFT 2031-03-012026-10-21sell0,1120034.9120003.4708893144D0/pre 2026-10-21: 20003.109112
D1 2026-10-22: 20013.780545
D1/pre 2026-10-22: 20013.438691
LFT 2028-03-012026-10-20buy0,0220123.5920103.5874142001D0 2026-10-20: 20093.292153
D0/pre 2026-10-20: 20093.272055
D1/pre 2026-10-21: 20103.567305
LFT 2028-03-012026-10-20sell0,0320110.5620090.5788241999D0/pre 2026-10-20: 20090.558725
D1 2026-10-21: 20100.872697
D1/pre 2026-10-21: 20100.852588
LFT 2031-03-012026-10-20buy0,1020043.3720022.3469862103D0 2026-10-20: 20012.032952
D0/pre 2026-10-20: 20011.711372
D1/pre 2026-10-21: 20022.025242
LFT 2031-03-012026-10-20sell0,1120024.3920003.3703952102D0/pre 2026-10-20: 20003.028717
D1 2026-10-21: 20013.700109
D1/pre 2026-10-21: 20013.338146
LFT 2027-03-012026-10-20buy0,0220128.3820107.6092172078D0 2026-10-20: 20097.332000
D0/pre 2026-10-20: 20097.311901
D1/pre 2026-10-21: 20107.609217
LFT 2027-03-012026-10-20sell0,0320117.3620096.6285442074D0/pre 2026-10-20: 20096.608445
D1 2026-10-21: 20106.925511
D1/pre 2026-10-21: 20106.905402
LFT 2029-03-012026-10-20buy0,0520105.2720085.5697351971D0 2026-10-20: 20075.263584
D0/pre 2026-10-20: 20075.183189
D1/pre 2026-10-21: 20085.489299
LFT 2029-03-012026-10-20sell0,0620090.2620070.5805781968D0/pre 2026-10-20: 20070.480085
D1 2026-10-21: 20080.884334
D1/pre 2026-10-21: 20080.783789
LFT 2029-03-012026-10-19buy0,0520094.6420085.529517912D0 2026-10-19: 20075.223387
D0/pre 2026-10-19: 20075.142992
D1/pre 2026-10-20: 20085.449081
LFT 2028-03-012026-10-19buy0,0220112.7520103.567305919D0 2026-10-19: 20093.272055
D0/pre 2026-10-19: 20093.251956
D1/pre 2026-10-20: 20103.547196
LFT 2031-03-012026-10-19buy0,1020033.4620022.2665501120D0 2026-10-19: 20011.952557
D0/pre 2026-10-19: 20011.630977
D1/pre 2026-10-20: 20021.944806
LFT 2027-03-012026-10-19buy0,0120118.2620108.313033995D0 2026-10-19: 20098.015357
D0/pre 2026-10-19: 20098.015357
D1/pre 2026-10-20: 20108.292924
LFT 2023-03-012018-02-01sell0,049326.339321.296992504D1 2018-02-02: 9323.809314
LFT 2021-03-012018-02-01sell0,049333.789328.750443503D1 2018-02-02: 9331.274109
LTN 2023-01-012018-02-01buy9,41644.25644.02034923D0 2018-02-01: 643.790556
LTN 2023-01-012018-02-01sell9,53640.80640.34404046D1 2018-02-02: 640.575389
LTN 2019-01-012018-02-01buy6,73943.26943.01736925D0 2018-02-01: 942.773667
LTN 2019-01-012018-02-01sell6,85942.31941.81565350D1 2018-02-02: 942.063308
LTN 2021-01-012018-02-01buy8,78783.65783.39128326D0 2018-02-01: 783.129707
LTN 2021-01-012018-02-01sell8,90781.15780.62566453D1 2018-02-02: 780.889820
LTN 2020-01-012018-02-01buy7,95864.67864.40798127D0 2018-02-01: 864.145618
LTN 2020-01-012018-02-01sell8,07862.84862.31504053D1 2018-02-02: 862.580649
NTN-F 2023-01-012018-02-01buy9,201040.251039.88867237D0 2018-02-01: 1039.525555
NTN-F 2023-01-012018-02-01sell9,321035.711034.98494273D1 2018-02-02: 1035.350985
NTN-F 2021-01-012018-02-01buy8,601043.761043.41913135D0 2018-02-01: 1043.077587
NTN-F 2021-01-012018-02-01sell8,721040.791040.10740669D1 2018-02-02: 1040.452538
LFT 2017-03-072016-12-30sell0,018450.598441.960571863D1 2017-01-02: 8446.277556
D0b3 2017-01-02: 8446.277556
LFT 2021-03-012016-12-30buy0,058433.338429.004607433D0 2016-12-30: 8424.679567
LFT 2021-03-012016-12-30sell0,098419.438410.766966867D1 2017-01-02: 8415.093338
D0b3 2017-01-02: 8415.093338
LTN 2018-01-012016-12-30buy11,47898.64898.26277738D0 2016-12-30: 897.875804
LTN 2018-01-012016-12-30sell11,59897.69896.91791978D1 2017-01-02: 897.308310
D0b3 2017-01-02: 897.308310
LTN 2023-01-012016-12-30buy11,55520.82520.59638923D0 2016-12-30: 520.370634
LTN 2023-01-012016-12-30sell11,67517.49517.03774446D1 2017-01-02: 517.264261
D0b3 2017-01-02: 517.264261
LTN 2019-01-012016-12-30buy11,03813.20812.86966034D0 2016-12-30: 812.532227
LTN 2019-01-012016-12-30sell11,15811.47810.79262168D1 2017-01-02: 811.132808
D0b3 2017-01-02: 811.132808
LTN 2021-01-012016-12-30buy11,34652.38652.10983628D0 2016-12-30: 651.831925
LTN 2021-01-012016-12-30sell11,46649.59649.04045355D1 2017-01-02: 649.319950
D0b3 2017-01-02: 649.319950
NTN-F 2021-01-012016-12-30buy11,28963.85963.44679141D0 2016-12-30: 1011.826410
NTN-F 2021-01-012016-12-30sell11,40960.361008.328414-4796D1 2017-01-02: 959.951626
D0b3 2017-01-02: 959.951626
NTN-F 2023-01-012016-12-30buy11,43944.58944.17741341D0 2016-12-30: 992.559896

The first 80 of 289 rows; every row is in certs/pu-ledger.json (offRows). A difference of a few centavos with the sign of a later settlement is a settlement-day convention; a difference of about R$ 48 on an NTN-F quoted on the last business day of the year is a coupon gone ex because settlement crossed 1 January. Of the 289 rows that remain OFF after the B3 settlement calendar, 168 are the rule’s value for a settlement one to six bank business days later than any pre-registered hypothesis — the record carries that implied settlement for each, and it is never used to decide. The largest groups: 2008-06-19 → 2008-06-23 (28), 2014-06-27 → 2014-07-01 (17), 2014-06-25 → 2014-06-27 (17), 2016-12-30 → 2017-01-03 (15), 2016-12-29 → 2017-01-03 (15), 2018-02-01 → 2018-02-05 (14), 2015-12-31 → 2016-01-05 (14), 2015-12-30 → 2016-01-05 (14). Three of those groups are the last quotation days of 2014, 2015 and 2016, whose prices are the value for settlement on the SECOND business day of the next year; the exchange’s circulars state that practice for 2018 and 2019 (OC 111/2016: “Por solicitação da Secretaria do Tesouro Nacional, a primeira liquidação de compra e de venda de 2018 será realizada no segundo dia útil”, and OC 021/2017 the same for 2019), yet the published prices of 28 December 2017 and 28 December 2018 are the value for the first business day. A circular and the published numbers disagree; neither is assumed here, and no first-business-day skip is in the settlement table. The others — 26 and 30 June 2014, 2 July 2010, 20 June 2008, 2 February 2018 — are days no pinned document names. What is claimed: the printed number is not the methodology’s value for the printed rate on the pinned calendar under the pre-registered settlements. What is not claimed: that the publisher erred — a settlement rule or a calendar the publisher used and did not publish is a NEEDS DATA reading, and the pre-registration names it as such.

§4 · the certificate

One price, every step

The methodology’s own LTN example, re-decided here with every truncation shown. Maturity 01/07/2010, settlement 21/05/2008, rate 14,3600% a.a.

And the first OFF row of the ledger: LFT 2028-03-01 quoted 2026-10-27 (buy), rate 0,02%, printed R$ 20175.28.

What a verdict rests on. Every verdict above is exact about the rule, the calendar and the settlement it names. In the order a price travels through them, each premise with the rung its checking reached — validated (against the thing itself, held out), compared (against a model that keeps more), verified (the code against an exact solution of its own equations) or assumed (adopted; nothing here checked it):

  1. assumed
    The published rate the two-decimal rate printed beside each price, taken as the input the rule names. Whether it is itself a rounding of an internal rate is not decidable from what is published; for the LFT it is exactly what leaves 12,791 prices CONSISTENT rather than reproduced.
  2. assumed
    The calendar ANBIMA's national-holiday file as served today, sha256-pinned (corpus/pu/holidays.json), and the same file without 20 November before Lei 14.759 for the calendar as of the quotation. Adopted from the source; the second is read from the law's date.
  3. assumed
    The settlement day the pre-registered hypotheses (D+1, D+0, and the dated amendments: 24/31 December skipped, the calendar as of the quotation, B3's own non-trading days). Of the 80 B3 days, 56 are named in a pinned circular or calendar page and 24 follow the rule alone. The census says which hypothesis reproduces each price; the amendments came after the data were seen, so that is a reading of the history, not a held-out test.
  4. assumed
    The Selic series (LFT only) BCB SGS 11 and 432 as pinned (6,603 days, 2000-07-03 → 2026-10-15); adopted as published.
  5. verified
    The rule table, and the code that applies it the STN methodology's Tabela 3 in exact arithmetic reproduces its own three worked examples digit for digit (LTN 753.315323, NTN-F 903.075616, LFT 3455.211852; instruments/pu/battery.js, run at this build), and a second decider in Python with no shared code agrees on 1,789 of 1,789 rows, every OFF and REFUSED row among them.

The arithmetic is verified; the weakest premise is assumed. REPRODUCED says the printed price is the rule's value for the printed rate, on that calendar, at that settlement; OFF says it is that value under none of the pre-registered settlements — never that the publisher erred.

§5 · what this is, and is not

Scope, limits, and what comes next

contact

Write to Carlos

Sent by Web3Forms to Carlos’s inbox; nothing stored here.

Or write to carlos@carlostoledo.co, or open the public pilot form on GitHub.