Scali la ricetta dall’ingrediente disponibile
Se la ricetta chiede 500 g di farina e gliene restano solo 200 g, tutte le dosi vengono moltiplicate per 0,4: il burro passa da 250 g a 100 g e non manca nulla. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Quantità
- 500, 250, 2, 100
- Disponibile
- 200
- Indice limitante
- 0
- Nomi
- flour (g), butter (g), eggs, sugar (g)
- Scalato
- 200, 100, 0,8, 40
- Fattore
- 0,4
- Nome del fattore limitante
- flour (g)
- Quantità della ricetta
- 500
Quando la dispensa è a metà, la domanda utile non è «quante porzioni desidero?» ma «mi resta solo questa farina: come riscrivo tutta la scheda senza restare a corto?». I rapporti restano fissi: metà farina va ancora con metà burro e metà uova. Le unità non vengono convertite — i grammi restano grammi — quindi usi la stessa unità sullo stock e sulla scheda.
Cosa significa scalare da avanzi e come si costruisce il fattore
Cuochi casalinghi, pianificatori di meal-prep e cucine di prova affrontano spesso una dispensa parziale: la scheda chiede cinquecento grammi di farina, ma il sacchetto ne contiene duecento. Scalare dallo stock residuo risponde direttamente a quel vincolo. Lei elenca ogni quantità scalabile nell’ordine della ricetta, indica quale riga è limitante — di solito lo staple scarso — e inserisce quanto di quello staple Le resta.
Se la scheda indicava cinquecento grammi di farina e duecentocinquanta di burro, e Lei ha solo duecento grammi di farina, il fattore è duecento su cinquecento, cioè 0.4, quindi il burro diventa cento grammi e ogni altra riga si riduce allo stesso modo. Le etichette nome opzionali restano allineate a ciascuna quantità così la risposta può restituire farina, burro e uova accanto alle nuove cifre e segnalare quale riga era limitante.
Questo differisce da un moltiplicatore per porzioni: non sceglie prima il numero di commensali; lo stock di un ingrediente sceglie per Lei la dimensione del lotto.
Casi d'uso
Meal-prep con dispensa parziale
Quando resta un solo staple a peso, scali l’intera formula di prep per usare del tutto quello staple e mantenere le altre righe in proporzione.
Domande frequenti
In che modo differisce da uno scalatore per porzioni o moltiplicatore?
La modalità porzioni sceglie prima il numero di commensali.
Lo scalatore di ricette da avanzi è gratuito?
Lo strumento browser è gratuito e gira in locale.
Come adatto una ricetta alla farina che mi è rimasta?
Inserisca le dosi nell'ordine della ricetta, indichi la farina come ingrediente limitante e scriva quanta ne ha. Con 200 g dei 500 g richiesti il fattore è 0,4 e vale per tutte le altre righe.
Serve la stessa unità per la scorta e per la ricetta?
Sì. Nessuna unità viene convertita: se la ricetta indica la farina in grammi, scriva in grammi anche quella che le resta. Mescolare tazze e grammi dà un fattore sbagliato per tutti gli ingredienti.
Quale ingrediente devo indicare come limitante?
Quello che le manca, di solito un ingrediente base scarso come la farina. Può sceglierlo per posizione nella lista o per nome; se indica entrambi, vale il nome.
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/cook/leftover-scale \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"amounts":[500,250,2,100],"on_hand":200}'const res = await fetch("https://api.kit.forhosting.com/cook/leftover-scale", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"amounts": [
500,
250,
2,
100
],
"on_hand": 200
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/cook/leftover-scale",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"amounts": [
500,
250,
2,
100
],
"on_hand": 200
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/cook/leftover-scale", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"amounts":[500,250,2,100],"on_hand":200}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"amounts":[500,250,2,100],"on_hand":200}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/cook/leftover-scale", 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
{
"amounts": [
500,
250,
2,
100
],
"on_hand": 200
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.leftover_scale",
"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
Questo scalatore di ricette da avanzi prende ogni quantità numerica della Sua lista di ingredienti, sceglie una riga limitante (per indice o per nome) e moltiplica l’intera lista per on_hand diviso per la quantità di quella riga sulla ricetta. Quantità non positive e uno stock on_hand non positivo sono rifiutati con invalid_input invece di inventare un piatto azzerato. Il percorso è aritmetica deterministica pura con arrotondamento decimale fisso, così l’esecutore gratuito del browser e l’API prepagata restituiscono lo stesso JSON ogni volta che la invoca.
Cosa significa scalare da avanzi e come si costruisce il fattore
Il solver calcola un unico fattore condiviso uguale a on_hand diviso per la quantità di ricetta sulla riga limitante, poi moltiplica ogni quantità per quel fattore così i rapporti relativi restano costanti. Qui le unità non vengono convertite di proposito — usi grammi o tazze sia nella quantità di ricetta sia in on_hand affinché il rapporto sia adimensionale — e i convertitori cook fratelli possono normalizzare tazze in grammi prima di scalare. Schede di classe e coding kata possono asserire lo stesso JSON arrotondato perché l’aritmetica non dipende mai dall’orologio né da dati esterni.
Come chiamare l’API: campi, forma della risposta ed errori
Invii un corpo JSON con amounts come array obbligatorio di numeri finiti positivi — o una stringa separata da virgole nei form di testo — più on_hand come quantità positiva dell’ingrediente limitante che ha davvero. Scelga la riga limitante con limiting_index (base zero; predefinito zero se omesso) o limiting_name, confrontato senza distinzione di maiuscole con l’elenco opzionale names; se entrambi sono impostati, vince il nome così gli script identificano la farina senza fissare posizioni. Names (alias labels, ingredients) sono etichette parallele opzionali riempite o troncate al conteggio di amounts. I valori assoluti restano entro il limite pubblicato di un trilione (scala corta americana), e la lunghezza dell’elenco è limitata affinché un Worker termini in fretta. In caso di successo la risposta restituisce amounts arrotondati, scaled, factor, on_hand, limiting_index, limiting_name, recipe_amount di quella riga, count, names, righe ingredients con flag is_limiting, formula, message e steps ordinati. Validazione fallita — amounts vuoti, numeri non finiti, qualsiasi quantità di ricetta non positiva, on_hand non positivo, indice fuori intervallo o limiting_name senza corrispondenza — restituisce invalid_input e non viene mai addebitata. Il prezzo è un $0.002 forfettario per richiesta riuscita con unità item. Preferisca numeri piuttosto che stringhe di unità dentro amounts; metta le unità in names così duecentocinquanta e flour (g) restano separati e leggibili nell’array ingredients.
Consigli pratici, ricerche affini e quando usare un altro strumento
Valori quasi zero e negativi sono rifiutati di proposito perché uno stock o una riga di ricetta non positivi non definiscono una scala utile. Questa landing mira a chi cerca di scalare la ricetta dall’ingrediente disponibile, calcolatore di avanzi limitanti o scala dalla dispensa; non è un convertitore di unità, né uno stimatore nutrizionale, né lo scalatore per porzioni o moltiplicatore quando conosce già il numero di commensali. Preferisca lo scalatore di ricette fratello quando vuole fattore due per un doppio lotto, e gli strumenti da tazze a grammi quando scheda e sacchetto usano misure diverse. Mantenga sempre on_hand e la quantità di ricetta limitante nella stessa unità prima di inviare; mescolare tazze di farina con grammi di stock produce un fattore matematicamente valido ma culinariamente sbagliato. Preferisca limiting_name quando l’elenco è stabile e limiting_index quando costruisce amounts da programma senza etichette. Se più ingredienti scarseggiano, scelga il vero collo di bottiglia — la riga con il minore rapporto on_hand su quantità di ricetta — oppure esegua il calcolatore una volta per candidato e prenda il lotto scalato minimo. Le attività fallite che restituiscono invalid_input non consumano saldo prepagato, il che mantiene economici gli script esplorativi quando gli allievi inviano di proposito stock zero. I controlli andata e ritorno sono semplici: ricalcoli a mano on_hand diviso per la quantità di ricetta limitante, moltiplichi ogni riga e confermi che le voci scaled pubblicate coincidono entro l’arrotondamento a dodici decimali, incluso che il scaled della riga limitante equagli on_hand dopo l’arrotondamento.
Casi di integrazione
Finire mezza confezione di farina o zucchero
Incolli le quantità della scheda, imposti limiting_name su flour (g) e on_hand su quanto resta nel sacchetto, poi faccia la spesa o la mise en place dalla lista scalata.
Test unitari per app di cucina
Generi array scaled di riferimento e rifiuti deliberati di on_hand non positivo per test di contratto e valori attesi di coding kata.
Domande tecniche
Come funziona lo scalare una ricetta da un ingrediente a disposizione?
Fornisca amounts, on_hand per la riga scarsa e limiting_index o limiting_name. Fattore = on_hand ÷ quella quantità di ricetta; ogni riga è moltiplicata per lo stesso fattore.
Cosa succede se on_hand o una quantità di ricetta è zero o negativa?
Lo strumento restituisce invalid_input. Quantità non positive non definiscono una scala da avanzi e sono rifiutate di proposito.
Converte le tazze in grammi?
No. Mantenga unità coerenti sulla riga limitante e su on_hand, oppure converta prima con uno strumento dedicato e poi scali i numeri qui.