PostgreSQL Schema

The Float Service uses a single PostgreSQL table as its primary data store for float records. The primary instance and its read replica are in us-east-2.

FloatMeAPI_userloansmodel

One row per float advance. Every Lambda in the service reads from or writes to this table.

Column Type Description

loan_id

uuid

Primary key.

user_id_id

varchar

Reference to the owning user.

loan_type

varchar

NORMAL, PINLESS, or RTP. See Loan Types.

loan_amount

varchar

Advance amount disbursed to the user.

fee

varchar

Fee charged for the advance.

ach_debit_status

varchar

Current float status. See Float Statuses.

ach_debit_date

timestamp with tz

Float due date — the date collection is expected to begin.

ach_debit_id

varchar

USIO debit reference ID for the most recent collection attempt. Empty until the first attempt; overwritten on each new attempt. For a COMPLETED float this holds the reference ID of the successful payment.

ach_credit_id

varchar

USIO credit reference ID for the disbursement. Should match a payment record in the Payments Service.

ach_credit_status

varchar

Unused.

ach_credit_date

timestamp with tz

Unused.

created_date

timestamp with tz

Float creation timestamp.

evaluation_id

varchar

Underwriting evaluation reference ID. Links this float to the eligibility result from the Underwriting Service.

default_payback_date

varchar

Initial due date calculated at float creation.

is_custom_payback_date

boolean

true if the user selected a custom payback date other than the default.

next_payday_date

date

Cached next-payday prediction: the first payday after the float’s due date, set at float creation. No collection run reads it.

Source: pkg/rds/

Float Statuses

ach_debit_status values and their transitions are documented in Float Lifecycle — Float Statuses.

Loan Types

Value Description

NORMAL

Standard float. Disbursed via ACH credit. Collection uses pinless debit if a valid card is present, with ACH as the fallback.

PINLESS

Float disbursed via pinless debit. Collection routing is the same as NORMAL — the type is recorded at creation and used by internal routing decisions in the collection engine.

RTP

Float disbursed via Real-Time Payments. If the RTP submission fails with a P04 error and floats.can_fallback_pinless is enabled (see GrowthBook Flags), the disbursement is retried as PINLESS. The resolved loan type after fallback is stored.