code wiki / (root) / nx_supp_jurisdiction.nx

nx_supp_jurisdiction.nx

buildroot/runtime/nx_supp_jurisdiction.nx

9814 B248 linesdepth 3pulls 3 transitivereach 3 importersview sourcekind librarytopic supp
docsdependenciesstructsconstsfunctions

about

nx_supp_jurisdiction.nx -- SUPPLEMENT GTM SUITE / MARKET ACCESS rung. Answers "where can this actually be manufactured and sold", per market, with the premarket burden and the review clock made explicit. THE RESULT IS COUNTERINTUITIVE AND IT IS THE POINT OF THIS FILE. The instinct when a market feels closed is to look offshore. For a BOTANICAL or AMINO ACID supplement that instinct is backwards: the United States is the most PERMISSIVE major market in the world, because DSHEA grandfathered pre-1994 ingredients and requires NO premarket approval for them. Every other market here demands premarket authorisation of some kind: US no approval for an old dietary ingredient; 75-day notification only for a NEW one (least burden) Australia listing against a permitted-ingredient list, fast EAEU State Registration certificate (SGR) required BEFORE sale Japan Foods with Function Claims, notify 60 days ahead Canada product licence + NPN before sale EU Novel Food authorisation for anything without significant pre-1997 EU consumption history (most burden) So "go somewhere friendlier" is a real strategy for many industries and a losing one here. The honest reason a botanical stack is easy to sell in the US is that the US barely gates it. THE ONE THING NO JURISDICTION OFFERS. A substance regulated as a MEDICINE has no supplement pathway anywhere on this list -- not the US, not the EAEU, not anywhere. Kisspeptin-10, BPC-157, oxytocin and bremelanotide are medicines or unapproved new drugs in every one of these markets, so sj_any_peptide_supplement_path() returns 0 by construction rather than by promise. A government partnership does not convert a drug into a supplement; it just moves which regulator objects. TIMELINES AND FEES ARE INDICATIVE PLANNING FIGURES, not quotes -- they move with dossier quality, ingredient novelty, and local counsel. sj_estimate_is_indicative() exists so nothing downstream presents them as commitments. Sanctions, banking access and export controls are a SEPARATE analysis this file does not attempt and must not be read as clearing. Grounding (cited; researcher-groundable): dshea_1994_old_dietary_ingredient_no_premarket_approval

dependencies 2 imports · 3 importers

nx_syscalls.nx nx_supp_ingredient.nx nx_supp_jurisdiction.nx nx_gtm_svc.nx nx_plan_svc.nx nx_prodready.nx

imports: nx_syscalls.nxnx_supp_ingredient.nx

imported by: nx_gtm_svc.nxnx_plan_svc.nxnx_prodready.nx

structs

none

consts

51const SJ_MAGIC_200000: i64 = 200000
52const SJ_MAGIC_800000: i64 = 800000
53const SJ_MAGIC_1000000: i64 = 1000000
54const SJ_MAGIC_500000: i64 = 500000
55const SJ_MAGIC_35000000: i64 = 35000000
59const SJ_US: i64 = 0
60const SJ_EAEU: i64 = 1 // Belarus, Russia, Kazakhstan, Armenia, Kyrgyzstan
61const SJ_EU: i64 = 2
62const SJ_CANADA: i64 = 3
63const SJ_AUSTRALIA: i64 = 4
64const SJ_JAPAN: i64 = 5
65const SJ_N: i64 = 6
67const SJ_INVALID: i64 = 0 - 1
71const SJ_PATH_NONE: i64 = 0 // no lawful supplement route
72const SJ_PATH_NO_PREMARKET: i64 = 1 // notify/register facility only
73const SJ_PATH_NOTIFICATION: i64 = 2 // file and wait a statutory clock
74const SJ_PATH_REGISTRATION: i64 = 3 // dossier + certificate before sale
75const SJ_PATH_AUTHORISATION: i64 = 4 // full pre-approval (novel food)
76const SJ_PATH_DRUG_ONLY: i64 = 5 // medicines route, not a supplement

functions

78func sj_valid(j: i64) -> i64
84func sj_name(j: i64) -> *u8
94func sj_regime(j: i64) -> *u8
109func sj_pathway(j: i64, ingredient: i64) -> i64
129func sj_premarket_required(j: i64, ingredient: i64) -> i64
called by 1: gtm_jurisdiction_path calls 1: sj_pathway
137func sj_is_sellable(j: i64, ingredient: i64) -> i64
147func sj_review_days(j: i64) -> i64
158func sj_dossier_cost_cents(j: i64) -> i64
168func sj_estimate_is_indicative(j: i64) -> i64
174func sj_requires_separate_sanctions_review(j: i64) -> i64
182func sj_lowest_burden_market(ingredient: i64) -> i64
201func sj_markets_open(ingredient: i64) -> i64
calls 1: sj_is_sellable
215func sj_any_peptide_supplement_path() -> i64
calls 1: sj_is_sellable
233func sj_parallel_launch_days(m0: i64, m1: i64) -> i64
calls 1: sj_review_days
242func sj_combined_dossier_cost_cents(m0: i64, m1: i64) -> i64