Overview  /  Policy

The policy is data

Nothing in the gate hard-codes a legal threshold. Every rule below is read from policy.json at runtime, and the same file drives the Python gate and the Node Agent Skill. A test runs both over the same accounts and compares every verdict.

us-federal-collections

Version 1.0.0

Jurisdiction
US-FEDERAL
Call window
08:00-21:00, local to the recipient
Timezone source
account.timezone
Authorities
TCPA (47 U.S.C. 227) · FDCPA (15 U.S.C. 1692) · Regulation F (12 CFR 1006)

What this is not

Stated plainly, because an overclaim here would be the costly kind.

Legal advice
No. An engineering encoding of documented requirements.
Sufficient
No. ALLOW is necessary for this policy, not proof a call is lawful.
Complete
No state rules, frequency caps, or reassigned-number checks.
Guessing
Never. A missing timezone or consent record is a refusal.

The five rules

Rules 1–4 run before dialling. Rule 5 runs during and after the call. Each carries the property it enforces, written as a temporal-logic formula: G is “always”, F is “eventually”.

RuleRequirementOn failureAuthorityProperty
R1 call window
before dialling
Dial only between 08:00 and 21:00 in the recipient's stored local timezone. OUTSIDE_CALL_WINDOW FDCPA 1692c(a)(1); Regulation F 12 CFR 1006.6(b)(1)(i) G(dial -> local_time_within(08:00, 21:00))
R2 consent on file
before dialling
Dial only when prior express consent is recorded with a consent timestamp. NO_CONSENT TCPA 47 U.S.C. 227(b)(1)(A) G(dial -> consent_on_file & consent_timestamp_present)
R3 not suppressed
before dialling
Never dial a number on the opt-out or do-not-call suppression list. ON_SUPPRESSION_LIST TCPA 47 CFR 64.1200(d); FDCPA 1692c(c) G(suppressed(number) -> G(!dial(number)))
R4 disclosure ready
before dialling
The rendered call script must contain every required disclosure element before the call is placed. MISSING_DISCLOSURE FDCPA 1692e(11); TCPA 47 U.S.C. 227(d)(3)(A) G(dial -> script_contains(all disclosure_elements))
R5 live revocation
during the call
If the recipient revokes consent during the call, end the call, record the opt-out, and suppress the number. OPT_OUT TCPA 47 CFR 64.1200(a)(10); Regulation F 12 CFR 1006.6(c) G(revocation_detected -> F(end_call & suppressed(number)))

Required disclosure

Rule 4 refuses a script missing any of these.

caller_identity The call names the calling entity and, when acting for a creditor, who it is calling on behalf of.
automated_voice_identity The call states that the caller is an automated or AI assistant.
debt_collection_purpose FDCPA 1692e(11) purpose disclosure: an attempt to collect a debt and information obtained will be used for that purpose.
opt_out_instruction The call tells the recipient how to stop future calls.

Revocation phrases

Rule 5 matches these in recipient turns only, so the agent's own “say stop calling” disclosure never counts. The list is a floor, not a ceiling: an opt-out the agent understands but that is not listed must still be honoured.

stop callingstop calling mequit callingno more callsdont call medont call againdont call this numberdo not call medo not call againdo not call this numbertake me off your listtake me off the listremove me from your listput me on your do not call liststop contacting meopt outopt me outunsubscribe me