Feature flags

Every GrowthBook flag this service reads. Flags are evaluated per user unless noted. Metric names that share the underwriting.* prefix are not flags — see the flow pages for metrics.

Flags

Key Type Gates Where checked

underwriting.cfi.rules.enabled

bool

CFI increase rows marked RequiresFeatureFlag (the reactivator $50 row) — CFI

pkg/rulerunner/increase.go

underwriting.payback_predictor_v2_authoritative

bool

Authoritative (vs shadow) overrides for ranks below 4

pkg/underwriting_model/predictor.go

underwriting.payback_predictor_v2_authoritative_high_rank

bool

Authoritative overrides for rank 4 and above

pkg/underwriting_model/predictor.go

underwriting.payback_predictor_v2_threshold_table

JSON

Rank/term risk-score threshold table; falls back to the hardcoded default on error

pkg/underwriting_model/threshold_table.go

underwriting.float_tiers.rollout

bool

Float Tiers enforcement: whether the assignment drives the user’s decision and responses. Read once at snapshot time (persisted as the snapshot’s authoritative_v2) and live in the rule runner to withhold the CFI limit-updated notification — Float Tiers

pkg/underwriting_model/float_tiers.go, pkg/rulerunner/increase.go

underwriting.float_tiers_guardrails.rollout

bool

Float Tiers guardrails: whether the trigger policy’s outcome is what the assignment offers (off: the score-assigned band, with the policy’s outcome recorded as shadow data). Read once at snapshot time, persisted as the snapshot’s guardrails_applied — Float Tiers

pkg/underwriting_model/float_tiers.go

underwriting.float_tiers_table.config

JSON

Float-rank/score float-tier bands table (specific-rank entries plus a default); falls back to the hardcoded default on load error, an empty table, or missing rank coverage — Float Tiers

pkg/underwriting_model/float_tier_table.go

underwriting.rules.early_advance_elligibility_checks

bool

Kill switch for the early-advance transactions path (the misspelling is in the live key) — Early Advance

pkg/rulerunner/runner.go, pkg/float_evaluation/eligibility.go

underwriting.rules.early_advance_float_rank_group

string arm

Early-advance float_rank path arm: treatment, holdout, anything else = excluded

pkg/rulerunner/runner.go, pkg/float_evaluation/eligibility.go

underwriting.rules.early_advance_transactions_group

string arm

Early-advance transactions path arm: treatment, holdout, anything else = excluded

pkg/rulerunner/runner.go

global.loans.fees.config

JSON string (global)

Loan and float fee schedule that enriches profile responses — Float Profiles

pkg/api/float_profile.go

global.tiers.config

JSON

Membership tiers; a premium tier with WaiveInstantFloatFees waives float fees on API responses — fee waiver

pkg/api/fee_waiver.go

rulebook A/B group names (dynamic keys)

string

Selects which rule inside an A/B group, or which rulebook, applies to the user; the key is the ab_group value stored on the rulebook — Rule Engine

pkg/resultrunner/runner.go

Source: grep -rn GetFeature pkg/ — keep this table in sync with the call sites listed above.