[{"data":1,"prerenderedAt":1252},["ShallowReactive",2],{"blog-article-en-custom-software-quote-what-it-should-include":3,"blog-related-en-custom-software-quote-what-it-should-include":932},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"seoTitle":10,"locale":7,"translationSlug":11,"date":12,"image":13,"author":14,"tags":17,"takeaways":20,"faq":27,"body":46,"_type":926,"_id":927,"_source":928,"_file":929,"_stem":930,"_extension":931},"/blog/custom-software-quote-what-it-should-include","blog",false,"en","What a Custom Software Quote Should Include: A Line-by-Line Example","The line items a custom software quote should break down, a line-by-line example, the costs left out and the warning signs to check before signing.","Custom software quote: what it should include","orcamento-software-medida-o-que-deve-incluir","2026-11-14","/images/blog/orcamento-software-medida.jpg",{"name":15,"role":16},"Pedro Santos","Principal Software Architect",[18,19],"Costs & Decision","Custom Software",[21,22,23,24,25,26],"A serious custom software quote separates at least eight line items: discovery and design, development by module, integrations, data migration, testing, training and go-live, support after delivery, and recurring costs.","Development is usually the largest share, but not the only one. When a quote has a single line with the total, there is no way to know what is included or to compare it with another proposal.","Recurring costs (hosting, third-party licences, maintenance after the included period) must be written down separately, even when they are not paid to the supplier.","A fixed price is only possible with a fixed scope. A time-and-materials proposal is not necessarily worse, but it moves the risk of overruns onto whoever pays.","A company that arrives with a working prototype built with ChatGPT, Claude, Gemini or similar tools has already done part of the discovery and design. That part shrinks in the quote, and the project costs less and moves faster than starting from scratch.","A first module of custom management software typically falls between €15,000 and €30,000, and a complete management system between €30,000 and €60,000.",[28,31,34,37,40,43],{"q":29,"a":30},"What should a custom software quote include?","At a minimum: discovery and system design, development split by module, integrations with the systems the company already uses, data migration, testing, training and go-live, the included support period and an estimate of recurring costs. Each line item should state what is in and what is out.",{"q":32,"a":33},"How much does custom software cost in Portugal?","A first module of custom management software typically falls between €15,000 and €30,000. A management system with several modules sits between €30,000 and €60,000, and a core business platform starts at €60,000. The exact figure depends mostly on the number of integrations and how many process rules the system has to handle.",{"q":35,"a":36},"Does a prototype built with ChatGPT, Claude or Gemini lower the price of custom software?","Usually, yes. A working prototype shows the screens, data and rules the company wants, so discovery and design get shorter and there is less room for misunderstanding. What the prototype does not bring (user accounts, real data, the ERP connection, backups and testing) stays in the quote. Taking a first version of a prototype to production typically costs between €7,500 and €15,000.",{"q":38,"a":39},"Is a fixed-price quote better than time and materials?","With a fixed price, the supplier carries the risk of the work taking longer than planned, as long as the scope does not change. With time and materials, that risk sits with whoever pays. A fixed price requires more careful discovery before the proposal, which is why it is almost never given in the first meeting.",{"q":41,"a":42},"Which costs do not show up in a software quote?","The most often forgotten are monthly hosting, third-party service licences (email sending, maps, digital signatures, AI models), maintenance after the included support period and changes requested outside the agreed scope. A good quote lists them, even when some are paid directly to other companies.",{"q":44,"a":45},"How is a custom software project usually paid?","In milestones tied to deliveries. A common split is 30% at kick-off, 40% halfway and 30% on final delivery, and on larger projects the milestones follow the partial deliveries. Be wary of requests for full payment before you have seen anything working.",{"type":47,"children":48,"toc":911},"root",[49,57,62,69,74,119,133,139,313,318,324,329,557,570,576,589,594,599,604,628,648,653,659,664,714,719,725,737,749,754,760,772,778,844,850,855,875,888,894,899],{"type":50,"tag":51,"props":52,"children":53},"element","p",{},[54],{"type":55,"value":56},"text","Anyone requesting software quotes for the first time tends to receive very\ndifferent documents for the same request: one with a single line and a figure,\nanother with twenty pages of technology and no price per item, a third with\nestimated hours nobody knows will be enough. Comparing them like that is close\nto impossible.",{"type":50,"tag":51,"props":58,"children":59},{},[60],{"type":55,"value":61},"This article shows what a custom software quote should break down, with a\nline-by-line example, so you can read any proposal, ours or someone else's, and\nunderstand what you are actually buying.",{"type":50,"tag":63,"props":64,"children":66},"h2",{"id":65},"short-answer",[67],{"type":55,"value":68},"Short answer",{"type":50,"tag":51,"props":70,"children":71},{},[72],{"type":55,"value":73},"A custom software quote should separate at least these line items:",{"type":50,"tag":75,"props":76,"children":77},"ol",{},[78,84,89,94,99,104,109,114],{"type":50,"tag":79,"props":80,"children":81},"li",{},[82],{"type":55,"value":83},"Discovery and system design",{"type":50,"tag":79,"props":85,"children":86},{},[87],{"type":55,"value":88},"Development, split by module",{"type":50,"tag":79,"props":90,"children":91},{},[92],{"type":55,"value":93},"Integrations with the systems the company already uses",{"type":50,"tag":79,"props":95,"children":96},{},[97],{"type":55,"value":98},"Data migration",{"type":50,"tag":79,"props":100,"children":101},{},[102],{"type":55,"value":103},"Testing",{"type":50,"tag":79,"props":105,"children":106},{},[107],{"type":55,"value":108},"Training and go-live",{"type":50,"tag":79,"props":110,"children":111},{},[112],{"type":55,"value":113},"Support included after delivery",{"type":50,"tag":79,"props":115,"children":116},{},[117],{"type":55,"value":118},"Recurring costs, including those not paid to the supplier",{"type":50,"tag":51,"props":120,"children":121},{},[122,124,131],{"type":55,"value":123},"And for each one it should say what is left out. In figures, a\n",{"type":50,"tag":125,"props":126,"children":128},"a",{"href":127},"/en/solucoes/software-gestao-medida",[129],{"type":55,"value":130},"first module of custom management software",{"type":55,"value":132},"\ntypically falls between €15,000 and €30,000, a management system with several\nmodules between €30,000 and €60,000, and a core business platform from €60,000.\nIf the company already has a working prototype built with AI, discovery and\ndesign shrink and the figure comes down, as we explain further below.",{"type":50,"tag":63,"props":134,"children":136},{"id":135},"the-line-items-one-by-one",[137],{"type":55,"value":138},"The line items, one by one",{"type":50,"tag":140,"props":141,"children":142},"table",{},[143,167],{"type":50,"tag":144,"props":145,"children":146},"thead",{},[147],{"type":50,"tag":148,"props":149,"children":150},"tr",{},[151,157,162],{"type":50,"tag":152,"props":153,"children":154},"th",{},[155],{"type":55,"value":156},"Line item",{"type":50,"tag":152,"props":158,"children":159},{},[160],{"type":55,"value":161},"What it should include",{"type":50,"tag":152,"props":163,"children":164},{},[165],{"type":55,"value":166},"What to ask",{"type":50,"tag":168,"props":169,"children":170},"tbody",{},[171,190,208,226,243,260,277,295],{"type":50,"tag":148,"props":172,"children":173},{},[174,180,185],{"type":50,"tag":175,"props":176,"children":177},"td",{},[178],{"type":55,"value":179},"Discovery and design",{"type":50,"tag":175,"props":181,"children":182},{},[183],{"type":55,"value":184},"Conversations with the people who run the process, a map of rules and exceptions, screens designed and approved before coding",{"type":50,"tag":175,"props":186,"children":187},{},[188],{"type":55,"value":189},"Will I see and approve the screens before you start building?",{"type":50,"tag":148,"props":191,"children":192},{},[193,198,203],{"type":50,"tag":175,"props":194,"children":195},{},[196],{"type":55,"value":197},"Development by module",{"type":50,"tag":175,"props":199,"children":200},{},[201],{"type":55,"value":202},"Each module with what it does, for example \"orders\", \"invoicing\", \"customer area\"",{"type":50,"tag":175,"props":204,"children":205},{},[206],{"type":55,"value":207},"What happens if a module grows halfway through?",{"type":50,"tag":148,"props":209,"children":210},{},[211,216,221],{"type":50,"tag":175,"props":212,"children":213},{},[214],{"type":55,"value":215},"Integrations",{"type":50,"tag":175,"props":217,"children":218},{},[219],{"type":55,"value":220},"Each connected system (ERP, invoicing, email, portals) and which way the data flows",{"type":50,"tag":175,"props":222,"children":223},{},[224],{"type":55,"value":225},"Does the old system have a ready-made connection, or do you need to work on its database?",{"type":50,"tag":148,"props":227,"children":228},{},[229,233,238],{"type":50,"tag":175,"props":230,"children":231},{},[232],{"type":55,"value":98},{"type":50,"tag":175,"props":234,"children":235},{},[236],{"type":55,"value":237},"Which data moves, from where, how many years of history, who cleans up duplicates",{"type":50,"tag":175,"props":239,"children":240},{},[241],{"type":55,"value":242},"Who checks that the data arrived correctly?",{"type":50,"tag":148,"props":244,"children":245},{},[246,250,255],{"type":50,"tag":175,"props":247,"children":248},{},[249],{"type":55,"value":103},{"type":50,"tag":175,"props":251,"children":252},{},[253],{"type":55,"value":254},"Tests with real business cases, not just sample data",{"type":50,"tag":175,"props":256,"children":257},{},[258],{"type":55,"value":259},"What data will you test with?",{"type":50,"tag":148,"props":261,"children":262},{},[263,267,272],{"type":50,"tag":175,"props":264,"children":265},{},[266],{"type":55,"value":108},{"type":50,"tag":175,"props":268,"children":269},{},[270],{"type":55,"value":271},"Sessions with the team, a period where the new and old systems run side by side",{"type":50,"tag":175,"props":273,"children":274},{},[275],{"type":55,"value":276},"How long will you support the team in the first weeks?",{"type":50,"tag":148,"props":278,"children":279},{},[280,285,290],{"type":50,"tag":175,"props":281,"children":282},{},[283],{"type":55,"value":284},"Included support",{"type":50,"tag":175,"props":286,"children":287},{},[288],{"type":55,"value":289},"Duration, what it covers (bugs, questions) and what it does not (new features)",{"type":50,"tag":175,"props":291,"children":292},{},[293],{"type":55,"value":294},"What does it cost once the included period ends?",{"type":50,"tag":148,"props":296,"children":297},{},[298,303,308],{"type":50,"tag":175,"props":299,"children":300},{},[301],{"type":55,"value":302},"Recurring costs",{"type":50,"tag":175,"props":304,"children":305},{},[306],{"type":55,"value":307},"Hosting, third-party licences, maintenance",{"type":50,"tag":175,"props":309,"children":310},{},[311],{"type":55,"value":312},"Whose name are the hosting accounts in?",{"type":50,"tag":51,"props":314,"children":315},{},[316],{"type":55,"value":317},"Notice that none of these items is about technology. The programming language\nand the database matter to the team building it. What matters to you is what\nthe system does, what it connects to and what happens when something goes\nwrong.",{"type":50,"tag":63,"props":319,"children":321},{"id":320},"a-line-by-line-example",[322],{"type":55,"value":323},"A line-by-line example",{"type":50,"tag":51,"props":325,"children":326},{},[327],{"type":55,"value":328},"To make this concrete, here is an illustrative quote for a distribution company\nthat wants to replace its order spreadsheets with a first custom module,\nconnected to the invoicing program it already uses. The figures are an example\nwithin the ranges we publish, not a real proposal.",{"type":50,"tag":140,"props":330,"children":331},{},[332,352],{"type":50,"tag":144,"props":333,"children":334},{},[335],{"type":50,"tag":148,"props":336,"children":337},{},[338,342,347],{"type":50,"tag":152,"props":339,"children":340},{},[341],{"type":55,"value":156},{"type":50,"tag":152,"props":343,"children":344},{},[345],{"type":55,"value":346},"Detail",{"type":50,"tag":152,"props":348,"children":349},{},[350],{"type":55,"value":351},"Amount",{"type":50,"tag":168,"props":353,"children":354},{},[355,372,390,408,425,442,459,476,504,521,539],{"type":50,"tag":148,"props":356,"children":357},{},[358,362,367],{"type":50,"tag":175,"props":359,"children":360},{},[361],{"type":55,"value":179},{"type":50,"tag":175,"props":363,"children":364},{},[365],{"type":55,"value":366},"2 weeks: interviews with sales and warehouse, per-customer pricing rules, approved screens",{"type":50,"tag":175,"props":368,"children":369},{},[370],{"type":55,"value":371},"€3,000",{"type":50,"tag":148,"props":373,"children":374},{},[375,380,385],{"type":50,"tag":175,"props":376,"children":377},{},[378],{"type":55,"value":379},"Orders module",{"type":50,"tag":175,"props":381,"children":382},{},[383],{"type":55,"value":384},"Order entry, statuses, per-customer prices and discounts, stock alerts",{"type":50,"tag":175,"props":386,"children":387},{},[388],{"type":55,"value":389},"€9,500",{"type":50,"tag":148,"props":391,"children":392},{},[393,398,403],{"type":50,"tag":175,"props":394,"children":395},{},[396],{"type":55,"value":397},"Customer area",{"type":50,"tag":175,"props":399,"children":400},{},[401],{"type":55,"value":402},"Customers check orders and invoices and repeat past orders",{"type":50,"tag":175,"props":404,"children":405},{},[406],{"type":55,"value":407},"€4,500",{"type":50,"tag":148,"props":409,"children":410},{},[411,416,421],{"type":50,"tag":175,"props":412,"children":413},{},[414],{"type":55,"value":415},"Invoicing integration",{"type":50,"tag":175,"props":417,"children":418},{},[419],{"type":55,"value":420},"Approved orders sent to invoicing, payment status read back",{"type":50,"tag":175,"props":422,"children":423},{},[424],{"type":55,"value":371},{"type":50,"tag":148,"props":426,"children":427},{},[428,432,437],{"type":50,"tag":175,"props":429,"children":430},{},[431],{"type":55,"value":98},{"type":50,"tag":175,"props":433,"children":434},{},[435],{"type":55,"value":436},"Customers, products and 2 years of orders from the current spreadsheets",{"type":50,"tag":175,"props":438,"children":439},{},[440],{"type":55,"value":441},"€1,500",{"type":50,"tag":148,"props":443,"children":444},{},[445,450,455],{"type":50,"tag":175,"props":446,"children":447},{},[448],{"type":55,"value":449},"Testing with real cases",{"type":50,"tag":175,"props":451,"children":452},{},[453],{"type":55,"value":454},"Last month's real orders replayed in the new system",{"type":50,"tag":175,"props":456,"children":457},{},[458],{"type":55,"value":441},{"type":50,"tag":148,"props":460,"children":461},{},[462,466,471],{"type":50,"tag":175,"props":463,"children":464},{},[465],{"type":55,"value":108},{"type":50,"tag":175,"props":467,"children":468},{},[469],{"type":55,"value":470},"3 sessions and 2 weeks with both systems running in parallel",{"type":50,"tag":175,"props":472,"children":473},{},[474],{"type":55,"value":475},"€1,000",{"type":50,"tag":148,"props":477,"children":478},{},[479,488,496],{"type":50,"tag":175,"props":480,"children":481},{},[482],{"type":50,"tag":483,"props":484,"children":485},"strong",{},[486],{"type":55,"value":487},"Project total",{"type":50,"tag":175,"props":489,"children":490},{},[491],{"type":50,"tag":483,"props":492,"children":493},{},[494],{"type":55,"value":495},"Fixed price, paid in three milestones",{"type":50,"tag":175,"props":497,"children":498},{},[499],{"type":50,"tag":483,"props":500,"children":501},{},[502],{"type":55,"value":503},"€24,000",{"type":50,"tag":148,"props":505,"children":506},{},[507,511,516],{"type":50,"tag":175,"props":508,"children":509},{},[510],{"type":55,"value":284},{"type":50,"tag":175,"props":512,"children":513},{},[514],{"type":55,"value":515},"3 months after delivery",{"type":50,"tag":175,"props":517,"children":518},{},[519],{"type":55,"value":520},"Included",{"type":50,"tag":148,"props":522,"children":523},{},[524,529,534],{"type":50,"tag":175,"props":525,"children":526},{},[527],{"type":55,"value":528},"Hosting",{"type":50,"tag":175,"props":530,"children":531},{},[532],{"type":55,"value":533},"Company's own account, in the European Union",{"type":50,"tag":175,"props":535,"children":536},{},[537],{"type":55,"value":538},"€50 to €150 per month, estimate",{"type":50,"tag":148,"props":540,"children":541},{},[542,547,552],{"type":50,"tag":175,"props":543,"children":544},{},[545],{"type":55,"value":546},"Maintenance after support",{"type":50,"tag":175,"props":548,"children":549},{},[550],{"type":55,"value":551},"Fixes, security updates, small improvements",{"type":50,"tag":175,"props":553,"children":554},{},[555],{"type":55,"value":556},"Optional, quoted separately",{"type":50,"tag":51,"props":558,"children":559},{},[560,562,568],{"type":55,"value":561},"Three things to take from this example. Development is the largest part, but\nfar from all of it: discovery, integration, migration, testing and go-live add\nup to almost half. The integration has its own line, because that is where most\nprojects overrun, especially when the other side is an\n",{"type":50,"tag":125,"props":563,"children":565},{"href":564},"/en/blog/modernise-legacy-software-without-stopping-operations",[566],{"type":55,"value":567},"old system nobody wants to touch",{"type":55,"value":569},".\nAnd the monthly costs are written down, even though hosting is paid directly to\nthe cloud provider.",{"type":50,"tag":63,"props":571,"children":573},{"id":572},"what-if-you-already-have-a-prototype-built-with-ai",[574],{"type":55,"value":575},"What if you already have a prototype built with AI?",{"type":50,"tag":51,"props":577,"children":578},{},[579,581,587],{"type":55,"value":580},"More and more companies arrive at the first conversation with an application\nalready working. Someone on the team opened ChatGPT, Claude, Gemini, Lovable or\nCursor and, after a few afternoons, has an order log, a customer portal or a\ndashboard that brings together numbers that used to live in five spreadsheets.\nIt is not ready for the whole company to use, but\n",{"type":50,"tag":125,"props":582,"children":584},{"href":583},"/en/blog/ai-prototype-to-production",[585],{"type":55,"value":586},"the prototype is not wrong, it is incomplete",{"type":55,"value":588},".",{"type":50,"tag":51,"props":590,"children":591},{},[592],{"type":55,"value":593},"For the quote, this is good news. The prototype answers a good share of the\nquestions discovery exists to answer: which screens are needed, what data is\nkept, which rules and exceptions the process has. Whoever built it already\nknows what they want, and you can see it working rather than read it in a\ndocument. The result is that the discovery and design line shrinks, there is\nless risk of misunderstandings halfway through, and some of the screens and\nrules can be reused in development.",{"type":50,"tag":51,"props":595,"children":596},{},[597],{"type":55,"value":598},"In the example above, a company that brought the order log already designed in\na prototype could see discovery drop from €3,000 to around half, and the orders\nmodule cost less because it starts from screens and rules that have already\nbeen validated. The figures are still illustrative, but the logic is this: you\npay less for the part the client has already done.",{"type":50,"tag":51,"props":600,"children":601},{},[602],{"type":55,"value":603},"What the prototype does not remove are the line items no prototype brings,\nbecause it was not built for that:",{"type":50,"tag":605,"props":606,"children":607},"ul",{},[608,613,618,623],{"type":50,"tag":79,"props":609,"children":610},{},[611],{"type":55,"value":612},"individual user accounts, where each person only sees what they are allowed\nto;",{"type":50,"tag":79,"props":614,"children":615},{},[616],{"type":55,"value":617},"real data in a proper database, with tested backups;",{"type":50,"tag":79,"props":619,"children":620},{},[621],{"type":55,"value":622},"the connection to the ERP, invoicing or CRM;",{"type":50,"tag":79,"props":624,"children":625},{},[626],{"type":55,"value":627},"testing with real cases and a record of what happened when someone says\nsomething went wrong.",{"type":50,"tag":51,"props":629,"children":630},{},[631,633,638,640,646],{"type":55,"value":632},"So a good quote for someone who brings a prototype has one extra line: ",{"type":50,"tag":483,"props":634,"children":635},{},[636],{"type":55,"value":637},"what\nis reused and what is rebuilt",{"type":55,"value":639},". It should say which screens, data and rules\ncarry over into the final system and what has to be built anew. For a defined\nscope, taking\n",{"type":50,"tag":125,"props":641,"children":643},{"href":642},"/en/solucoes/aplicacoes-feitas-com-ia-em-producao",[644],{"type":55,"value":645},"an AI-built application to production",{"type":55,"value":647},"\ntypically costs between €7,500 and €15,000 for a first version.",{"type":50,"tag":51,"props":649,"children":650},{},[651],{"type":55,"value":652},"If you have a prototype, you do not need to tidy it up before asking for a\nquote. A link, a two-minute screen recording or a few screenshots are enough\nfor the first conversation.",{"type":50,"tag":63,"props":654,"children":656},{"id":655},"what-is-left-out-and-should-be-written-down",[657],{"type":55,"value":658},"What is left out, and should be written down",{"type":50,"tag":51,"props":660,"children":661},{},[662],{"type":55,"value":663},"The costs that surprise people most after signing are almost always the same:",{"type":50,"tag":605,"props":665,"children":666},{},[667,677,694,704],{"type":50,"tag":79,"props":668,"children":669},{},[670,675],{"type":50,"tag":483,"props":671,"children":672},{},[673],{"type":55,"value":674},"Hosting:",{"type":55,"value":676}," servers, database and backups. For a mid-sized management system\nit typically runs from a few tens to a few hundred euros per month.",{"type":50,"tag":79,"props":678,"children":679},{},[680,685,687,693],{"type":50,"tag":483,"props":681,"children":682},{},[683],{"type":55,"value":684},"Third-party licences:",{"type":55,"value":686}," email and SMS sending, maps, digital signatures, AI\nmodels. They are pay-as-you-go and grow with volume. If the system uses AI,\nsee ",{"type":50,"tag":125,"props":688,"children":690},{"href":689},"/en/blog/how-much-ai-costs-company-portugal",[691],{"type":55,"value":692},"how much it costs to keep AI running in a company",{"type":55,"value":588},{"type":50,"tag":79,"props":695,"children":696},{},[697,702],{"type":50,"tag":483,"props":698,"children":699},{},[700],{"type":55,"value":701},"Maintenance after the included period:",{"type":55,"value":703}," security updates and fixes are\nstill needed, even if nobody asks for anything new.",{"type":50,"tag":79,"props":705,"children":706},{},[707,712],{"type":50,"tag":483,"props":708,"children":709},{},[710],{"type":55,"value":711},"Out-of-scope changes:",{"type":55,"value":713}," whatever is discovered halfway and was not in\ndiscovery. A good quote says how they are handled and at what price.",{"type":50,"tag":51,"props":715,"children":716},{},[717],{"type":55,"value":718},"If the proposal mentions none of these, it does not mean they do not exist. It\nmeans you will find out about them later.",{"type":50,"tag":63,"props":720,"children":722},{"id":721},"fixed-price-or-time-and-materials",[723],{"type":55,"value":724},"Fixed price or time and materials",{"type":50,"tag":51,"props":726,"children":727},{},[728,730,735],{"type":55,"value":729},"With a ",{"type":50,"tag":483,"props":731,"children":732},{},[733],{"type":55,"value":734},"fixed price",{"type":55,"value":736},", the builder carries the risk of the work taking longer\nthan planned, as long as the scope does not change. To do that they need to\nunderstand the process well before giving a figure, which is why a serious\nfixed price almost never appears in the first meeting.",{"type":50,"tag":51,"props":738,"children":739},{},[740,742,747],{"type":55,"value":741},"With ",{"type":50,"tag":483,"props":743,"children":744},{},[745],{"type":55,"value":746},"time and materials",{"type":55,"value":748},", you pay for the time actually spent. It can make\nsense when the problem is not yet clear, but the risk of overruns moves to your\nside. If that is the model, ask for a cap and for hour reports per line item.",{"type":50,"tag":51,"props":750,"children":751},{},[752],{"type":55,"value":753},"In our projects the price is fixed and does not change along the way. When\nsomething new comes up, it moves to a later phase or goes in at a price agreed\nbefore the work is done.",{"type":50,"tag":63,"props":755,"children":757},{"id":756},"how-payment-works",[758],{"type":55,"value":759},"How payment works",{"type":50,"tag":51,"props":761,"children":762},{},[763,765,770],{"type":55,"value":764},"The most common approach is to pay in milestones tied to deliveries, not dates.\nA usual split is ",{"type":50,"tag":483,"props":766,"children":767},{},[768],{"type":55,"value":769},"30% at kick-off, 40% halfway and 30% on final delivery",{"type":55,"value":771},", and\non larger projects the milestones follow the partial deliveries. That way each\npayment matches something you have already seen working.",{"type":50,"tag":63,"props":773,"children":775},{"id":774},"warning-signs-before-signing",[776],{"type":55,"value":777},"Warning signs before signing",{"type":50,"tag":605,"props":779,"children":780},{},[781,791,801,818,826],{"type":50,"tag":79,"props":782,"children":783},{},[784,789],{"type":50,"tag":483,"props":785,"children":786},{},[787],{"type":55,"value":788},"A single line with the total.",{"type":55,"value":790}," There is no way to compare or to negotiate\nscope.",{"type":50,"tag":79,"props":792,"children":793},{},[794,799],{"type":50,"tag":483,"props":795,"children":796},{},[797],{"type":55,"value":798},"No integrations line",{"type":55,"value":800}," when the system has to talk to the ERP or invoicing.\nEither the work has not been understood yet, or it will show up later.",{"type":50,"tag":79,"props":802,"children":803},{},[804,809,811,817],{"type":50,"tag":483,"props":805,"children":806},{},[807],{"type":55,"value":808},"Nothing about who owns the code, the hosting and the data.",{"type":55,"value":810}," They should be\nin your company's name, with documentation, so you can change supplier\nwithout renegotiating anything. There are more questions like these in\n",{"type":50,"tag":125,"props":812,"children":814},{"href":813},"/en/blog/how-to-choose-an-ai-agent-partner",[815],{"type":55,"value":816},"how to choose who builds your company's systems",{"type":55,"value":588},{"type":50,"tag":79,"props":819,"children":820},{},[821],{"type":50,"tag":483,"props":822,"children":823},{},[824],{"type":55,"value":825},"Full payment before seeing anything working.",{"type":50,"tag":79,"props":827,"children":828},{},[829,834,836,842],{"type":50,"tag":483,"props":830,"children":831},{},[832],{"type":55,"value":833},"A deadline with no phases.",{"type":55,"value":835}," Custom management software projects typically\ntake between 8 and 16 weeks. See\n",{"type":50,"tag":125,"props":837,"children":839},{"href":838},"/en/blog/how-long-a-custom-software-project-takes",[840],{"type":55,"value":841},"how long a custom software project takes",{"type":55,"value":843},"\nto understand what is reasonable for your case.",{"type":50,"tag":63,"props":845,"children":847},{"id":846},"how-to-compare-two-quotes",[848],{"type":55,"value":849},"How to compare two quotes",{"type":50,"tag":51,"props":851,"children":852},{},[853],{"type":55,"value":854},"Put the proposals side by side against the eight line items above and mark, for\neach one, what is included, what is excluded and what is not even mentioned.\nThe cheapest proposal is often the one with the most blank lines. Then add\nthree years of recurring costs to each: that is the figure you will actually\npay.",{"type":50,"tag":51,"props":856,"children":857},{},[858,860,866,868,874],{"type":55,"value":859},"If one of the alternatives is a monthly licence rather than custom software,\nthe calculation changes shape, because the cost grows with the number of\nusers. We compare the two paths in\n",{"type":50,"tag":125,"props":861,"children":863},{"href":862},"/en/blog/custom-crm-vs-salesforce",[864],{"type":55,"value":865},"custom CRM or Salesforce",{"type":55,"value":867}," and in\n",{"type":50,"tag":125,"props":869,"children":871},{"href":870},"/en/blog/custom-erp-crm-vs-primavera-phc-sap",[872],{"type":55,"value":873},"custom ERP or Primavera, PHC and SAP",{"type":55,"value":588},{"type":50,"tag":51,"props":876,"children":877},{},[878,880,886],{"type":55,"value":879},"If you want a price reference by project type, the\n",{"type":50,"tag":125,"props":881,"children":883},{"href":882},"/en/guia-custos-software",[884],{"type":55,"value":885},"custom software cost guide",{"type":55,"value":887}," has the ranges for CRM,\nERP, portals and automation, plus a simple calculation to compare against a\nmonthly licence.",{"type":50,"tag":63,"props":889,"children":891},{"id":890},"how-we-do-it",[892],{"type":55,"value":893},"How we do it",{"type":50,"tag":51,"props":895,"children":896},{},[897],{"type":55,"value":898},"Before any figure, there is a 30-minute conversation to understand the\noperation, the systems you use and where time is being lost. If it makes sense\nto go ahead, within 1 to 2 weeks you receive a proposal with the scope, the\ntimeline and a fixed price, broken down by these line items. If you already\nhave a prototype, bring it: the proposal states what is reused and how much\nthat takes off the price. If the numbers do not add up, we tell you in that\nsame conversation.",{"type":50,"tag":51,"props":900,"children":901},{},[902,904,910],{"type":55,"value":903},"The diagnosis is free and does not commit you to anything.\n",{"type":50,"tag":125,"props":905,"children":907},{"href":906},"/en/contacto",[908],{"type":55,"value":909},"Request yours here",{"type":55,"value":588},{"title":912,"searchDepth":913,"depth":913,"links":914},"",3,[915,917,918,919,920,921,922,923,924,925],{"id":65,"depth":916,"text":68},2,{"id":135,"depth":916,"text":138},{"id":320,"depth":916,"text":323},{"id":572,"depth":916,"text":575},{"id":655,"depth":916,"text":658},{"id":721,"depth":916,"text":724},{"id":756,"depth":916,"text":759},{"id":774,"depth":916,"text":777},{"id":846,"depth":916,"text":849},{"id":890,"depth":916,"text":893},"markdown","content:en:blog:custom-software-quote-what-it-should-include.md","content","en/blog/custom-software-quote-what-it-should-include.md","en/blog/custom-software-quote-what-it-should-include","md",[933,942,951,959,968,976,983,990,999,1006,1013,1020,1028,1035,1042,1050,1056,1062,1069,1076,1083,1090,1096,1104,1110,1117,1124,1131,1139,1147,1154,1161,1167,1174,1181,1188,1194,1202,1209,1216,1223,1230,1237,1245],{"_path":934,"title":935,"description":936,"date":937,"image":938,"tags":939},"/blog/real-estate-crm-software-portugal-how-to-choose","Real Estate CRM Software in Portugal: How to Choose the Right One for Your Agency","Portals, listings, viewings, commissions and IMPIC obligations: what a real estate CRM has to handle in Portugal and when a custom-built one pays off.","2026-11-09","/images/blog/crm-imobiliario-portugal.jpg",[940,941,19],"Real Estate","CRM",{"_path":943,"title":944,"description":945,"date":946,"image":947,"tags":948},"/blog/is-your-company-data-ready-for-ai","Is Your Company Data Ready for AI? How to Tell Before You Invest","What each type of AI project asks of your data, an eight-question self-assessment, and why you do not need a data lake before your first AI project.","2026-10-29","/images/blog/dados-prontos-ia.jpg",[949,950,18,19],"Artificial Intelligence","Business Intelligence",{"_path":952,"title":953,"description":954,"date":955,"image":956,"tags":957},"/blog/ai-cash-flow-treasury-forecasting","Cash Flow Forecasting: Stop Running Treasury on Bank Statements and a Friday Spreadsheet","Consolidated multi-bank position, automatic reconciliation and a 13-week cash flow forecast. Where AI genuinely helps and where simple statistics are enough.","2026-10-24","/images/blog/previsao-tesouraria.jpg",[950,949,958,18],"Automation",{"_path":960,"title":961,"description":962,"date":963,"image":964,"tags":965},"/blog/ai-clinical-documentation-consultations","AI for Clinical Documentation: Fewer Hours Writing, Without Losing Control of the Note","How AI transcribes and summarises consultations, drafts letters and writes into clinical software, with the clinician signing off. GDPR, MDR and costs.","2026-10-19","/images/blog/ia-documentacao-clinica.jpg",[966,949,967],"Healthcare","Compliance",{"_path":969,"title":970,"description":971,"date":972,"image":973,"tags":974},"/blog/fleet-rent-a-car-management-software-ai","Custom Rent-a-Car Software: Real Fleet Status, AI Inspections and Dynamic Pricing","Real availability, inspection photos compared by AI, fines passed to the renter on time and occupancy-based pricing: what a rent-a-car operation needs.","2026-10-14","/images/blog/frotas-rent-a-car.jpg",[975,19,949],"Logistics",{"_path":977,"title":978,"description":979,"date":980,"image":981,"tags":982},"/blog/ai-recruitment-hr-ai-act-high-risk","AI in Recruitment and HR: What to Automate and What the AI Act Treats as High Risk","What AI can safely do in HR, what the AI Act classifies as high risk in recruitment, and how to design systems that support decisions without making them.","2026-10-08","/images/blog/ia-recrutamento-rh.jpg",[949,967,958,19],{"_path":984,"title":985,"description":986,"date":987,"image":988,"tags":989},"/blog/field-service-management-software-technical-teams","Software for Field Technical Teams: From the Call to the Invoice Without Paper","Work orders, an offline app, parts in the van, contracts with SLAs and an invoice at close-out: what a system for field technicians really has to solve.","2026-10-03","/images/blog/equipas-tecnicas-terreno.jpg",[19,958,949],{"_path":991,"title":992,"description":993,"date":994,"image":995,"tags":996},"/blog/custom-erp-wholesale-distribution","Custom ERP for Wholesalers and Distributors: Where the Margin Goes","Customer pricing, volume rebates, WhatsApp orders and credit limits: where an off-the-shelf ERP fails a wholesaler, where AI helps and what custom costs.","2026-09-26","/images/blog/erp-distribuicao-grossista.jpg",[975,997,19,998],"ERP","B2B Sales",{"_path":1000,"title":1001,"description":1002,"date":1003,"image":1004,"tags":1005},"/blog/ai-document-processing-invoices-orders","Invoices, Purchase Orders and Delivery Notes in PDF: How AI Reads Them and Posts Them to the ERP Without Silent Errors","How AI reads supplier invoices, purchase orders and delivery notes from email, checks them against the ERP and leaves only exceptions to your team.","2026-09-19","/images/blog/ia-processamento-documentos.jpg",[958,949,997,18],{"_path":1007,"title":1008,"description":1009,"date":1010,"image":1011,"tags":1012},"/blog/modernise-legacy-software-without-stopping-operations","The Old System Nobody Wants to Touch: How to Modernise It Without Stopping Operations","Access, Visual Basic, Delphi or a 15-year-old ERP: how to replace old software one module at a time, migrate data in parallel and keep the business running.","2026-09-12","/images/blog/modernizar-software-legado.jpg",[19,997,18],{"_path":1014,"title":1015,"description":1016,"date":1017,"image":1018,"tags":1019},"/blog/ai-prototype-to-production","Your Team Built an AI Prototype. What It Takes to Get to Production","More and more teams build applications with ChatGPT, Codex or Claude Code. What changes when that software has to be secure, reliable and able to scale to production.","2026-09-05","/images/blog/ai-prototype-to-production.jpg",[19,949,967,18],{"_path":1021,"title":1022,"description":1023,"date":1024,"image":1025,"tags":1026},"/blog/integrate-ai-business-processes-digital-brain","How to Integrate AI into Business Processes Without Adding Another Isolated Tool","Learn how a Digital Brain connects documents, ERP, CRM and email to turn AI into real work, with security, control and measurable return.","2026-08-26","/images/blog/cerebro-digital.jpg",[949,1027,958,18],"AI Agents",{"_path":1029,"title":1030,"description":1031,"date":1032,"image":1033,"tags":1034},"/blog/how-long-a-custom-software-project-takes","How Long a Custom Software or AI Project Actually Takes","Real timelines by project type, what happens inside each phase, and the four things on the client side that delay projects more than any technical decision.","2026-08-22","/images/blog/prazos-projeto-software-medida.jpg",[18,19,949,958],{"_path":1036,"title":1037,"description":1038,"date":1039,"image":1040,"tags":1041},"/blog/add-ai-to-existing-business-software","Adding AI to the Software Your Company Already Uses, Without Replacing It","How AI connects to the ERP, the CRM and the files you already have, what changes when a system has no ready-made connection, and what each scenario actually costs.","2026-08-16","/images/blog/integrar-ia-software-existente.jpg",[949,19,997,18],{"_path":1043,"title":1044,"description":1045,"date":1046,"image":1047,"tags":1048},"/blog/how-to-choose-an-ai-agent-partner","How to Choose Who Builds Your Company AI Agents","Seven criteria to separate those who deliver from those who give a good demo: code ownership, fixed scope, what happens when the AI is wrong, and where the data lives.","2026-08-09","/images/blog/agentes-ia-empresariais-suporte-b2b.jpg",[1027,18,1049],"B2B Portals",{"_path":1051,"title":1052,"description":1053,"date":1054,"image":1047,"tags":1055},"/blog/gdpr-ai-act-before-ai-agents-production","GDPR and the AI Act: What to Check Before Putting an AI Agent in Production","What the GDPR and the AI Act actually require from a company using AI agents, the five points that cover most cases, and the mistake that costs the most.","2026-08-02",[967,1027],{"_path":1057,"title":1058,"description":1059,"date":1060,"image":1025,"tags":1061},"/blog/how-much-ai-costs-company-portugal","How Much Does It Cost to Implement AI in a Company in Portugal in 2026","Real price ranges for AI agents, internal platforms and custom software in Portugal, what drives the figure up, and the running cost that never appears in proposals.","2026-07-26",[18,949,1027],{"_path":1063,"title":1064,"description":1065,"date":1066,"image":1067,"tags":1068},"/blog/custom-erp-crm-vs-primavera-phc-sap","Custom ERP and CRM or Primavera, PHC, ARTSOFT and SAP: How to Decide","Primavera, PHC, ARTSOFT and SAP fit most companies. The three signs the product stopped fitting, and why replacing everything rarely pays off.","2026-07-19","/images/blog/agribusiness-erp.jpg",[997,941,18],{"_path":1070,"title":1071,"description":1072,"date":1073,"image":1074,"tags":1075},"/blog/custom-ai-agents-vs-generic-tools","Custom AI Agents or Generic Tools: When Building Is Worth It","ChatGPT and Copilot solve individual productivity. When the process needs company data and has to act in your systems, the maths changes. Criteria for deciding.","2026-07-12","/images/blog/automacao-vendas-ia.jpg",[1027,949,18],{"_path":1077,"title":1078,"description":1079,"date":1080,"image":1081,"tags":1082},"/blog/custom-real-estate-crm-high-ticket-deals","Custom Real Estate CRM: The Key to Closing High-Ticket Deals","Discover why generic CRMs fail in the luxury market and how a custom-built real estate CRM with AI integration accelerates closing high-ticket deals.","2026-06-08","/images/blog/crm-real-estate.jpg",[941,940,949],{"_path":1084,"title":1085,"description":1086,"date":1087,"image":1088,"tags":1089},"/blog/legal-erp-integrated-crm-lead-capture","From Followers to Clients: How a Legal ERP with Integrated CRM Transforms Lead Capture","What changes when client acquisition and case management live in the same system, and why most of the enquiries generated on social channels are lost before they ever reach a fee proposal.","2026-05-21","/images/blog/erp-juridico-crm.jpg",[19,941,958],{"_path":1091,"title":1092,"description":1093,"date":1094,"image":1074,"tags":1095},"/blog/ai-sales-automation","How AI Automation Shortens Sales Cycles and Boosts Conversion Rates","Discover how AI sales automation eliminates manual administrative work, accelerates high-value B2B deals, and transforms your CRM.","2026-05-14",[949,958,998],{"_path":1097,"title":1098,"description":1099,"date":1100,"image":1101,"tags":1102},"/blog/e-commerce-checkout-optimization","Why Your Online Store is Losing Sales at Checkout (and How to Fix It)","Discover why an outdated e-commerce platform turns customers away at checkout and how modern payment integrations immediately increase your conversion rate.","2026-05-12","/images/blog/otimizacao-checkout-e-commerce.jpg",[1103,19],"Retail & E-commerce",{"_path":1105,"title":1106,"description":1107,"date":1108,"image":1025,"tags":1109},"/blog/digital-brain-institutional-memory-smes","What if Your Company Had a Digital Brain? The Revolution of Institutional Memory in SMEs","Discover how a Digital Brain powered by Private AI can centralize company knowledge, eliminate the Bus Factor, and scale your operations securely.","2026-05-08",[949,958],{"_path":1111,"title":1112,"description":1113,"date":1114,"image":1115,"tags":1116},"/blog/ai-chatbot-qualifies-leads-24h","Multiply Your Sales: How an AI Chatbot Qualifies Leads 24 Hours a Day","Discover how a custom Artificial Intelligence chatbot can interact, qualify high-value potential clients, and schedule meetings while your team sleeps.","2026-05-02","/images/blog/chatbot-ia-qualifica-leads.jpg",[949,998,958],{"_path":1118,"title":1119,"description":1120,"date":1121,"image":1122,"tags":1123},"/blog/custom-wms-ai-inventory-management","Zero-Touch Inventory Management: How Custom WMS & AI Reduce Stockouts","Discover how a custom Warehouse Management System (WMS) powered by AI reduces stockouts and automates replenishments in retail and distribution operations.","2026-04-24","/images/blog/wms-medida-ia-gestao-inventario.jpg",[1103,949,975],{"_path":1125,"title":1126,"description":1127,"date":1128,"image":1129,"tags":1130},"/blog/custom-erp-consulting-firms-project-management","Ending Consultancy Chaos: 10 SaaS Tools vs 1 Custom ERP","Discover why dozens of SaaS tools destroy consultancy profit margins and how a custom ERP safely restores holistic financial control.","2026-04-20","/images/blog/finance-automation.jpg",[19,997],{"_path":1132,"title":1133,"description":1134,"date":1135,"image":1136,"tags":1137},"/blog/custom-eqms-manufacturing-quality-control","Paperless Quality Control: The Value of Custom e-QMS in Manufacturing","Discover how a custom e-QMS replaces manual factory floor processes and accelerates audits in manufacturing.","2026-04-17","/images/blog/eqms-sistema-controlo-qualidade-industria.jpg",[1138,19,949],"Manufacturing",{"_path":1140,"title":1141,"description":1142,"date":1143,"image":1144,"tags":1145},"/blog/law-firm-management-software-ai","Law Firm Management Software: How AI Solves the Problem of Slow Contract Analysis","Discover how a custom ERP and management software for law firms integrates AI to analyze contracts and scale billable hours.","2026-04-15","/images/blog/software-gestao-advogados-ia.jpg",[949,19,1146],"Legal Sector",{"_path":1148,"title":1149,"description":1150,"date":1151,"image":1152,"tags":1153},"/blog/custom-crm-vs-salesforce","What Is a Custom CRM and Why Salesforce Might Be Holding Your Business Back","The signs a generic CRM is no longer enough, what changes with a custom system, and how licence costs compare against ownership over a three to five year horizon.","2026-04-10","/images/blog/crm-medida-vs-salesforce.jpg",[941,998,19,18],{"_path":1155,"title":1156,"description":1157,"date":1158,"image":1159,"tags":1160},"/blog/custom-vendor-portals-procurement","Custom Vendor Portals: The Secret Strategy for a Resilient Supply Chain","Discover how bespoke Vendor Portals guarantee efficiency, rock-solid compliance, and total management control across complex procurement operations.","2026-04-09","/images/blog/portais-fornecedores-medida-procurement.jpg",[1049,975],{"_path":1162,"title":1163,"description":1164,"date":1165,"image":1047,"tags":1166},"/blog/enterprise-ai-agents-b2b-support","Enterprise AI Agents: Reimagining Complex B2B Customer Support","How AI Agents integrated into your ERP transform B2B support, resolving complex queries without human intervention and scaling operations.","2026-04-08",[949,958],{"_path":1168,"title":1169,"description":1170,"date":1171,"image":1172,"tags":1173},"/blog/custom-erp-enterprise-groups-holdings","Multi-Company Management Without Chaos: The Strategic Advantage of a Custom ERP","Discover how Enterprise Groups and Holdings are abandoning rigid ERPs in favor of custom software to centralize management and scale profitably.","2026-04-06","/images/blog/erp-medida-grupos-empresariais-holdings.jpg",[19,997],{"_path":1175,"title":1176,"description":1177,"date":1178,"image":1179,"tags":1180},"/blog/traditional-mes-ai-smart-system","How to Transform Your Traditional MES into an AI-Driven Smart System","Passive MES systems bottleneck factory efficiency. Learn how to integrate Artificial Intelligence for predictive maintenance and near zero downtime.","2026-04-01","/images/blog/tradicional-mes-ai-smart-system.jpg",[1138,949,19],{"_path":1182,"title":1183,"description":1184,"date":1185,"image":1186,"tags":1187},"/blog/custom-erp-vs-saas-logistics","Custom ERP vs SaaS: What Works Best for Logistics Operations?","Generic SaaS logistics platforms create bottlenecks. Learn why a custom ERP transforms distribution scalability and lowers long-term operational costs.","2026-03-23","/images/blog/erp-logistics.jpg",[975,997,19,18],{"_path":1189,"title":1190,"description":1191,"date":1192,"image":1129,"tags":1193},"/blog/backoffice-financial-automation","Backoffice Automation in Financial Services: Security and Efficiency","Manual approvals and document handling slow responses and create compliance risks. Discover how financial backoffice automation transforms operations.","2026-03-16",[958,967],{"_path":1195,"title":1196,"description":1197,"date":1198,"image":1199,"tags":1200},"/blog/end-of-excel-construction","The End of Excel in Construction: Centralizing Project Management","Budgets and planning scattered across spreadsheets cause massive financial overruns. Learn how a custom ERP safely centralizes construction management.","2026-03-09","/images/blog/excel-construction.jpg",[1201,997,19],"Construction",{"_path":1203,"title":1204,"description":1205,"date":1206,"image":1207,"tags":1208},"/blog/predictive-maintenance-manufacturing","Predictive Maintenance in Manufacturing: Using AI to Prevent Downtime","Unexpected assembly line failures destroy margins. Discover how predictive maintenance software uses AI to prevent breakdowns before they occur.","2026-03-02","/images/blog/predictive-maintenance.jpg",[1138,949],{"_path":1210,"title":1211,"description":1212,"date":1213,"image":1214,"tags":1215},"/blog/ai-crm-real-estate","How AI is Transforming Lead Qualification in Real Estate CRMs","Real estate teams waste hours on unqualified leads. Discover how a custom CRM with AI agents eliminates manual prospecting and boosts conversion.","2026-02-23","/images/blog/ai-real-estate.jpg",[940,941,949,958],{"_path":1217,"title":1218,"description":1219,"date":1220,"image":1221,"tags":1222},"/blog/b2b-custom-extranet-portals","B2B Extranets: Retaining Enterprise Clients with Custom Portals","PDF and email ordering generate B2B friction. Discover how bespoke Extranet Portals streamline corporate sales and secure long-term client relationships.","2026-02-16","/images/blog/b2b-extranet.jpg",[1049,1138,958],{"_path":1224,"title":1225,"description":1226,"date":1227,"image":1228,"tags":1229},"/blog/custom-bi-dashboards-retail","Custom Business Intelligence Dashboards for Multi-Store Retail","Data silos between e-commerce, retail, and warehouses destroy margins. Learn how custom BI Dashboards centralize operations and drive decisions.","2026-02-09","/images/blog/retail-dashboard.jpg",[1103,950,19],{"_path":1231,"title":1232,"description":1233,"date":1234,"image":1067,"tags":1235},"/blog/agribusiness-custom-erp","Scaling Agribusiness: Why You Should Avoid Generic Management Software","Agricultural seasonality and traceability collide with traditional ERPs. Discover how custom software fully digitalizes agribusiness operations.","2026-02-02",[1236,997,19,1138],"Agribusiness",{"_path":1238,"title":1239,"description":1240,"date":1241,"image":1242,"tags":1243},"/blog/staff-management-hospitality","Staff Management in Hospitality: Ending Roster Disorganization","Rosters in Excel and WhatsApp groups cost you shift coverage, maintenance traceability and GDPR compliance. What changes with a custom internal portal.","2026-01-26","/images/blog/hospitality-staff.jpg",[1244,1049,958],"Hospitality",{"_path":1246,"title":1247,"description":1248,"date":1249,"image":1250,"tags":1251},"/blog/ai-clinical-scheduling","Clinical Scheduling Automation: Reducing No-Shows with AI Agents","Uncommunicated patient no-shows destroy daily clinic profitability. Learn how custom clinic scheduling software powered by AI actively eliminates friction.","2026-01-19","/images/blog/ai-clinic.jpg",[966,949,958],1794655864846]