Implementation survey
Published packages run against the same inputs. Factual, versioned, dated — a map of a shared problem, not a scoreboard.
Recorded 2026-08-17v25.8.1
- packages tried · 3 could be called
- 5
- failure patterns recorded
- 7
- of them legitimate variants, not errors
- 2
- date measured
- 2026-08-17
Where other packages break
Organised by failure mode, not by package — one place an implementation breaks can show up across several inputs and several packages at once.
▸The se- rule for thousands is missing3 examplesterbilang@0.0.3●their bug
"satu ribu" instead of "seribu" — exactly the error PRD.md §2 names.
- 1.000terbilang @0.0.3
seribu
≠satu ribu
"satu ribu" alih-alih "seribu" — aturan se- untuk ribuan tidak diterapkan.
- 1.001terbilang @0.0.3
seribu satu
≠satu ribu satu
"satu ribu satu" alih-alih "seribu satu" — akibat bug se- yang sama.
- 1.100terbilang @0.0.3
seribu seratus
≠satu ribu seratus
"satu ribu seratus" alih-alih "seribu seratus" — akibat bug se- yang sama.
▸Scales above the hundred-millions are unimplemented4 examplesterbilang@0.0.3●their bug
Returns an ordinary placeholder string ("terlalu besar / not implemented yet"), not a structured refusal — a string that can reach a printed document undetected.
- 1.000.000.000terbilang @0.0.3
satu miliar
≠terlalu besar / not implemented yet
Mengembalikan string "terlalu besar / not implemented yet" sebagai keluaran biasa, bukan menolak secara terstruktur — skala miliar ke atas tidak diimplementasikan.
- 1.000.000.000.001terbilang @0.0.3
satu triliun satu
≠terlalu besar / not implemented yet
Sama seperti masukan 1000000000: skala di atas ratusan juta tidak diimplementasikan.
- 9.007.199.254.740.993terbilang @0.0.3
sembilan kuadriliun tujuh triliun seratus sembilan puluh sembilan miliar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tiga
≠terlalu besar / not implemented yet
Sama seperti masukan 1000000000: gagal jauh sebelum mencapai batas presisi 2⁵³, karena skala di atas ratusan juta tidak diimplementasikan sama sekali.
- 1.000.000.000.000.000terbilang @0.0.3
satu kuadriliun
≠terlalu besar / not implemented yet
Sama seperti masukan 1000000000: skala di atas ratusan juta tidak diimplementasikan.
▸Zero produces an empty string1 examplesterbilang-ts@2.1.0●their bug
No word at all for an input of 0 — not a capitalisation difference.
- 0terbilang-ts @2.1.0
nol
≠
Menghasilkan string kosong untuk 0, bukan kata "nol".
▸Precision lost above 2⁵³1 examplesterbilang-ts@2.1.0●their bug
A middle group and the final digit both change on the 2⁵³+1 input — consistent with number arithmetic rather than BigInt.
- 9.007.199.254.740.993terbilang-ts @2.1.0
sembilan kuadriliun tujuh triliun seratus sembilan puluh sembilan miliar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tiga
≠Sembilan Kuadriliun Tujuh Triliun Sembilan Milyar Dua Ratus Lima Puluh Empat Juta Tujuh Ratus Empat Puluh Ribu Sembilan Ratus Sembilan Puluh Dua
Kelompok miliar (199) muncul sebagai "Sembilan" dan digit terakhir bergeser 993→992 — konsisten dengan aritmetika number, bukan BigInt, di atas 2⁵³.
▸quadriliun spelling for kuadriliun, uncited2 examples@develoka/angka-terbilang-js@1.4.2●their bug
"Kuadriliun" follows KBBI’s standard adaptation of Latin qu- to ku- (kuadrat, kuadran); "quadriliun" does not, and is uncited anywhere — unlike the milyar/miliar and triliun/trilyun pairs that are recorded as variants.
- 9.007.199.254.740.993@develoka/angka-terbilang-js @1.4.2
sembilan kuadriliun tujuh triliun seratus sembilan puluh sembilan miliar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tiga
≠sembilan quadriliun tujuh triliun seratus sembilan puluh sembilan milyar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tiga
Ejaan "quadriliun" untuk 10¹⁵, tidak tersitasi (berbeda dari pasangan milyar/miliar dan triliun/trilyun yang memang dicatat sebagai varian). Digit-digitnya sendiri benar — tidak ada kerusakan presisi di masukan ini.
- 1.000.000.000.000.000@develoka/angka-terbilang-js @1.4.2
satu kuadriliun
≠satu quadriliun
Ejaan "quadriliun" alih-alih "kuadriliun", tidak tersitasi di mana pun.
▸Different capitalisation, same words18 examplesterbilang-ts@2.1.0✓legitimate variant
Per-word Title Case over words and se- rules identical to ours. Document capitalisation is a cited option in lib/options.ts.
- 1terbilang-ts @2.1.0
satu
≠Satu
Title Case ("Satu") atas kata yang identik — kapitalisasi adalah opsi bersitasi di lib/options.ts.
- 10terbilang-ts @2.1.0
sepuluh
≠Sepuluh
Title Case ("Sepuluh") atas kata yang identik, termasuk aturan se- yang benar.
- 11terbilang-ts @2.1.0
sebelas
≠Sebelas
Title Case ("Sebelas") atas kata yang identik, termasuk aturan se- yang benar.
- 19terbilang-ts @2.1.0
sembilan belas
≠Sembilan Belas
Title Case ("Sembilan Belas") atas kata yang identik.
- 20terbilang-ts @2.1.0
dua puluh
≠Dua Puluh
Title Case ("Dua Puluh") atas kata yang identik.
- 100terbilang-ts @2.1.0
seratus
≠Seratus
Title Case ("Seratus") atas kata yang identik, termasuk aturan se- yang benar.
- 101terbilang-ts @2.1.0
seratus satu
≠Seratus Satu
Title Case ("Seratus Satu") atas kata yang identik.
- 110terbilang-ts @2.1.0
seratus sepuluh
≠Seratus Sepuluh
Title Case ("Seratus Sepuluh") atas kata yang identik.
- 1.000terbilang-ts @2.1.0
seribu
≠Seribu
Title Case ("Seribu") atas kata yang identik, termasuk aturan se- yang benar untuk ribuan.
- 1.001terbilang-ts @2.1.0
seribu satu
≠Seribu Satu
Title Case ("Seribu Satu") atas kata yang identik.
- 1.100terbilang-ts @2.1.0
seribu seratus
≠Seribu Seratus
Title Case ("Seribu Seratus") atas kata yang identik.
- 10.000terbilang-ts @2.1.0
sepuluh ribu
≠Sepuluh Ribu
Title Case ("Sepuluh Ribu") atas kata yang identik.
- 100.000terbilang-ts @2.1.0
seratus ribu
≠Seratus Ribu
Title Case ("Seratus Ribu") atas kata yang identik.
- 101.000terbilang-ts @2.1.0
seratus satu ribu
≠Seratus Satu Ribu
Title Case ("Seratus Satu Ribu") atas kata yang identik.
- 1.000.000terbilang-ts @2.1.0
satu juta
≠Satu Juta
Title Case ("Satu Juta") atas kata yang identik, termasuk pengecualian se- yang benar untuk juta.
- 1.000.001terbilang-ts @2.1.0
satu juta satu
≠Satu Juta Satu
Title Case ("Satu Juta Satu") atas kata yang identik.
- 1.000.000.000.001terbilang-ts @2.1.0
satu triliun satu
≠Satu Triliun Satu
Title Case ("Satu Triliun Satu") atas kata yang identik.
- 1.000.000.000.000.000terbilang-ts @2.1.0
satu kuadriliun
≠Satu Kuadriliun
Title Case ("Satu Kuadriliun") atas kata yang identik; ejaan "Kuadriliun" sudah sesuai KBBI.
▸milyar spelling for miliar2 examplesterbilang-ts@2.1.0@develoka/angka-terbilang-js@1.4.2✓legitimate variant
KBBI takes miliar; milyar is common in the field. Both sides are cited as an option (`ejaanMiliar`).
- 1.000.000.000terbilang-ts @2.1.0
satu miliar
≠Satu Milyar
Title Case dan ejaan "Milyar" alih-alih "Miliar" — keduanya opsi bersitasi di perpustakaan ini (kapitalisasi dan `ejaanMiliar`).
- 1.000.000.000@develoka/angka-terbilang-js @1.4.2
satu miliar
≠satu milyar
Ejaan "milyar" alih-alih "miliar" — varian bersitasi di lib/options.ts (`ejaanMiliar`).
Full table
The precise reference behind the summary above — row by row, package by package.
| Input | terbilang (ours) | terbilang0.0.3 | angka-terbilang1.0.3 | terbilang-ts2.1.0 | angka-terbilang-ts1.5.1 | @develoka/angka-terbilang-js1.4.2 |
|---|---|---|---|---|---|---|
| 0 | nol | =nol | —— | ≠ | —— | =nol |
| 1 | satu | =satu | —— | ≠Satu | —— | =satu |
| 10 | sepuluh | =sepuluh | —— | ≠Sepuluh | —— | =sepuluh |
| 11 | sebelas | =sebelas | —— | ≠Sebelas | —— | =sebelas |
| 19 | sembilan belas | =sembilan belas | —— | ≠Sembilan Belas | —— | =sembilan belas |
| 20 | dua puluh | =dua puluh | —— | ≠Dua Puluh | —— | =dua puluh |
| 100 | seratus | =seratus | —— | ≠Seratus | —— | =seratus |
| 101 | seratus satu | =seratus satu | —— | ≠Seratus Satu | —— | =seratus satu |
| 110 | seratus sepuluh | =seratus sepuluh | —— | ≠Seratus Sepuluh | —— | =seratus sepuluh |
| 1.000 | seribu | ≠satu ribu | —— | ≠Seribu | —— | =seribu |
| 1.001 | seribu satu | ≠satu ribu satu | —— | ≠Seribu Satu | —— | =seribu satu |
| 1.100 | seribu seratus | ≠satu ribu seratus | —— | ≠Seribu Seratus | —— | =seribu seratus |
| 10.000 | sepuluh ribu | =sepuluh ribu | —— | ≠Sepuluh Ribu | —— | =sepuluh ribu |
| 100.000 | seratus ribu | =seratus ribu | —— | ≠Seratus Ribu | —— | =seratus ribu |
| 101.000 | seratus satu ribu | =seratus satu ribu | —— | ≠Seratus Satu Ribu | —— | =seratus satu ribu |
| 1.000.000 | satu juta | =satu juta | —— | ≠Satu Juta | —— | =satu juta |
| 1.000.001 | satu juta satu | =satu juta satu | —— | ≠Satu Juta Satu | —— | =satu juta satu |
| 1.000.000.000 | satu miliar | ≠terlalu besar / not implemented yet | —— | ≠Satu Milyar | —— | ≠satu milyar |
| 1.000.000.000.001 | satu triliun satu | ≠terlalu besar / not implemented yet | —— | ≠Satu Triliun Satu | —— | =satu triliun satu |
| 9.007.199.254.740.993 | sembilan kuadriliun tujuh triliun seratus sembilan puluh sembilan miliar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tiga | ≠terlalu besar / not implemented yet | —— | ≠Sembilan Kuadriliun Tujuh Triliun Sembilan Milyar Dua Ratus Lima Puluh Empat Juta Tujuh Ratus Empat Puluh Ribu Sembilan Ratus Sembilan Puluh Dua | —— | ≠sembilan quadriliun tujuh triliun seratus sembilan puluh sembilan milyar dua ratus lima puluh empat juta tujuh ratus empat puluh ribu sembilan ratus sembilan puluh tiga |
| 1.000.000.000.000.000 | satu kuadriliun | ≠terlalu besar / not implemented yet | —— | ≠Satu Kuadriliun | —— | ≠satu quadriliun |
Differences are marked, then classified in writing as our bug, their bug, or a legitimate variant — the record lives in tests/survey/.