MoneyOps: Constraint-Aware Personal Finance Reasoning

A Llama 4 Scout LoRA that separates verified arithmetic from preference-sensitive financial decisions.

Trained by Adaption AutoScientist on the remastered MoneyOps instruction dataset.

MoneyOps win rates

TL;DR

MoneyOps turns concrete financial inputs into reconciled calculations, decision conditions, and actionable next steps. It was adapted for cash-flow planning, debt decisions, savings goals, rates, liquidity, irregular income, and limitation handling without presenting subjective heuristics as mathematical truth.

This repository contains a PEFT LoRA adapter, tokenizer, chat template, and training metadata. It is not a standalone Llama 4 checkpoint and must be loaded with the compatible Llama 4 Scout base recorded in adapter_config.json.

Training data: MoneyOps on Hugging Face

Contents

Why MoneyOps

Personal-finance questions often combine arithmetic with preferences and uncertainty. A mathematically feasible choice is not automatically the right recommendation: liquidity, income stability, dependants, deadlines, risk tolerance, and the user's own priorities can change the decision.

MoneyOps was built to keep these layers separate. It verifies calculations and hard constraints, then presents a direct answer that can be deterministic, conditional, range-based, or one of several reasonable alternatives. When essential information is missing, the preferred behavior is to ask a focused question or bound the answer instead of inventing a rule.

The central failure mode is a polished recommendation built on unreconciled numbers or an unstated preference:

Failure mode Desired MoneyOps behavior
Correct arithmetic, unsuitable recommendation Separate feasibility from the user's liquidity, stability, and risk preferences
Confident advice from missing inputs Ask for the decision-changing fact or give a bounded answer
Rule of thumb presented as truth Label the heuristic and show reasonable alternatives
Credit confused with income Reconcile cash, debt, and available borrowing separately
Short-term payment mistaken for affordability Include fees, term, running costs, and liquidity consequences
Current law or product rule invented State the jurisdiction boundary and request the applicable rule

The design response

MoneyOps combines a deterministic finance engine with natural-language teaching. The engine verifies calculations and feasibility; it does not decide subjective preferences. An independently compiled answer key separates:

  • verified_facts and hard_constraints;
  • decision_conditions and reasonable_options;
  • the required recommendation_mode;
  • prohibited_conclusions that the scenario cannot support.

The assistant then gives the direct answer first, shows the relevant calculation, and adds trade-offs or questions only when they can change the decision.

What it can do

Capability Examples
Cash-flow reconciliation Monthly surplus, irregular-expense reserves, and month-end cash paths
Variable-income planning Conservative baselines, seasonal reserves, and runway stress tests
Debt analysis Avalanche versus snowball, extra payments, minimum-payment effects, and remaining balances
Goal planning Required contributions, timelines, competing goals, and decision thresholds
Rate reasoning APR versus APY, real versus nominal returns, inflation-adjusted targets
Major decisions Refinance break-even, purchase affordability, relocation, career breaks, and windfalls
Limitation handling Contradictory inputs, missing facts, uncertainty, and jurisdiction-specific questions

Data adaptation

The model was not trained on the original source rows unchanged.

  1. A deterministic finance pipeline created the source scenarios, calculations, answer keys, and natural responses.
  2. Exactly 9,906 quality-controlled source rows were uploaded to Adaption.
  3. Adaption remastered those records into its stronger instruction/completion format, adding task framing and response-shaping constraints while preserving the underlying financial problem.
  4. AutoScientist reports that 9,485 adapted rows were used for the SFT run.

The remastered prompt may include an explicit task wrapper, a domain-relevant persona, formatting expectations, and a same-language instruction. Those controls are part of the adapted training input. The assistant target should follow them naturally without revealing or discussing the hidden persona or constraint block.

Example

The following is an actual MoneyOps example after Adaption remastering, shortened only to keep the card readable.

Adapted user instruction

Provide your response to the following prompt:

<prompt> Act as a personal finance expert. I have a clear picture of my cash flow for the next six months and need a reserve plan to ensure I have enough funds for low-income months without over-saving during high-income ones.

Starting liquid cash: EUR 588.80
Monthly committed expenses: EUR 2,208.00
Projected income for months 1-6: EUR 4,960.00, 4,480.00, 3,840.00, 2,400.00, 1,920.00, and 1,760.00.

Provide projected ending cash, the amount to set aside or withdraw each month, and a brief explanation of the reserve strategy. </prompt>

The stored instruction additionally asks for a pragmatic variable-income finance perspective, prohibits disclosure of that persona, and requires the response to use the language of the user's prompt.

Adapted assistant answer

Cash Flow Stability Plan (6-Month Horizon)

The plan uses income smoothing. Average monthly income is EUR 3,226.67. Income above that level is moved to a reserve; income below it is supplemented from the reserve.

Month Income Expenses Net flow Reserve action Ending liquid cash
1 EUR 4,960.00 EUR 2,208.00 +EUR 2,752.00 Set aside EUR 1,733.33 EUR 3,340.80
2 EUR 4,480.00 EUR 2,208.00 +EUR 2,272.00 Set aside EUR 1,253.33 EUR 5,612.80
3 EUR 3,840.00 EUR 2,208.00 +EUR 1,632.00 Set aside EUR 613.34 EUR 7,244.80
4 EUR 2,400.00 EUR 2,208.00 +EUR 192.00 Withdraw EUR 826.67 EUR 7,436.80
5 EUR 1,920.00 EUR 2,208.00 -EUR 288.00 Withdraw EUR 1,306.67 EUR 7,148.80
6 EUR 1,760.00 EUR 2,208.00 -EUR 448.00 Withdraw EUR 1,466.66 EUR 6,700.80

Months 1-3 accumulate EUR 3,600.00 in reserves and months 4-6 distribute EUR 3,600.00. This decouples available monthly income from uneven invoice receipts while preserving total liquidity.

The full training target contains the complete explanation, including the strategy, liquidity interpretation, and safety margin. This example demonstrates the actual adapted style rather than the pre-Adaption source response.

Evaluation

AutoScientist win rates
Evaluation slice Base model Adapted model
Evaluation on the MoneyOps dataset 37 63
Personal Finance category evaluation 39 61

These are the whole-number labels shown in the current Adaption AutoScientist win-rate charts for training experiment 5402e484-bc95-45b5-8a8f-d1aac8cf00e8. They are platform-reported preference results. The interface does not expose sample counts, confidence intervals, or a public item-level evaluation set, so the values should not be interpreted as universal financial accuracy estimates.

Dataset adaptation measurements
Measure Original data Adaptive data
Quality score 8.0 9.1
Grade B A
Percentile 15.3 33.0

Adaption reports a 13.7% relative improvement in dataset quality. These measurements describe Adaption's evaluation of this dataset transformation; they are not external finance benchmarks.

MoneyOps training telemetry

The loss, learning-rate, and gradient-norm charts document optimization behavior. Training curves alone do not establish numerical correctness, calibration, or generalization to current laws and financial products.

Model details

Field Verified value
Release type PEFT LoRA adapter
Training method Supervised fine-tuning (SFT)
Data format Chat
AutoScientist base model meta-llama/Llama-4-Scout-17B-16E-Instruct
Adapter-config base path togethercomputer/Llama-4-Scout-17B-16E-Instruct_bnb_4bit
Base size reported by AutoScientist 109B total parameters
AutoScientist model label adaption_llama_4_scout_17b_16_moneyops_5402e484
Trained model name adaption_personal_finance_advice
Training experiment ID 5402e484-bc95-45b5-8a8f-d1aac8cf00e8
Fine-tune job ID cbbbe50f-72c3-4536-86d8-bc39109bbc31
Training rows reported by exported card 9,485 adapted rows
Training-domain mix reported by exported card 98% Personal Finance, 2% Math

Training configuration

The AutoScientist-selected configuration was used unchanged.

Parameter Value
Epochs 3
Batch size max
Evaluations 5
Learning rate 1e-4
Scheduler Cosine
Scheduler cycles 0.5
Warmup ratio 0.05
Minimum LR ratio 0.1
Weight decay 0.05
Maximum gradient norm 1
LoRA rank 64
LoRA alpha 128
LoRA dropout 0
Trainable modules k_proj, o_proj, q_proj, v_proj
Train on inputs false

How to use

The public repository contains a 403 MB PEFT adapter. Its exported configuration points to a 4-bit Llama 4 Scout base; access to that base and hardware capable of serving it are still required.

pip install torch transformers peft accelerate bitsandbytes
import torch
from peft import PeftConfig, PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

ADAPTER = "prathmeshadsod/MoneyOps-Llama-4-Scout-17B-16E-Instruct"
peft_config = PeftConfig.from_pretrained(ADAPTER)
base_model_path = peft_config.base_model_name_or_path

base = AutoModelForCausalLM.from_pretrained(
    base_model_path,
    device_map="auto",
    torch_dtype=torch.bfloat16,
)
model = PeftModel.from_pretrained(base, ADAPTER)
tokenizer = AutoTokenizer.from_pretrained(ADAPTER)

messages = [{
    "role": "user",
    "content": (
        "My monthly take-home pay is 3,800, essential expenses are 2,450, "
        "and I have 4,000 in liquid savings. How many months of essential "
        "expenses does that cover, and what should I check before using "
        "part of it for an extra debt payment?"
    ),
}]
inputs = tokenizer.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

with torch.inference_mode():
    output = model.generate(**inputs, max_new_tokens=512, do_sample=False)

new_tokens = output[0][inputs["input_ids"].shape[-1]:]
print(tokenizer.decode(new_tokens, skip_special_tokens=True))

The recorded base path is togethercomputer/Llama-4-Scout-17B-16E-Instruct_bnb_4bit. It comes directly from the published adapter configuration, not from an inferred naming convention. That base may require separate authorization. Use the tokenizer and chat template shipped with this adapter. Merging is optional and should be tested separately.

Intended use

MoneyOps is intended for:

  • personal-finance education and planning assistance;
  • budgeting, cash-flow, and irregular-income analysis;
  • debt, savings-goal, and affordability comparisons;
  • checking user-supplied calculations;
  • explaining trade-offs and decision-changing conditions;
  • research on narrow-domain instruction adaptation.

It is not a fiduciary, lender, accountant, tax adviser, attorney, or insurance professional. Users remain responsible for verifying inputs, product terms, and decisions with appropriate qualified professionals.

Limitations

  • V1 is jurisdiction-neutral. It does not encode current tax, legal, pension, credit-regulation, or insurance rules unless those rules are supplied in the prompt.
  • The model can still make arithmetic errors, omit a cash-flow item, or misunderstand whether a balance is liquid, recurring, gross, or net. Reconcile important calculations independently.
  • Recommendations depend on risk tolerance, income stability, dependants, liquidity preferences, deadlines, and goals. A numerically valid option is not automatically the user's preferred choice.
  • Current rates, fees, product terms, and laws can change. The model should not invent or silently assume them.
  • The training corpus is synthetic and adapted. Its prompt wrappers, personas, formatting habits, and teacher style may transfer into generations.
  • A publication audit found six exact normalized duplicate enhanced-completion rows and a concentrated empathetic opening pattern. Evaluate response directness and opening diversity for the intended deployment.
  • AutoScientist preference win rates are platform measurements without published confidence intervals or item-level evaluation data.
  • The adaptation is text-only. It was not evaluated for financial document images, account access, transaction execution, or autonomous financial actions.
  • Do not use MoneyOps for emergency, insolvency, regulated, or high-stakes decisions without qualified human review.

Reproducibility

Artifact Identifier
Source production run personal_finance_production_10000_seed_20260805
Source planner seed 20260805
Source rows uploaded to Adaption 9,906
Adaption dataset ID ca30dceb-5264-4391-b221-42fa5553efec
Source prompt-author model nvidia/nemotron-3-ultra-550b-a55b
Source response-teacher model nvidia/nemotron-3-ultra-550b-a55b
AutoScientist experiment 5402e484-bc95-45b5-8a8f-d1aac8cf00e8
Canonical published PEFT repository prathmeshadsod/MoneyOps-Llama-4-Scout-17B-16E-Instruct

The exported adapter repository contains adapter_model.safetensors, adapter_config.json, tokenizer files, the chat template, trainer state, and evaluation images. Its adapter configuration records rank 64, alpha 128, zero dropout, and the four attention projection targets listed above.

Citation

@misc{adsod2026moneyops,
  author = {Prathmesh Adsod},
  title = {MoneyOps: Personal Finance Reasoning with Llama 4 Scout},
  year = {2026},
  note = {Adaption AutoScientist Challenge submission}
}

Acknowledgements

Built for the Adaption AutoScientist Challenge. Adaption remastered the source dataset, selected the training configuration, trained the LoRA adapter with AutoScientist, and produced the displayed evaluation results. The source pipeline supplied deterministic calculations, separated answer keys, natural prompts, and grounded response targets.

Downloads last month
1
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for prathmeshadsod/MoneyOps-Llama-4-Scout-17B-16E-Instruct

Dataset used to train prathmeshadsod/MoneyOps-Llama-4-Scout-17B-16E-Instruct