This page exposes the substantive shape of the platform for technical and institutional evaluators: how the API is integrated, which endpoints exist, what the Financial State Model looks like, and how domains map inputs into computed outputs.
DIYMF does not treat personal finance as a generic retrieval problem. Institutions provide baseline profile facts, domain inputs, and optional source documents. The platform normalizes those inputs into a Financial State Model, computes domain-level KPIs, and only then uses bounded reasoning to explain the result.
Identify the user with a stable externalUserId unique within your organization and tenant context.
Send baseline Financial State Model profile facts to /api/hre/users/profile so the platform has authoritative cross-domain context.
Submit authoritative KPIs through /api/hre/kpis and optionally upload supporting documents through /api/hre/ingest for extraction and evidence grounding.
Call /api/hre/ask once profile and at least one domain input exists. The platform computes the decision state first, then explains it.
Track asynchronous ingest jobs through /api/hre/ingest/status/:docId and store returned document identifiers for later audit and lifecycle operations.
/api/hre/users/profileCreate or update the canonical Financial State Model profile for a user.
{
"externalUserId": "user_123",
"profile": {
"age": 42,
"retirementAge": 65,
"incomeAnnualGross": 165000,
"incomePostTax": 108500,
"householdSize": 3,
"filingStatus": "married_filing_jointly",
"state": "CA",
"totalDebt": 240000,
"retirementSavingsTotal": 310000,
"riskTolerance": "moderate"
}
}/api/hre/kpisSubmit domain KPIs your systems already compute so DIYMF can use them as verified facts.
{
"externalUserId": "user_123",
"domain": "budget",
"metrics": {
"monthlyExpensesTotal": 11854,
"budgetCategories": {
"housing": 3200,
"food": 1329,
"transportation": 518
}
}
}/api/hre/ingestUpload documents for extraction, evidence references, and grounded explanation support.
form-data: externalUserId=user_123 domain=tax docType=irs_1040 file=@/path/to/1040.pdf
/api/hre/ingest/status/:docIdTrack asynchronous processing state for a previously uploaded document.
GET /api/hre/ingest/status/doc_123
/api/hre/askRequest a bounded explanation grounded in user state, KPIs, and evidence references.
{
"externalUserId": "user_123",
"domain": "retirement",
"question": "Am I on track for retirement?"
}The Financial State Model is the canonical baseline state for a user. These are representative fields used across multiple domains before domain-specific KPIs are added.
| Field | Type | Notes |
|---|---|---|
age | number | Current age of the user. |
retirementAge | number | Target retirement age used by retirement projections. |
incomeAnnualGross | number | Annual gross income before deductions. |
incomePostTax | number | Annual or normalized post-tax take-home income. |
monthlyExpensesTotal | number | Current monthly spending baseline. |
householdSize | number | Household context used across planning domains. |
filingStatus | string | Tax filing status, such as single or married_filing_jointly. |
state | string | US state used for tax and cost assumptions. |
totalDebt | number | Aggregate debt outstanding across tracked obligations. |
retirementSavingsTotal | number | Current retirement account balance total. |
riskTolerance | string | Risk posture used for allocation alignment analysis. |
Cash-flow planning, spend diagnostics, and budget pressure analysis.
Estimated tax position, deduction coverage, withholding gap, and scenario deltas.
Readiness analysis, nest-egg projections, income gap, and longevity modeling.
Debt prioritization, payoff horizon, and interest reduction scenarios.
DIYMF applies policy-aware guidance as controlled runtime configuration. This layer can narrow an answer, add conditions, route a workflow, flag missing facts, or alter how the system interprets the same user state. It does not change the endpoint names, but it can change how an answer is evaluated and explained.
Baseline policy-aware guidance maintained by DIYMF for supported domains and evaluator families.
Client-specific overlays for internal policy, review thresholds, disclosures, routing, and preferred treatment.
Policy-aware guidance is applied from active org and domain configuration; it is not a casual prompt toggle on the public API.
The current reviewed public baseline contains 10 approved platform rule packs. These are the concrete policy-aware rule packs behind the runtime layer today.
open_banking.1033.final_rule.us.2024.v1Core personal financial data rights scope and role-based obligations under CFPB Section 1033.
open_banking.1033.compliance_timing.us.2025.v1Timing and status logic covering the final rule, reconsideration track, and stayed compliance dates.
open_banking.1033.third_party_obligations.us.2024.v1Authorized third-party and intermediary obligations tied to consent scope, data use, and revocation handling.
budget_payments.1033.transaction_data_access.us.2024.v1Applies Section 1033 access and consent obligations to budgeting and payments workflows using transaction data.
institutional_risk.sr_11_7.model_risk.us.v1Governance, validation, monitoring, and effective challenge expectations for material model-driven decisions.
institutional_risk.sr_21_8.bsa_aml_model_risk.us.v1Model risk expectations for bank systems supporting BSA/AML workflows and related governance controls.
general_finance.fincen_boi.change_2025.us.v1Captures the 2025 BOI reporting change affecting U.S. companies, U.S. persons, and certain foreign entities.
general_finance.obbba.consumer_tax_changes.us.2025.v1Current-law tax change pack for OBBBA-driven consumer tax guidance and downstream decision logic.
investments.ira_roth_phaseouts.us.2026.v1Contribution eligibility and phaseout treatment based on filing status, MAGI, age, and account type.
investments.rmd_timing.us.2026.v1Required minimum distribution timing by age, account type, beneficiary status, and Roth-owner treatment.
| Evaluator family | Typical use |
|---|---|
| Threshold | Numeric cutoffs such as high-balance review, tolerance checks, or compliance gates. |
| Scope / routing | Role-product scope, subtopic routing, and deciding which policy family applies. |
| Timing / lifecycle | Policy-aware logic that changes by implementation stage, review period, or effective date window. |
| Checklist / control gap | Model risk, governance, and operational-control assessments where missing controls matter. |
The compliance export is intentionally scrubbed. It is designed so a compliance officer can answer: what happened, what data was relied on, under what policy, and whether the decision path can be reproduced without exposing raw prompts or turning the platform into a raw-document vault.
| Envelope field | Meaning |
|---|---|
status | Request status for report generation. |
requestId | Unique report generation identifier. |
reportVersion | Schema version for the compliance report payload. |
generatedAt | Timestamp when the report was generated. |
orgId | Organization identifier the report is scoped to. |
from / to | Inclusive reporting window for the exported report. |
High-level outcome and policy metadata.
Evidence arrays and snippet previews.
Trace metadata and evidence references such as ids and scores.
Snippet previews.
Metadata plus short scrubbed snippet previews.
Raw document text and raw prompts.
Answers are intended to expose the computed state and evidence metadata, not replace deterministic financial truth with unconstrained language.
{
"status": "ok",
"domain": "retirement",
"answer": "Your current retirement plan is close to target but still shows a projected income gap.",
"kpis": {
"projectedNestEgg": 2935276,
"incomeGap": 40611,
"safeWithdrawalIncome": 117411,
"longevityYears": 30
},
"trace": {
"traceLevel": "scrubbed_preview",
"evidence": [
{ "id": "doc_1040_2025", "score": 0.91 },
{ "id": "profile_state_v12", "score": 1.0 }
]
}
}