Skip to main content

hs_predict/rules/
jp_table.rs

1//! Japan Customs 統計品目番号 (statistical item code) lookup table.
2//!
3//! Japanese tariff codes are 9-digit numbers that extend the 6-digit HS code
4//! with Japan-specific sub-classifications (e.g. `"281511000"`).
5//!
6//! Source: 実行関税率表 (Japan Customs Tariff Schedule)
7//! Valid from: **2026-04-01** (2026年4月改正)
8//! Reference: <https://www.customs.go.jp/tariff/2026_04_01/index.htm>
9//!
10//! **Note**: The tariff schedule is revised annually. Verify codes against the
11//! current schedule before using in customs declarations.
12
13/// A Japan tariff entry mapping an HS heading to a statistical item code.
14#[derive(Debug)]
15pub struct JpRule {
16    /// Six-digit HS 2022 code (e.g. `"281511"`).
17    pub hs_code: &'static str,
18
19    /// Nine-digit Japan statistical item code (e.g. `"281511000"`).
20    ///
21    /// For most basic chemicals the last three digits are `"000"`, indicating
22    /// no Japan-specific sub-classification within that HS subheading.
23    pub jp_code: &'static str,
24
25    /// Short description in Japanese.
26    pub jp_description: &'static str,
27
28    /// Applicable tariff rate (informational, e.g. `"free"` or `"6.5%"`).
29    /// `None` when the rate is complex (depends on end-use, origin, etc.).
30    pub tariff_rate: Option<&'static str>,
31}
32
33/// Tariff schedule year used for [`JP_RULES`].
34pub const JP_TARIFF_YEAR: u16 = 2026;
35
36/// Static Japan tariff code table (HS 2022 → 統計品目番号 2026).
37///
38/// Ordered by HS code for readability.
39pub static JP_RULES: &[JpRule] = &[
40    // ═══════════════════════════════════════════════
41    // Chapter 25
42    // ═══════════════════════════════════════════════
43    JpRule {
44        hs_code: "250100",
45        jp_code: "250100000",
46        jp_description: "塩化ナトリウム(食塩等)",
47        tariff_rate: Some("free"),
48    },
49
50    // ═══════════════════════════════════════════════
51    // Chapter 28 — 無機化学品
52    // ═══════════════════════════════════════════════
53    JpRule {
54        hs_code: "280110",
55        jp_code: "280110000",
56        jp_description: "塩素",
57        tariff_rate: Some("free"),
58    },
59    JpRule {
60        hs_code: "280130",
61        jp_code: "280130000",
62        jp_description: "臭素",
63        tariff_rate: Some("free"),
64    },
65    JpRule {
66        hs_code: "280610",
67        jp_code: "280610000",
68        jp_description: "塩化水素(塩酸)",
69        tariff_rate: Some("free"),
70    },
71    JpRule {
72        hs_code: "280700",
73        jp_code: "280700000",
74        jp_description: "硫酸;発煙硫酸",
75        tariff_rate: Some("free"),
76    },
77    JpRule {
78        hs_code: "280800",
79        jp_code: "280800000",
80        jp_description: "硝酸;混酸",
81        tariff_rate: Some("free"),
82    },
83    JpRule {
84        hs_code: "280810",
85        jp_code: "280810000",
86        jp_description: "発煙硝酸",
87        tariff_rate: Some("free"),
88    },
89    JpRule {
90        hs_code: "280890",
91        jp_code: "280890000",
92        jp_description: "硝酸(その他)",
93        tariff_rate: Some("free"),
94    },
95    JpRule {
96        hs_code: "280920",
97        jp_code: "280920000",
98        jp_description: "リン酸及びポリリン酸",
99        tariff_rate: Some("free"),
100    },
101    JpRule {
102        hs_code: "281000",
103        jp_code: "281000000",
104        jp_description: "ホウ素の酸化物;ホウ酸",
105        tariff_rate: Some("free"),
106    },
107    JpRule {
108        hs_code: "281111",
109        jp_code: "281111000",
110        jp_description: "フッ化水素(フッ酸)",
111        tariff_rate: Some("free"),
112    },
113    JpRule {
114        hs_code: "281122",
115        jp_code: "281122000",
116        jp_description: "二酸化ケイ素(合成)",
117        tariff_rate: Some("free"),
118    },
119    JpRule {
120        hs_code: "281400",
121        jp_code: "281400000",
122        jp_description: "アンモニア(無水又は水溶液)",
123        tariff_rate: Some("free"),
124    },
125    JpRule {
126        hs_code: "281410",
127        jp_code: "281410000",
128        jp_description: "アンモニア(無水)",
129        tariff_rate: Some("free"),
130    },
131    JpRule {
132        hs_code: "281420",
133        jp_code: "281420000",
134        jp_description: "アンモニア水",
135        tariff_rate: Some("free"),
136    },
137    JpRule {
138        hs_code: "281511",
139        jp_code: "281511000",
140        jp_description: "水酸化ナトリウム(固体)",
141        tariff_rate: Some("free"),
142    },
143    JpRule {
144        hs_code: "281512",
145        jp_code: "281512000",
146        jp_description: "水酸化ナトリウム水溶液(苛性ソーダ液)",
147        tariff_rate: Some("free"),
148    },
149    JpRule {
150        hs_code: "281520",
151        jp_code: "281520000",
152        jp_description: "水酸化カリウム(苛性カリ)",
153        tariff_rate: Some("free"),
154    },
155    JpRule {
156        hs_code: "281600",
157        jp_code: "281600000",
158        jp_description: "酸化亜鉛;過酸化亜鉛",
159        tariff_rate: Some("free"),
160    },
161    JpRule {
162        hs_code: "281700",
163        jp_code: "281700000",
164        jp_description: "酸化亜鉛;過酸化亜鉛",
165        tariff_rate: Some("free"),
166    },
167    JpRule {
168        hs_code: "281820",
169        jp_code: "281820000",
170        jp_description: "酸化アルミニウム(人造コランダム以外)",
171        tariff_rate: Some("free"),
172    },
173    JpRule {
174        hs_code: "281910",
175        jp_code: "281910000",
176        jp_description: "三酸化クロム",
177        tariff_rate: Some("free"),
178    },
179    JpRule {
180        hs_code: "282010",
181        jp_code: "282010000",
182        jp_description: "二酸化マンガン",
183        tariff_rate: Some("free"),
184    },
185    JpRule {
186        hs_code: "282110",
187        jp_code: "282110000",
188        jp_description: "鉄の酸化物及び水酸化物",
189        tariff_rate: Some("free"),
190    },
191    JpRule {
192        hs_code: "282200",
193        jp_code: "282200000",
194        jp_description: "鉄のコバルト酸化物;コバルト酸化物",
195        tariff_rate: Some("free"),
196    },
197    JpRule {
198        hs_code: "282300",
199        jp_code: "282300000",
200        jp_description: "チタンの酸化物",
201        tariff_rate: Some("free"),
202    },
203    JpRule {
204        hs_code: "282520",
205        jp_code: "282520000",
206        jp_description: "水酸化カルシウム",
207        tariff_rate: Some("free"),
208    },
209    JpRule {
210        hs_code: "282720",
211        jp_code: "282720000",
212        jp_description: "塩化カルシウム",
213        tariff_rate: Some("free"),
214    },
215    JpRule {
216        hs_code: "282739",
217        jp_code: "282739000",
218        jp_description: "その他の金属の塩化物(塩化第二鉄等)",
219        tariff_rate: Some("free"),
220    },
221    JpRule {
222        hs_code: "282741",
223        jp_code: "282741000",
224        jp_description: "塩化亜鉛",
225        tariff_rate: Some("free"),
226    },
227    JpRule {
228        hs_code: "282810",
229        jp_code: "282810000",
230        jp_description: "次亜塩素酸ナトリウム",
231        tariff_rate: Some("free"),
232    },
233    JpRule {
234        hs_code: "283010",
235        jp_code: "283010000",
236        jp_description: "硫化ナトリウム",
237        tariff_rate: Some("free"),
238    },
239    JpRule {
240        hs_code: "283110",
241        jp_code: "283110000",
242        jp_description: "塩化カリウム",
243        tariff_rate: Some("free"),
244    },
245    JpRule {
246        hs_code: "283311",
247        jp_code: "283311000",
248        jp_description: "硫酸二ナトリウム",
249        tariff_rate: Some("free"),
250    },
251    JpRule {
252        hs_code: "283322",
253        jp_code: "283322000",
254        jp_description: "硫酸アルミニウム",
255        tariff_rate: Some("free"),
256    },
257    JpRule {
258        hs_code: "283325",
259        jp_code: "283325000",
260        jp_description: "硫酸銅",
261        tariff_rate: Some("free"),
262    },
263    JpRule {
264        hs_code: "283329",
265        jp_code: "283329000",
266        jp_description: "その他の硫酸塩(硫酸亜鉛等)",
267        tariff_rate: Some("free"),
268    },
269    JpRule {
270        hs_code: "283410",
271        jp_code: "283410000",
272        jp_description: "亜硝酸塩(亜硝酸ナトリウム等)",
273        tariff_rate: Some("free"),
274    },
275    JpRule {
276        hs_code: "283421",
277        jp_code: "283421000",
278        jp_description: "硝酸カリウム",
279        tariff_rate: Some("free"),
280    },
281    JpRule {
282        hs_code: "283530",
283        jp_code: "283530000",
284        jp_description: "リン酸ナトリウム(三リン酸ナトリウム等)",
285        tariff_rate: Some("free"),
286    },
287    JpRule {
288        hs_code: "283531",
289        jp_code: "283531000",
290        jp_description: "三リン酸ナトリウム(トリポリリン酸ナトリウム)",
291        tariff_rate: Some("free"),
292    },
293    JpRule {
294        hs_code: "283620",
295        jp_code: "283620000",
296        jp_description: "炭酸ナトリウム",
297        tariff_rate: Some("free"),
298    },
299    JpRule {
300        hs_code: "283630",
301        jp_code: "283630000",
302        jp_description: "炭酸水素ナトリウム",
303        tariff_rate: Some("free"),
304    },
305    JpRule {
306        hs_code: "283640",
307        jp_code: "283640000",
308        jp_description: "炭酸カリウム",
309        tariff_rate: Some("free"),
310    },
311    JpRule {
312        hs_code: "283650",
313        jp_code: "283650000",
314        jp_description: "炭酸カルシウム",
315        tariff_rate: Some("free"),
316    },
317    JpRule {
318        hs_code: "283911",
319        jp_code: "283911000",
320        jp_description: "ケイ酸ナトリウム(メタケイ酸ナトリウム等)",
321        tariff_rate: Some("free"),
322    },
323    JpRule {
324        hs_code: "284130",
325        jp_code: "284130000",
326        jp_description: "重クロム酸ナトリウム",
327        tariff_rate: Some("free"),
328    },
329    JpRule {
330        hs_code: "284150",
331        jp_code: "284150000",
332        jp_description: "その他のクロム酸塩及び重クロム酸塩(重クロム酸カリウム等)",
333        tariff_rate: Some("free"),
334    },
335    JpRule {
336        hs_code: "284161",
337        jp_code: "284161000",
338        jp_description: "過マンガン酸カリウム",
339        tariff_rate: Some("free"),
340    },
341    JpRule {
342        hs_code: "284321",
343        jp_code: "284321000",
344        jp_description: "硝酸銀",
345        tariff_rate: Some("free"),
346    },
347    JpRule {
348        hs_code: "284700",
349        jp_code: "284700000",
350        jp_description: "過酸化水素",
351        tariff_rate: Some("free"),
352    },
353
354    // ═══════════════════════════════════════════════
355    // Chapter 29 — 有機化学品
356    // ═══════════════════════════════════════════════
357    JpRule {
358        hs_code: "290110",
359        jp_code: "290110000",
360        jp_description: "飽和非環式炭化水素(ヘキサン等)",
361        tariff_rate: Some("free"),
362    },
363    JpRule {
364        hs_code: "290121",
365        jp_code: "290121000",
366        jp_description: "エチレン",
367        tariff_rate: Some("無税"),
368    },
369    JpRule {
370        hs_code: "290122",
371        jp_code: "290122000",
372        jp_description: "プロペン(プロピレン)",
373        tariff_rate: Some("無税"),
374    },
375    JpRule {
376        hs_code: "290123",
377        jp_code: "290123000",
378        jp_description: "ブテン(ブチレン)及びその異性体",
379        tariff_rate: Some("無税"),
380    },
381    JpRule {
382        hs_code: "290129",
383        jp_code: "290129000",
384        jp_description: "その他の不飽和非環式炭化水素",
385        tariff_rate: Some("無税"),
386    },
387    JpRule {
388        hs_code: "290211",
389        jp_code: "290211000",
390        jp_description: "シクロヘキサン",
391        tariff_rate: Some("free"),
392    },
393    JpRule {
394        hs_code: "290219",
395        jp_code: "290219000",
396        jp_description: "その他の飽和及び不飽和脂環式炭化水素",
397        tariff_rate: Some("無税"),
398    },
399    JpRule {
400        hs_code: "290220",
401        jp_code: "290220000",
402        jp_description: "ベンゼン",
403        tariff_rate: Some("free"),
404    },
405    JpRule {
406        hs_code: "290230",
407        jp_code: "290230000",
408        jp_description: "トルエン",
409        tariff_rate: Some("free"),
410    },
411    JpRule {
412        hs_code: "290241",
413        jp_code: "290241000",
414        jp_description: "オルト-キシレン",
415        tariff_rate: Some("無税"),
416    },
417    JpRule {
418        hs_code: "290242",
419        jp_code: "290242000",
420        jp_description: "メタ-キシレン",
421        tariff_rate: Some("無税"),
422    },
423    JpRule {
424        hs_code: "290243",
425        jp_code: "290243000",
426        jp_description: "パラ-キシレン",
427        tariff_rate: Some("無税"),
428    },
429    JpRule {
430        hs_code: "290244",
431        jp_code: "290244000",
432        jp_description: "混合キシレン異性体",
433        tariff_rate: Some("free"),
434    },
435    JpRule {
436        hs_code: "290250",
437        jp_code: "290250000",
438        jp_description: "スチレン",
439        tariff_rate: Some("6.4%"),
440    },
441    JpRule {
442        hs_code: "290260",
443        jp_code: "290260000",
444        jp_description: "エチルベンゼン",
445        tariff_rate: Some("無税"),
446    },
447    JpRule {
448        hs_code: "290270",
449        jp_code: "290270000",
450        jp_description: "クメン",
451        tariff_rate: Some("4.6%"),
452    },
453    JpRule {
454        hs_code: "290290",
455        jp_code: "290290000",
456        jp_description: "その他の環式炭化水素",
457        tariff_rate: Some("無税"),
458    },
459    JpRule {
460        hs_code: "290311",
461        jp_code: "290311000",
462        jp_description: "塩化メチル及び塩化エチル",
463        tariff_rate: Some("無税"),
464    },
465    JpRule {
466        hs_code: "290312",
467        jp_code: "290312000",
468        jp_description: "ジクロロメタン(塩化メチレン)",
469        tariff_rate: Some("free"),
470    },
471    JpRule {
472        hs_code: "290313",
473        jp_code: "290313000",
474        jp_description: "クロロホルム(トリクロロメタン)",
475        tariff_rate: Some("free"),
476    },
477    JpRule {
478        hs_code: "290314",
479        jp_code: "290314000",
480        jp_description: "四塩化炭素",
481        tariff_rate: Some("free"),
482    },
483    JpRule {
484        hs_code: "290315",
485        jp_code: "290315000",
486        jp_description: "エチレンジクロリド(1,2-ジクロロエタン)",
487        tariff_rate: Some("無税"),
488    },
489    JpRule {
490        hs_code: "290319",
491        jp_code: "290319000",
492        jp_description: "その他の非環式炭化水素の塩素化誘導体",
493        tariff_rate: Some("無税"),
494    },
495    JpRule {
496        hs_code: "290511",
497        jp_code: "290511000",
498        jp_description: "メタノール(メチルアルコール)",
499        tariff_rate: Some("free"),
500    },
501    JpRule {
502        hs_code: "290512",
503        jp_code: "290512000",
504        jp_description: "プロパン-1-オール(プロピルアルコール)",
505        tariff_rate: Some("free"),
506    },
507    JpRule {
508        hs_code: "290513",
509        jp_code: "290513000",
510        jp_description: "ブタン-1-オール(n-ブチルアルコール)",
511        tariff_rate: Some("free"),
512    },
513    JpRule {
514        hs_code: "290531",
515        jp_code: "290531000",
516        jp_description: "エチレングリコール(エタンジオール)",
517        tariff_rate: Some("free"),
518    },
519    JpRule {
520        hs_code: "290532",
521        jp_code: "290532000",
522        jp_description: "プロピレングリコール(1,2-プロパンジオール)",
523        tariff_rate: Some("free"),
524    },
525    JpRule {
526        hs_code: "290911",
527        jp_code: "290911000",
528        jp_description: "ジエチルエーテル",
529        tariff_rate: Some("free"),
530    },
531    JpRule {
532        hs_code: "291010",
533        jp_code: "291010000",
534        jp_description: "エチレンオキサイド(酸化エチレン)",
535        tariff_rate: Some("free"),
536    },
537    JpRule {
538        hs_code: "291211",
539        jp_code: "291211000",
540        jp_description: "ホルムアルデヒド(ホルマリン)",
541        tariff_rate: Some("free"),
542    },
543    JpRule {
544        hs_code: "291411",
545        jp_code: "291411000",
546        jp_description: "アセトン",
547        tariff_rate: Some("free"),
548    },
549    JpRule {
550        hs_code: "291511",
551        jp_code: "291511000",
552        jp_description: "ギ酸",
553        tariff_rate: Some("free"),
554    },
555    JpRule {
556        hs_code: "291521",
557        jp_code: "291521000",
558        jp_description: "酢酸",
559        tariff_rate: Some("free"),
560    },
561    JpRule {
562        hs_code: "291523",
563        jp_code: "291523000",
564        jp_description: "酢酸エチル",
565        tariff_rate: Some("free"),
566    },
567    JpRule {
568        hs_code: "291529",
569        jp_code: "291529000",
570        jp_description: "酢酸塩(酢酸ナトリウム等)",
571        tariff_rate: Some("free"),
572    },
573    JpRule {
574        hs_code: "291631",
575        jp_code: "291631000",
576        jp_description: "安息香酸、その塩及びエステル",
577        tariff_rate: Some("free"),
578    },
579    JpRule {
580        hs_code: "291711",
581        jp_code: "291711000",
582        jp_description: "シュウ酸、その塩及びエステル",
583        tariff_rate: Some("free"),
584    },
585    JpRule {
586        hs_code: "291735",
587        jp_code: "291735000",
588        jp_description: "無水フタル酸",
589        tariff_rate: Some("free"),
590    },
591    JpRule {
592        hs_code: "291811",
593        jp_code: "291811000",
594        jp_description: "乳酸、その塩及びエステル",
595        tariff_rate: Some("free"),
596    },
597    JpRule {
598        hs_code: "291814",
599        jp_code: "291814000",
600        jp_description: "クエン酸",
601        tariff_rate: Some("free"),
602    },
603    JpRule {
604        hs_code: "292141",
605        jp_code: "292141000",
606        jp_description: "アニリン",
607        tariff_rate: Some("free"),
608    },
609    JpRule {
610        hs_code: "292419",
611        jp_code: "292419000",
612        jp_description: "その他の非環式アミド(DMF等)",
613        tariff_rate: Some("free"),
614    },
615    JpRule {
616        hs_code: "290711",
617        jp_code: "290711000",
618        jp_description: "フェノール",
619        tariff_rate: Some("free"),
620    },
621    JpRule {
622        hs_code: "293090",
623        jp_code: "293090000",
624        jp_description: "その他の有機硫黄化合物(DMSO等)",
625        tariff_rate: Some("free"),
626    },
627
628    // ═══════════════════════════════════════════════
629    // Chapter 31 — 肥料
630    // ═══════════════════════════════════════════════
631    JpRule {
632        hs_code: "310210",
633        jp_code: "310210000",
634        jp_description: "尿素",
635        tariff_rate: Some("free"),
636    },
637    JpRule {
638        hs_code: "310230",
639        jp_code: "310230000",
640        jp_description: "硝酸アンモニウム",
641        tariff_rate: Some("free"),
642    },
643
644    // ═══════════════════════════════════════════════
645    // Chapter 72–81 — 金属
646    // ═══════════════════════════════════════════════
647    JpRule {
648        hs_code: "720310",
649        jp_code: "720310000",
650        jp_description: "直接還元鉄鉱石で得た鉄製品",
651        tariff_rate: Some("free"),
652    },
653    JpRule {
654        hs_code: "740311",
655        jp_code: "740311000",
656        jp_description: "精製銅(カソード等)",
657        tariff_rate: Some("free"),
658    },
659    JpRule {
660        hs_code: "750110",
661        jp_code: "750110000",
662        jp_description: "ニッケル(未加工、合金でないもの)",
663        tariff_rate: Some("free"),
664    },
665    JpRule {
666        hs_code: "760110",
667        jp_code: "760110000",
668        jp_description: "アルミニウム(未加工、合金でないもの)",
669        tariff_rate: Some("free"),
670    },
671    JpRule {
672        hs_code: "760310",
673        jp_code: "760310000",
674        jp_description: "アルミニウム粉末(非板状構造)",
675        tariff_rate: Some("free"),
676    },
677    JpRule {
678        hs_code: "760711",
679        jp_code: "760711000",
680        jp_description: "アルミニウム箔(裏打ちなし)",
681        tariff_rate: Some("free"),
682    },
683    JpRule {
684        hs_code: "780110",
685        jp_code: "780110000",
686        jp_description: "精製鉛(未加工)",
687        tariff_rate: Some("free"),
688    },
689    JpRule {
690        hs_code: "790111",
691        jp_code: "790111000",
692        jp_description: "亜鉛(未加工、純度≥99.99%)",
693        tariff_rate: Some("free"),
694    },
695    JpRule {
696        hs_code: "800110",
697        jp_code: "800110000",
698        jp_description: "スズ(未加工、合金でないもの)",
699        tariff_rate: Some("free"),
700    },
701
702    // ═══════════════════════════════════════════════
703    // Chapter 71 — 貴金属
704    // ═══════════════════════════════════════════════
705    JpRule {
706        hs_code: "710691",
707        jp_code: "710691000",
708        jp_description: "銀(未加工)",
709        tariff_rate: Some("free"),
710    },
711    JpRule {
712        hs_code: "710812",
713        jp_code: "710812000",
714        jp_description: "金(非貨幣用、未加工)",
715        tariff_rate: Some("free"),
716    },
717
718    // ═══════════════════════════════════════════════
719    // Chapter 22
720    // ═══════════════════════════════════════════════
721    JpRule {
722        hs_code: "220710",
723        jp_code: "220710000",
724        jp_description: "変性していないエチルアルコール(アルコール分≥80%)",
725        tariff_rate: None, // complex rate
726    },
727
728    // ═══════════════════════════════════════════════
729    // Chapter 28 — v0.5 additions
730    // ═══════════════════════════════════════════════
731    JpRule {
732        hs_code: "280410",
733        jp_code: "280410000",
734        jp_description: "水素",
735        tariff_rate: Some("free"),
736    },
737    JpRule {
738        hs_code: "280420",
739        jp_code: "280420000",
740        jp_description: "窒素",
741        tariff_rate: Some("free"),
742    },
743    JpRule {
744        hs_code: "280440",
745        jp_code: "280440000",
746        jp_description: "酸素",
747        tariff_rate: Some("free"),
748    },
749    JpRule {
750        hs_code: "281121",
751        jp_code: "281121000",
752        jp_description: "二酸化炭素",
753        tariff_rate: Some("free"),
754    },
755    JpRule {
756        hs_code: "281129",
757        jp_code: "281129000",
758        jp_description: "非金属の無機酸素化合物(二酸化硫黄等)",
759        tariff_rate: Some("free"),
760    },
761    JpRule {
762        hs_code: "281830",
763        jp_code: "281830000",
764        jp_description: "水酸化アルミニウム",
765        tariff_rate: Some("free"),
766    },
767    // NOTE: 281921 and 281929 were removed — they are not valid HS 2022 subheadings.
768    // Heading 28.19 (chromium oxides/hydroxides) only has subheadings .10 and .90.
769    // Dichromates belong under heading 28.41: see 284130 and 284150 below.
770    JpRule {
771        hs_code: "282611",
772        jp_code: "282611000",
773        jp_description: "フッ化物(アンモニウム又はナトリウム)",
774        tariff_rate: Some("free"),
775    },
776    JpRule {
777        hs_code: "282710",
778        jp_code: "282710000",
779        jp_description: "塩化アンモニウム",
780        tariff_rate: Some("free"),
781    },
782    JpRule {
783        hs_code: "282731",
784        jp_code: "282731000",
785        jp_description: "塩化マグネシウム",
786        tariff_rate: Some("free"),
787    },
788    JpRule {
789        hs_code: "282732",
790        jp_code: "282732000",
791        jp_description: "塩化アルミニウム",
792        tariff_rate: Some("free"),
793    },
794    JpRule {
795        hs_code: "282733",
796        jp_code: "282733000",
797        jp_description: "塩化鉄",
798        tariff_rate: Some("free"),
799    },
800    JpRule {
801        hs_code: "282735",
802        jp_code: "282735000",
803        jp_description: "塩化ニッケル",
804        tariff_rate: Some("free"),
805    },
806    JpRule {
807        hs_code: "282746",
808        jp_code: "282746000",
809        jp_description: "塩化銅",
810        tariff_rate: Some("free"),
811    },
812    JpRule {
813        hs_code: "283210",
814        jp_code: "283210000",
815        jp_description: "亜硫酸ナトリウム(メタ重亜硫酸ナトリウム等)",
816        tariff_rate: Some("free"),
817    },
818    JpRule {
819        hs_code: "283220",
820        jp_code: "283220000",
821        jp_description: "チオ硫酸ナトリウム",
822        tariff_rate: Some("free"),
823    },
824    JpRule {
825        hs_code: "283319",
826        jp_code: "283319000",
827        jp_description: "アルカリ金属の硫酸塩(硫酸カリウム等)",
828        tariff_rate: Some("free"),
829    },
830    JpRule {
831        hs_code: "283321",
832        jp_code: "283321000",
833        jp_description: "硫酸マグネシウム",
834        tariff_rate: Some("free"),
835    },
836    JpRule {
837        hs_code: "283429",
838        jp_code: "283429000",
839        jp_description: "その他の硝酸塩(硝酸カルシウム、硝酸銅等)",
840        tariff_rate: Some("free"),
841    },
842
843    // ═══════════════════════════════════════════════
844    // Chapter 29 — v0.5 additions
845    // ═══════════════════════════════════════════════
846    JpRule {
847        hs_code: "290124",
848        jp_code: "290124000",
849        jp_description: "ブタ-1,3-ジエン",
850        tariff_rate: Some("free"),
851    },
852    JpRule {
853        hs_code: "290125",
854        jp_code: "290125000",
855        jp_description: "スチレン",
856        tariff_rate: Some("free"),
857    },
858    JpRule {
859        hs_code: "290321",
860        jp_code: "290321000",
861        jp_description: "塩化ビニル(クロロエチレン)",
862        tariff_rate: Some("free"),
863    },
864    JpRule {
865        hs_code: "290512",
866        jp_code: "290512000",
867        jp_description: "プロパン-2-オール(イソプロピルアルコール)",
868        tariff_rate: Some("free"),
869    },
870    JpRule {
871        hs_code: "290539",
872        jp_code: "290539000",
873        jp_description: "その他のジオール(ネオペンチルグリコール等)",
874        tariff_rate: Some("free"),
875    },
876    JpRule {
877        hs_code: "290545",
878        jp_code: "290545000",
879        jp_description: "グリセリン",
880        tariff_rate: Some("free"),
881    },
882    JpRule {
883        hs_code: "290549",
884        jp_code: "290549000",
885        jp_description: "その他の多価アルコール(TMP、ペンタエリスリトール等)",
886        tariff_rate: Some("free"),
887    },
888    JpRule {
889        hs_code: "290941",
890        jp_code: "290941000",
891        jp_description: "ジエチレングリコール(2,2'-オキシジエタノール)",
892        tariff_rate: Some("free"),
893    },
894    JpRule {
895        hs_code: "291020",
896        jp_code: "291020000",
897        jp_description: "プロピレンオキサイド(1,2-エポキシプロパン)",
898        tariff_rate: Some("free"),
899    },
900    JpRule {
901        hs_code: "291412",
902        jp_code: "291412000",
903        jp_description: "ブタノン(メチルエチルケトン)",
904        tariff_rate: Some("free"),
905    },
906    JpRule {
907        hs_code: "291421",
908        jp_code: "291421000",
909        jp_description: "シクロヘキサノン",
910        tariff_rate: Some("free"),
911    },
912    JpRule {
913        hs_code: "291515",
914        jp_code: "291515000",
915        jp_description: "プロピオン酸、その塩及びエステル",
916        tariff_rate: Some("free"),
917    },
918    JpRule {
919        hs_code: "291519",
920        jp_code: "291519000",
921        jp_description: "その他の飽和非環式モノカルボン酸(酪酸等)",
922        tariff_rate: Some("free"),
923    },
924    JpRule {
925        hs_code: "291524",
926        jp_code: "291524000",
927        jp_description: "酢酸ブチル",
928        tariff_rate: Some("free"),
929    },
930    JpRule {
931        hs_code: "291611",
932        jp_code: "291611000",
933        jp_description: "アクリル酸及びその塩",
934        tariff_rate: Some("free"),
935    },
936    JpRule {
937        hs_code: "291613",
938        jp_code: "291613000",
939        jp_description: "アクリル酸メチル",
940        tariff_rate: Some("free"),
941    },
942    JpRule {
943        hs_code: "291614",
944        jp_code: "291614000",
945        jp_description: "メタクリル酸メチル(MMA)",
946        tariff_rate: Some("free"),
947    },
948    JpRule {
949        hs_code: "291619",
950        jp_code: "291619000",
951        jp_description: "不飽和モノカルボン酸のエステル(アクリル酸ブチル等)",
952        tariff_rate: Some("free"),
953    },
954    JpRule {
955        hs_code: "291712",
956        jp_code: "291712000",
957        jp_description: "アジピン酸、その塩及びエステル",
958        tariff_rate: Some("free"),
959    },
960    JpRule {
961        hs_code: "291714",
962        jp_code: "291714000",
963        jp_description: "無水マレイン酸",
964        tariff_rate: Some("free"),
965    },
966    JpRule {
967        hs_code: "291719",
968        jp_code: "291719000",
969        jp_description: "その他の非環式ポリカルボン酸(コハク酸等)",
970        tariff_rate: Some("free"),
971    },
972    JpRule {
973        hs_code: "291736",
974        jp_code: "291736000",
975        jp_description: "テレフタル酸及びその塩",
976        tariff_rate: Some("free"),
977    },
978    JpRule {
979        hs_code: "292121",
980        jp_code: "292121000",
981        jp_description: "エチレンジアミン及びその塩",
982        tariff_rate: Some("free"),
983    },
984    JpRule {
985        hs_code: "292122",
986        jp_code: "292122000",
987        jp_description: "ヘキサメチレンジアミン及びその塩",
988        tariff_rate: Some("free"),
989    },
990    JpRule {
991        hs_code: "292610",
992        jp_code: "292610000",
993        jp_description: "アクリロニトリル",
994        tariff_rate: Some("free"),
995    },
996    JpRule {
997        hs_code: "292920",
998        jp_code: "292920000",
999        jp_description: "イソシアナート(TDI、MDI等)",
1000        tariff_rate: Some("free"),
1001    },
1002
1003    // ═══════════════════════════════════════════════
1004    // Chapter 38 — 各種化学工業生産品 (v0.5)
1005    // ═══════════════════════════════════════════════
1006    JpRule {
1007        hs_code: "380210",
1008        jp_code: "380210000",
1009        jp_description: "活性炭",
1010        tariff_rate: Some("free"),
1011    },
1012    JpRule {
1013        hs_code: "380800",
1014        jp_code: "380800000",
1015        jp_description: "殺虫剤、殺菌剤、除草剤等の調製品",
1016        tariff_rate: None, // complex rate depending on active ingredient
1017    },
1018    JpRule {
1019        hs_code: "382499",
1020        jp_code: "382499000",
1021        jp_description: "その他の化学調製品(他に分類されないもの)",
1022        tariff_rate: None,
1023    },
1024
1025    // ═══════════════════════════════════════════════
1026    // Chapters 21, 30, 33 — special-use products (v0.5)
1027    // ═══════════════════════════════════════════════
1028    JpRule {
1029        hs_code: "210690",
1030        jp_code: "210690000",
1031        jp_description: "食品調製品(他に分類されないもの)",
1032        tariff_rate: None,
1033    },
1034    JpRule {
1035        hs_code: "300490",
1036        jp_code: "300490000",
1037        jp_description: "医薬品(投与量形態にしたもの等)",
1038        tariff_rate: None,
1039    },
1040    JpRule {
1041        hs_code: "330499",
1042        jp_code: "330499000",
1043        jp_description: "美容品・化粧品調製品(その他)",
1044        tariff_rate: None,
1045    },
1046];
1047
1048/// Look up the Japan tariff code for a 6-digit HS code.
1049///
1050/// Returns `None` if no Japan-specific entry is registered for this code.
1051pub fn find_jp_rule(hs_code: &str) -> Option<&'static JpRule> {
1052    JP_RULES.iter().find(|r| r.hs_code == hs_code)
1053}
1054
1055#[cfg(test)]
1056mod tests {
1057    use super::*;
1058
1059    #[test]
1060    fn naoh_solid_has_jp_code() {
1061        let rule = find_jp_rule("281511").unwrap();
1062        assert_eq!(rule.jp_code, "281511000");
1063        assert_eq!(rule.tariff_rate, Some("free"));
1064    }
1065
1066    #[test]
1067    fn acetone_has_jp_code() {
1068        let rule = find_jp_rule("291411").unwrap();
1069        assert_eq!(rule.jp_code, "291411000");
1070    }
1071
1072    #[test]
1073    fn unknown_hs_returns_none() {
1074        assert!(find_jp_rule("999999").is_none());
1075    }
1076
1077    #[test]
1078    fn tariff_year_is_2026() {
1079        assert_eq!(JP_TARIFF_YEAR, 2026);
1080    }
1081}