Budget spesa
Con un budget di 100 e latte, pane, uova e mele per 10,53 in tutto, le restano 89,47. Dopo ogni articolo vede il saldo residuo e capisce quale la farebbe sforare prima di arrivare alla cassa. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Budget
- 100
- Numero di elementi
- 4
- Totale speso
- 10,53
- Rimanente
- 89,47
- Importo in eccesso
- 0
Un tracker del budget spesa risponde a una domanda pratica prima della cassa: dopo questo elenco di prezzi degli articoli, quanti soldi Le restano e ha già superato il limite? Acquirenti, pianificatori domestici e piccoli strumenti retail necessitano di una risposta deterministica che non raschi cataloghi né inventi imposte. Questa calcolatrice del budget spesa accetta un budget totale e una o più righe del carrello con prezzi, somma la spesa, la sottrae dal budget e restituisce il residuo, se il budget è stato superato, di quanto, e un residuo progressivo dopo ogni riga per vedere quale aggiunta ha fatto sballare il carrello.
Come si calcolano il residuo e lo sforamento del budget
Parta da un budget spesa non negativo nella stessa unità monetaria già usata per i prezzi a scaffale: la calcolatrice non converte valute né applica tassi di cambio. Per ogni riga del carrello prenda un prezzo finito non negativo; i nomi opzionali etichettano la riga in visualizzazione. Il totale speso è la somma di tutti i prezzi dell'elenco.
Il residuo è il budget meno quel totale. Quando il residuo è zero o positivo Lei resta entro il budget; quando è strettamente negativo il budget è superato e l'importo di sforamento è il valore assoluto del residuo. Il budget zero è ammesso: qualsiasi spesa positiva viene segnalata come sforamento, in linea con regole a busta in cui l'assegnazione era già esaurita.
I campioni gratuiti a prezzo zero sono accettati e non cambiano il totale. Budget e prezzi negativi vengono rifiutati perché non descrivono un'assegnazione di acquisto né un prezzo a scaffale in questo prodotto.
Casi d'uso
Busta settimanale della spesa
Inserisca il budget alimentare settimanale e i prezzi di corsia mentre fa la spesa; osservi il residuo e si fermi quando il carrello supererebbe il limite.
Carrello domestico condiviso
I coinquilini pubblicano un budget comune e un elenco congiunto così tutti vedono lo stesso totale speso, il residuo e il flag di sforamento.
Domande frequenti
Come funziona la calcolatrice del budget spesa?
Invii un budget non negativo e un elenco non vuoto di prezzi.
I prezzi degli articoli possono essere zero?
Sì. Campioni gratuiti o righe promo al prezzo 0 sono consentiti.
Serve un nome su ogni riga del carrello?
No. I nomi sono opzionali. I numeri nudi sono trattati come prezzi e le righe senza nome ricevono etichette stabili come Item 1 per la visualizzazione.
Cosa succede se supero il budget?
Il saldo residuo diventa negativo, il calcolatore segnala lo sforamento e indica di quanto è andato oltre, cioè quel saldo negativo senza il segno meno.
Come capisco quale articolo mi ha fatto sforare il budget?
Guardi il saldo mostrato dopo ogni riga. I prezzi vengono sottratti in ordine, quindi la prima riga in cui il saldo scende sotto zero è quella dell'articolo che ha fatto sforare il carrello.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/life/shopping-budget \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"budget":100,"items":[{"name":"Milk 1 L","price":1.49},{"name":"Bread","price":2.25},{"name":"Eggs (12)","price":3.8},{"name":"Apples 1 kg","price":2.99}]}'const res = await fetch("https://api.kit.forhosting.com/life/shopping-budget", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"budget": 100,
"items": [
{
"name": "Milk 1 L",
"price": 1.49
},
{
"name": "Bread",
"price": 2.25
},
{
"name": "Eggs (12)",
"price": 3.8
},
{
"name": "Apples 1 kg",
"price": 2.99
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/shopping-budget",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"budget": 100,
"items": [
{
"name": "Milk 1 L",
"price": 1.49
},
{
"name": "Bread",
"price": 2.25
},
{
"name": "Eggs (12)",
"price": 3.8
},
{
"name": "Apples 1 kg",
"price": 2.99
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/shopping-budget", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"budget":100,"items":[{"name":"Milk 1 L","price":1.49},{"name":"Bread","price":2.25},{"name":"Eggs (12)","price":3.8},{"name":"Apples 1 kg","price":2.99}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"budget":100,"items":[{"name":"Milk 1 L","price":1.49},{"name":"Bread","price":2.25},{"name":"Eggs (12)","price":3.8},{"name":"Apples 1 kg","price":2.99}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/shopping-budget", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"budget": 100,
"items": [
{
"name": "Milk 1 L",
"price": 1.49
},
{
"name": "Bread",
"price": 2.25
},
{
"name": "Eggs (12)",
"price": 3.8
},
{
"name": "Apples 1 kg",
"price": 2.99
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.shopping_budget",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
La validazione fallita—budget assente, elenchi vuoti, prezzi negativi—viene rifiutata come invalid_input e non viene fatturata.
Come si calcolano il residuo e lo sforamento del budget
L'endpoint riporta anche la percentuale di budget usata quando il budget è maggiore di zero, così un carrello da trenta su un tetto di cento mostra il trenta per cento usato senza costringere i client a ricalcolare i rapporti.
Contratto di ingresso, forma della risposta ed errori
Ogni riga può essere un numero nudo trattato come prezzo, oppure un oggetto con price obbligatorio e name opzionale. Gli elenchi oltre cinquecento righe vengono rifiutati per tenere limitato il lavoro pure-parse. Invii con POST un corpo JSON con due campi obbligatori: budget, un numero finito maggiore o uguale a zero, e items, un array non vuoto di righe del carrello. Price accetta anche alias comuni come cost o amount; il campo elenco accetta alias cart, prices, lines e list. Budget accetta alias limit, max, total_budget e allowance per riutilizzare il lessico di altri strumenti monetari. In caso di successo il corpo riporta il budget, il conteggio articoli, ogni riga con nome stabile, prezzo arrotondato e residuo progressivo dopo quella riga, più total_spent, remaining, over_budget, over_amount, within_budget, percent_used, una stringa di formula, un messaggio leggibile e passi ordinati per le schede. Esempio: budget cento con latte a one point four nine, pane a two point two five, uova a three point eight e mele a two point nine nine produce totale speso ten point five three e residuo eighty-nine point four seven con over_budget false. Se lo stesso budget è abbinato a righe che sommano oltre cento, over_budget è true e over_amount indica di quanto ha superato il limite—resta una risposta di successo, non un errore, perché superare il budget è la domanda a cui il tracker risponde. Budget assente, items vuoti, numeri non finiti o prezzi negativi falliscono con invalid_input indicando il campo e non vengono fatturati.
Dove un tracker del budget spesa crea valore
Le app domestiche e le liste della spesa condivise usano un tracker del budget così i coinquilini vedono il residuo spuntando gli articoli senza aprire un foglio di calcolo. Tenga le richieste piccole, fissi i totali arrotondati nei test e otterrà residui riproducibili per checklist mobili, plugin LMS e edge worker senza montare una contabilità propria. Chioschi demo retail e sandbox di formazione POS necessitano di un oracolo deterministico dei fondi residui che non chiami mai API di prezzi live. I corsi di finanza personale assegnano esercizi carrello contro budget; un'API con residuo progressivo ordinato dopo ogni riga consente di valutare quale aggiunta ha superato per prima il limite. Script di automazione che costruiscono menù settimanali possono inviare totali di ingredienti e interrompere il rifornimento quando over_budget diventa true. Poiché l'implementazione è pure parse di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello né rete in uscita.
Casi di integrazione
Automazione del menù settimanale
Gli script inviano i prezzi pianificati degli ingredienti contro un tetto fisso e interrompono il rifornimento quando over_budget diventa true.
Domande tecniche
Cosa succede se supero il budget?
La chiamata ha comunque successo. remaining è negativo, over_budget è true e over_amount indica di quanto ha superato il limite. Superare il budget non è trattato come invalid_input.
Quanto costa il tracker del budget spesa?
Lo strumento nel browser è gratuito. Le richieste API usano il saldo KIT prepagato a $0.002 per chiamata riuscita; l'input non valido non viene fatturato.