Document Data Cleaner avatar

Document Data Cleaner

Under maintenance

Pricing

Pay per usage

Go to Apify Store
Document Data Cleaner

Document Data Cleaner

Under maintenance

Cleans, normalizes, validates and deduplicates commercial CSV files before import into ERPs and e-commerce. Deterministic, no LLM, no external network.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Stefano Musarra

Stefano Musarra

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Microsoftware deterministico per pulire, normalizzare, validare e deduplicare file CSV commerciali prima dell'import in gestionali ed e-commerce. Nessun LLM, nessuna rete, nessuna dipendenza: solo Node.js stdlib. Primo artefatto dell'esperimento "Strada C" del Money Engine (budget 0).

Cosa fa

  • Parser CSV robusto (campi quotati, virgole e newline dentro le virgolette, quote escapate).
  • Normalizzazione automatica per colonna:
    • tutte le colonne: trim + collapse degli spazi multipli;
    • colonne email (header contenente "email"/"e-mail"/"mail"): lowercase + validazione formato;
    • colonne telefono (header contenente phone/tel/cellulare/telefono/mobile): solo cifre con eventuale "+" iniziale;
    • colonne importo (header contenente importo/prezzo/amount/price/total/totale/value/valore/costo/cost): decimale canonico con punto (accetta 1.234,56, 1234,56, 1,234.56, € 1.234,56, spazi).
  • Deduplica per colonne chiave (default: intera riga normalizzata, confronto case-insensitive), tenendo la prima occorrenza.
  • Validazione: campi obbligatori mancanti, email non valide, importi non numerici, righe con numero di campi diverso dall'header.
  • Report JSON versionato con conteggi e dettaglio per riga.

Uso

node main.js --in input.csv --out cleaned.csv
node main.js --in input.csv --out cleaned.csv --report report.json
node main.js --in input.csv --out cleaned.csv --key email --required email,name
node main.js --in input.csv --out cleaned.csv --on-invalid drop
node main.js --in - --out cleaned.csv # legge da stdin

Opzioni: --in, --out, --report, --key col1,col2, --required col1,..., --on-invalid keep|drop, --delimiter ,, --bom, --help.

Exit code: 0 elaborazione riuscita (anche con problemi segnalati), 1 errore d'uso, 2 errore di input/output.

Esempio end-to-end

node main.js --in demo/input.csv --out demo/output.csv --report demo/report.json --key email --required email,name

Limiti onesti

  • Non fa scraping, non recupera dati da fonti esterne: lavora solo su file forniti dal cliente o sintetici.
  • Non pubblica nulla e non crea account: la pubblicazione su Apify Store richiede account e approvazione esplicita di Stefano.
  • Non è ancora venduto: è un artefatto pronto e testato in locale, non un prodotto con clienti.
  • Le righe con problemi restano nell'output di default (--on-invalid keep): scelta prudente, non si buttano righe di lavoro senza ordine esplicito.

Calcolo del margine (numeri Apify verificati)

Fonti: docs.apify.com (monetizzazione Actor, pricing e costi), lette il 2026-10-19.

  • Formula verificata: utile = 0,8 × ricavi − costi piattaforma.
  • Compute unit (FREE tier): 0,20 USD / CU.
  • Modello: pay-per-event (prezzo per evento/run).
  • Gli utenti del piano free di Apify sono esclusi dal profitto (non generano ricavi per l'Actor).

Scenari IPOTETICI (i prezzi sono esempi, non previsioni né promesse; il volume reale di run a pagamento è sconosciuto):

Prezzo evento (USD)EventiRicavi lordi (USD)Quota piattaforma 20% (USD)Utile prima compute (USD)
0,011001,000,200,80
0,011.00010,002,008,00
0,051005,001,004,00
0,051.00050,0010,0040,00
0,1010010,002,008,00
0,101.000100,0020,0080,00

Il costo compute si sottrae dall'utile prima compute: con il FREE tier il costo è 0 fino al limite gratuito, poi 0,20 USD/CU. Se il costo per run supera l'80% del prezzo evento, il prodotto va fermato (stop condition del Money Engine).

Test

node test/run-tests.js

Tutti i test devono passare (exit 0). I dataset in test/datasets/ e demo/ sono sintetici: nessun dato reale di persone o clienti.