Back to Blog

How custom software actually gets priced

Pricing
September 24, 2026

Why two quotes for the same thing look nothing alike

Same request, three suppliers, three numbers, sometimes one three times the other. It's natural to assume someone is overcharging. In most cases the explanation is far more mundane: the three aren't quoting for the same thing.

One has included interface design, another assumes you'll bring your own. One has planned to migrate the data from the system you use today, the other treats it as out of scope. Some include six months of support and some bill every intervention from the day after delivery. The total, read on its own, tells you very little. What counts is what's underneath.

So the first piece of advice is also the simplest. Ask for a quote broken down into line items and compare the line items, leaving the totals alone.

Where the number comes from

Screens matter less than people think. What moves the bill is five variables.

The first is the number of different cases to handle, meaning the exceptions more than the features. "Order management" can be one linear flow, or fifteen variants depending on the type of customer, the country, the payment method and three historical rules nobody ever wrote down. From the outside the two versions look the same, and the second costs many times the first.

Then there are integrations. Every external system that data comes from or goes to is a small project of its own, with documentation to understand, credentials to obtain and behaviour you only discover once you connect. With a well-documented system we're talking hours. With an older-generation management system that exposes a proprietary file format it can turn into weeks.

The third variable is the data you already have. Bringing clean data into the new system is dull but predictable work. Twenty years of archive with duplicates, fields used in different ways over time and codes that don't add up is archaeology, and has to be estimated as such.

Who will use the software, and where, matters too. A tool for five people in an office has different requirements from one used by two hundred operators on tablets in a warehouse, and permissions, performance and tolerance of mistakes all change.

Finally, the level of polish. An internal system can have a bare-bones interface, a product for end customers can't. Both choices are legitimate. What matters is making them knowing how much they weigh.

Where the undeclared costs hide

Bad faith is rare. They're items nobody discussed that resurface once the project is under way, when negotiating is harder. These are the ones to check one by one:

  • design, which if it's missing from the quote is either something you do yourselves or something that turns up on an invoice later;
  • data migration, asking whether it's included and on what volume it was estimated;
  • changes along the way, because it needs agreeing up front what counts as a clarification and what counts as a new request, and how it gets approved;
  • the test environment, a place to try things without touching real data, which if it isn't planned either doesn't exist or is paid for separately;
  • training for the people who'll use it, because a system nobody knows how to use can't be considered delivered;
  • support after delivery, the item that varies most from one supplier to another and the one that weighs most over the following five years;
  • ownership of the code, which has to be in writing. Code, database and infrastructure access must be yours.

We include six months of support after delivery, with urgent tickets handled within 24 hours and on-call cover 7 days a week. We mention it because it's exactly the kind of item to check in any quote on your desk. Always ask what happens the day after delivery, for how long and on what terms.

Fixed price or time and materials

Both work, in different situations.

A fixed price makes sense when the scope can be defined. It gives you predictability and moves the risk onto the supplier, who prices that in by adding a safety margin. For a first project it's the right model, because trust still has to be built and you need a number to reason with.

Time and materials suits a scope that is bound to change, as in a phase of continuous development. It costs less because you're not paying for the uncertainty margin, but it needs trust and real visibility into what's being done.

The mistake to avoid is a fixed price on a scope everyone knows is vague. It ends in a contractual argument halfway through the project, which wastes both sides' time and damages the relationship.

How to make three quotes comparable

There's a method that needs no technical knowledge. Write the list of things the system has to do yourselves, in plain language and in order of importance, and send the same list to everyone. Each supplier has to reply item by item, stating what's in scope and what's out, and listing the assumptions they've made.

The assumptions are the most interesting part to read, because they show who has understood the problem. If a supplier writes "we assume customer master data arrives already de-duplicated", they've looked at your data. One who writes no assumptions at all probably hasn't thought about the project yet, and will do that thinking later, at your expense.

Finish with two questions that are the same for everyone. What happens if we change a priority halfway through? And what happens the day after delivery? The answers will show you the difference between suppliers far better than the price. A quote, in the end, is a list of things someone commits to doing, and those are what you compare.

Frequently asked questions

Why are quotes for the same software so different?

Because suppliers usually aren't quoting for the same thing. One includes design, another data migration, another six months of support. To compare them you need quotes broken down into line items, compared row by row rather than on the total.

What does the cost of custom software depend on?

Mainly on five variables: how many cases and exceptions have to be handled, integrations with other systems, the state of the data you already have, who will use the software and in what conditions, and the level of polish required. The number of screens counts for much less. Two projects that look identical from the outside can cost very different amounts.

Which hidden costs should you check in a software quote?

Design, data migration, handling of changes along the way, a test environment, training, support after delivery and ownership of the code. It's almost never bad faith, they're items nobody discussed that resurface once the project is under way. Ask about each one whether it's included.

Let's find out together if we're the right partner for your project.
A twenty-minute call, no sales pitch. We work out what you need to build, what the first technical decision is and whether it makes sense to work together.
Tell us about your project

Ultimo aggiornamento: 24 settembre 2026

1. Chi siamo

ItaliansCodeItBetter S.R.L. (di seguito "ICIB", "noi", "nostro") è il titolare del trattamento dei dati personali raccolti tramite questo sito web.

Sede legale: Via Giuseppe Frua 22, 20146 Milano (MI)
Sede operativa: Viale Sabotino 19/2, 20135 Milano (MI)
Partita IVA: 14266910968
Email: vittorio@icib.dev

2. Dati che raccogliamo

Raccogliamo i seguenti dati personali esclusivamente attraverso il modulo di contatto presente sul nostro sito:

3. Come utilizziamo i tuoi dati

I dati raccolti vengono utilizzati esclusivamente per:

Non condividiamo mai i tuoi dati con terze parti per scopi commerciali o di marketing.

4. Tracking e Meta Ads

Il nostro sito utilizza Meta Pixel (Facebook Pixel) per finalità di tracciamento e ottimizzazione delle campagne pubblicitarie su Meta (Facebook e Instagram). Il pixel resta disattivato finché non presti il tuo consenso.

Meta Pixel raccoglie informazioni sulla tua visita, incluse:

Questi dati vengono utilizzati per mostrarti annunci pertinenti sui social media e per misurare l'efficacia delle nostre campagne pubblicitarie. Puoi gestire le preferenze pubblicitarie direttamente dalle impostazioni del tuo account Meta.

5. Cookie e tecnologie di tracciamento

Non utilizziamo cookie di caching sul nostro sito web. Gli unici cookie utilizzati sono quelli tecnici necessari al funzionamento del sito e alla memorizzazione della tua scelta, e quelli necessari al funzionamento di Meta Pixel come descritto nella sezione precedente.

Puoi modificare la tua scelta in qualsiasi momento: apri le preferenze cookie.

6. Base giuridica del trattamento

7. Conservazione dei dati

I tuoi dati personali vengono conservati per il tempo strettamente necessario a fornire i servizi richiesti e, in ogni caso, per un periodo non superiore a 24 mesi dalla raccolta, salvo diversi obblighi di legge. La tua scelta sui cookie viene conservata per 12 mesi, dopodiché ti verrà richiesta nuovamente.

8. I tuoi diritti (GDPR)

In conformità con il Regolamento Generale sulla Protezione dei Dati (GDPR), hai diritto a:

Per esercitare i tuoi diritti, contattaci all'indirizzo: vittorio@icib.dev

9. Sicurezza dei dati

Adottiamo misure di sicurezza tecniche e organizzative appropriate per proteggere i tuoi dati personali da accessi non autorizzati, perdita, distruzione o alterazione. Tutte le comunicazioni con i nostri server sono protette tramite protocolli di crittografia.

10. Modifiche alla Privacy Policy

Ci riserviamo il diritto di modificare questa Privacy Policy in qualsiasi momento. Le modifiche saranno pubblicate su questa pagina con indicazione della data di ultimo aggiornamento. Ti consigliamo di consultare periodicamente questa pagina per rimanere informato su come proteggiamo i tuoi dati.

11. Contatti

Per qualsiasi domanda o richiesta riguardante questa Privacy Policy o il trattamento dei tuoi dati personali, puoi contattarci a:

Email: vittorio@icib.dev
Indirizzo: Viale Sabotino 19/2, 20135 Milano (MI)

Hai anche il diritto di presentare un reclamo all'Autorità Garante per la protezione dei dati personali se ritieni che il trattamento dei tuoi dati violi il GDPR.

Data di entrata in vigore: 17 novembre 2025

1. Accettazione dei termini

Benvenuto. Accedendo al sito e utilizzando i servizi offerti da ItaliansCodeItBetter S.R.L. (di seguito "Sito"), l'utente accetta integralmente i presenti Termini di Servizio (di seguito "Termini"). Se non si è d'accordo con i Termini, non utilizzare il Sito né i servizi ivi offerti.

2. Descrizione del servizio

Il Sito è una vetrina che presenta ItaliansCodeItBetter S.R.L., la sua realtà informatica e i servizi potenziali che l'azienda potrebbe offrire. Il Sito consente agli utenti di contattare l'azienda per richiedere ulteriori informazioni o avviare un potenziale dialogo commerciale. Non sono presenti account utente, elaborazioni di pagamenti né raccolta di dati tramite il Sito, salvo i dati forniti volontariamente dall'utente attraverso contatti diretti (posta elettronica o moduli di contatto), regolati dalla normativa privacy applicabile.

Il Sito può contenere link a pagine social e ad altre risorse esterne.

3. Account utente e registrazione

Non è previsto alcun account utente o processo di registrazione sul Sito. Qualsiasi tentativo di creare, utilizzare o accedere a un account sarà considerato non conforme ai presenti Termini. Per esigenze di contatto, utilizzare l'indirizzo email indicato in "Informazioni di contatto" o i canali ufficiali della società.

4. Politica di utilizzo accettabile

L'uso del Sito deve essere diligente e conforme alla legge. È vietato:

5. Diritti di proprietà intellettuale

Tutti i diritti di proprietà intellettuale relativi al contenuto del Sito (testi, grafica, logo, codice, video, immagini, marchi) sono di proprietà di ItaliansCodeItBetter S.R.L. o dei suoi licenziatari. È vietata qualsiasi riproduzione, distribuzione, modifica o uso non autorizzato dei contenuti del Sito senza il previo consenso scritto della società, salvo quanto espressamente previsto dai presenti Termini. L'uso lecito per fini informativi è consentito solo per consultazione personale e non commerciale, purché non venga rimosso alcun avviso di copyright o proprietà.

6. Termini di pagamento

Non applicabile. Il Sito non elabora pagamenti né offre servizi tramite transazioni online. Eventuali pagamenti o accordi economici avverranno fuori dal Sito secondo contratti separati e documentazione dedicata.

7. Contenuti generati dagli utenti

Non sono previsti contenuti generati dagli utenti sul Sito (ad es. pubblicazioni, commenti o caricamenti). Qualora l'utente comunichi contenuti o feedback tramite i canali di contatto ufficiali, tali contenuti non conferiscono all'utente diritti di proprietà sul Sito o sui processi aziendali. L'azienda potrà utilizzare tali contenuti o feedback per migliorare i propri servizi, nel rispetto della normativa applicabile e della privacy dell'utente.

8. Attività vietate

Oltre a quanto specificato nel punto 4, è vietato:

9. Risoluzione

I presenti Termini si risolvono automaticamente in caso di violazione sostanziale, senza pregiudicare diritti già maturati. In caso di violazioni sostanziali, ItaliansCodeItBetter S.R.L. si riserva il diritto di sospendere o limitare l'accesso al Sito, nonché di intraprendere eventuali azioni legali necessarie. Le obbligazioni e responsabilità maturate prima della risoluzione rimangono efficaci.

10. Disclaimer e limitazioni di responsabilità

Il Sito è fornito "così com'è" e "come disponibile". ItaliansCodeItBetter S.R.L. non garantisce che il Sito sia sempre disponibile, privo di errori o interruzioni, né garantisce l'accuratezza o la completezza delle informazioni ivi contenute. In nessun caso ItaliansCodeItBetter S.R.L. sarà responsabile per danni diretti, indiretti, incidentali, consequenziali o punitivi derivanti dall'uso o dall'impossibilità di utilizzare il Sito, inclusi (senza limitazioni) perdita di profitti, dati o opportunità. Il Sito può contenere link a servizi o contenuti di terzi: tali contenuti non sono controllati dall'azienda e non comportano alcuna responsabilità.

11. Indennizzo

L'utente si impegna a manlevare e tenere indenne ItaliansCodeItBetter S.R.L., i suoi amministratori, dipendenti e affiliati da qualsiasi reclamo, perdita, responsabilità, danno, spesa o costo (incluse le spese legali) derivante dall'uso non conforme dei Termini, dalla violazione di diritti di terzi o dall'uso improprio del Sito.

12. Legge applicabile

I presenti Termini e l'uso del Sito sono disciplinati dalla legge italiana. Per qualsiasi controversia derivante dall'uso del Sito o dai presenti Termini, sarà competente in via esclusiva il Foro di Milano, salvo diverse norme inderogabili a tutela del consumatore ove applicabili.

13. Modifiche ai termini

ItaliansCodeItBetter S.R.L. si riserva il diritto di modificare i presenti Termini in qualsiasi momento. Le modifiche entrano in vigore al momento della pubblicazione sul Sito o mediante comunicazione all'utente, se prevista. L'uso continuato del Sito dopo la pubblicazione delle modifiche costituisce accettazione delle nuove condizioni.

14. Informazioni di contatto

ItaliansCodeItBetter S.R.L.
Indirizzo: Via Giuseppe Frua 22, 20146 Milano, Lombardia, Italia
Email: vittorio@icib.dev

Note finali

Per la protezione dei dati personali si rinvia alla Privacy Policy del Sito e alle modalità di trattamento indicate nelle comunicazioni ufficiali dell'azienda. Qualsiasi contatto o richiesta inviata all'indirizzo email indicato può comportare il trattamento di dati personali secondo la normativa vigente.

Last updated: 24 September 2026

English translation for convenience. The Italian version prevails in case of discrepancy.

1. Who we are

ItaliansCodeItBetter S.R.L. (hereinafter "ICIB", "we", "our") is the data controller for the personal data collected through this website.

Registered office: Via Giuseppe Frua 22, 20146 Milano (MI)
Operational office: Viale Sabotino 19/2, 20135 Milano (MI)
VAT number: 14266910968
Email: vittorio@icib.dev

2. Data we collect

We collect the following personal data exclusively through the contact form on our website:

3. How we use your data

The data collected is used exclusively to:

We never share your data with third parties for commercial or marketing purposes.

4. Tracking and Meta Ads

Our website uses Meta Pixel (Facebook Pixel) to track and optimise advertising campaigns on Meta (Facebook and Instagram). The pixel stays disabled until you give your consent.

Meta Pixel collects information about your visit, including:

This data is used to show you relevant ads on social media and to measure the effectiveness of our advertising campaigns. You can manage your ad preferences directly from your Meta account settings.

5. Cookies and tracking technologies

We do not use caching cookies on our website. The only cookies used are the technical cookies needed for the website to work and to store your choice, and those needed for Meta Pixel to work as described in the previous section.

You can change your choice at any time: open cookie preferences.

6. Legal basis for processing

7. Data retention

Your personal data is kept only for as long as strictly necessary to provide the services requested and, in any case, for no longer than 24 months from collection, unless other legal obligations apply. Your cookie choice is kept for 12 months, after which you will be asked again.

8. Your rights (GDPR)

In accordance with the General Data Protection Regulation (GDPR), you have the right to:

To exercise your rights, contact us at: vittorio@icib.dev

9. Data security

We adopt appropriate technical and organisational security measures to protect your personal data against unauthorised access, loss, destruction or alteration. All communications with our servers are protected by encryption protocols.

10. Changes to this Privacy Policy

We reserve the right to change this Privacy Policy at any time. Changes will be published on this page together with the date of the last update. We recommend checking this page regularly to stay informed about how we protect your data.

11. Contact

For any question or request about this Privacy Policy or the processing of your personal data, you can contact us at:

Email: vittorio@icib.dev
Address: Viale Sabotino 19/2, 20135 Milano (MI)

You also have the right to lodge a complaint with the Garante per la protezione dei dati personali (the Italian Data Protection Authority) if you believe that the processing of your data infringes the GDPR.

Effective date: 17 November 2025

English translation for convenience. The Italian version prevails in case of discrepancy.

1. Acceptance of the terms

Welcome. By accessing the website and using the services offered by ItaliansCodeItBetter S.R.L. (hereinafter the "Site"), the user fully accepts these Terms of Service (hereinafter the "Terms"). If you do not agree with the Terms, do not use the Site or the services offered on it.

2. Description of the service

The Site is a showcase presenting ItaliansCodeItBetter S.R.L., its IT business and the potential services the company may offer. The Site allows users to contact the company to request further information or to start a potential business conversation. There are no user accounts, no payment processing and no data collection through the Site, except for data provided voluntarily by the user through direct contact (email or contact forms), which is governed by the applicable privacy legislation.

The Site may contain links to social media pages and other external resources.

3. User accounts and registration

The Site has no user accounts and no registration process. Any attempt to create, use or access an account will be considered a breach of these Terms. To get in touch, use the email address shown under "Contact information" or the company's official channels.

4. Acceptable use policy

The Site must be used with due care and in compliance with the law. It is forbidden to:

5. Intellectual property rights

All intellectual property rights in the content of the Site (text, graphics, logo, code, videos, images, trademarks) belong to ItaliansCodeItBetter S.R.L. or its licensors. Any reproduction, distribution, modification or unauthorised use of the Site's content without the company's prior written consent is forbidden, except as expressly provided in these Terms. Lawful use for information purposes is permitted only for personal, non-commercial consultation, provided that no copyright or ownership notice is removed.

6. Payment terms

Not applicable. The Site does not process payments or offer services through online transactions. Any payments or financial arrangements will take place outside the Site under separate contracts and dedicated documentation.

7. User-generated content

The Site does not allow user-generated content (e.g. posts, comments or uploads). If the user sends content or feedback through the official contact channels, such content does not give the user any ownership rights over the Site or the company's processes. The company may use such content or feedback to improve its services, in compliance with applicable legislation and the user's privacy.

8. Prohibited activities

In addition to what is set out in section 4, the following are forbidden:

9. Termination

These Terms terminate automatically in the event of a material breach, without prejudice to rights already accrued. In the event of material breaches, ItaliansCodeItBetter S.R.L. reserves the right to suspend or restrict access to the Site and to take any legal action necessary. Obligations and liabilities accrued before termination remain in effect.

10. Disclaimer and limitation of liability

The Site is provided "as is" and "as available". ItaliansCodeItBetter S.R.L. does not guarantee that the Site will always be available or free from errors or interruptions, nor does it guarantee the accuracy or completeness of the information it contains. In no event will ItaliansCodeItBetter S.R.L. be liable for direct, indirect, incidental, consequential or punitive damages arising from the use of, or inability to use, the Site, including (without limitation) loss of profits, data or opportunities. The Site may contain links to third-party services or content: such content is not controlled by the company and does not give rise to any liability on its part.

11. Indemnification

The user agrees to indemnify and hold harmless ItaliansCodeItBetter S.R.L., its directors, employees and affiliates from any claim, loss, liability, damage, expense or cost (including legal fees) arising from use that does not comply with the Terms, from the infringement of third-party rights or from improper use of the Site.

12. Governing law

These Terms and the use of the Site are governed by Italian law. Any dispute arising from the use of the Site or from these Terms will fall under the exclusive jurisdiction of the Court of Milan (Foro di Milano), except where mandatory consumer protection rules provide otherwise.

13. Changes to the terms

ItaliansCodeItBetter S.R.L. reserves the right to change these Terms at any time. Changes take effect when they are published on the Site or, where applicable, when they are communicated to the user. Continued use of the Site after the changes are published constitutes acceptance of the new terms.

14. Contact information

ItaliansCodeItBetter S.R.L.
Address: Via Giuseppe Frua 22, 20146 Milano, Lombardia, Italia
Email: vittorio@icib.dev

Final notes

For the protection of personal data, please refer to the Site's Privacy Policy and to the processing methods set out in the company's official communications. Any contact or request sent to the email address shown may involve the processing of personal data in accordance with the laws in force.