Get a quote

Custom software development cost: what three conditions move it

Custom software development cost follows three conditions in your work rather than your industry or your tools: the scope of a system being taken over, records opened in the field with no signal, and request types kept apart. Our quote form asks all three in its third step, before the budget field. AlgoKlima lets a technician open a job where the signal stops, and that one condition adds a second surface to the application.

You came here for a figure, and this page will not give you one. That is not a principle but an order of operations: the cost cannot be worked out until three conditions in your own work have been written down, and our quote form asks for those three before it asks for a budget range. The form is built in that order, with a subheading naming the conditions, then the description box for your scope, then the budget field. The sections below show where each condition sits on your side, and the table puts the narrow and the wide version of each side by side.

Two things that do not carry the price

Your industry and your company size sit in an optional step of our form, whose note says those details are optional and help us when the quote is put together. The step that shapes the scope is the one after it. The name of a technology does not carry the price either; what it carries is who will be able to maintain the system once it is live, and that belongs to the article on who maintains software after launch.

Why quotes for one brief pull apart is the subject of another article: they pull apart wherever the brief stays quiet, since every supplier fills a quiet line with its own guess. Why software quotes differ goes through those lines one by one. This page looks at which of them is open on your side.

A system to take over: it moves the scope

If a system is already running in your business, look at two things: do you hold the source code, and are parts of the system still standing? When both answers are yes, a quote prices the reading first and the places it will touch second, and the size of the job stays bounded by the parts carrying the load. KGM SsangYong’s corporate site was not built by us; it reached us live, we read the code before touching anything, and the work went only into the pages carrying the weight. A quote that reads the same brief as a rewrite prices no reading at all, and the two figures never sit on one scale. In software consulting work this is the first line we ask about.

The counter-case needs writing down. If the code is not in your hands, or will not come up on an empty server, there is nothing to read; the job is a rebuild rather than a takeover and is priced as one. The same holds when nothing in the system still works. The existence of a system does not make it a system you can take over.

Field records with no signal: it moves the structure

Look at the spot where the technician opens the record and ask whether there is coverage there. If records get opened in boiler rooms or lift shafts, the application stops being one surface. A second surface goes on the phone, a queue on that surface holds the record, and a rule decides which version wins when office and field touch the same record. The three arrive together and are maintained together; what widens the price is not a screen but that trio.

AlgoKlima lets a technician open a job where the coverage ends and delivers it once the connection is back; we operate the product ourselves and keep building it. How the queue holds a record on the phone, and the order it empties in, is covered in the article on offline-first field apps rather than here.

The counter-case: if your technicians never leave coverage, do not ask for this line. A form that sends when it has signal does the job, the second surface and the conflict rule are never built, and the quote narrows by that much. Putting the line in the brief has a cost; leaving it out has a cost that only shows up on the day a record cannot be opened on site.

Request types that must travel apart: it moves the data model

Look at whatever lands in the single inbox of your site or your phone: is it all one kind of work, or are two different jobs waiting on the same list? If a survey booking and a fault call land on the same form, each type gets its own path; the request carries its type from the moment it exists and reaches operations already sorted. Diotek used to take both on one phone line, since a survey booking concerns a room with nothing installed in it while a service call concerns a unit already running, and we gave each its own intake path when we built the site. Why the two do not share a form is set out in separating appointments and service requests; the point here is that the separation is a decision about data rather than about a screen, and decisions about data enter the price.

The same condition has a second face: what a request attaches to. Tied to a person card and a time slot, the job is done. Where it has to attach to a plan step, a device or a remaining credit, it cannot sit under the person card and the data model has to carry that link. The dental clinic CRM binds an appointment to one step of a patient’s treatment plan, and reordering the plan moves the calendar. Pilatesco ties the link to remaining class credits, so a member’s package balance no longer lives in a notebook beside the calendar. The counter-case is just as plain: if only one kind of request ever reaches the site, one form is the right answer, and a quote that priced two paths priced work you do not need.

The table below opens the three conditions into six rows; the left column of each row is the version that keeps the cost narrow, the right column the version that widens it. Apply the rows to your own work and note which column you stand in. Those notes are the sentences that belong in the description box of our quote form’s third step, Your project. Write them into the quote form; the figure comes on top of them.

Side by side

Criterion Condition that narrows the cost Condition that widens the cost
Source code of the system you already run You hold the code and the setup steps; the quote prices a reading first and the places it will touch second. There is no code, or it will not come up on an empty server; with nothing to read, the job is a rebuild.
Parts of the inherited system still standing What works stays where it is; the work goes only into the parts carrying the load. Nothing is left standing; what gets priced is a build from scratch rather than a takeover.
Coverage where the technician opens the record Every record is opened inside coverage; a form that sends when it has signal does the job. Records are opened in boiler rooms and lift shafts; each one waits on the phone first and reaches the office later.
Office and field editing the same record One side writes the record; there is no second edit to merge. Both sides touch the same record; the conflict rule and the queue are built together and maintained together.
Request types landing in one inbox One kind of request arrives; one form is the right answer, and you should not pay for more. Survey bookings and fault calls land in the same inbox; each type gets its own path.
What a request attaches to Once a request is tied to a person card and a time slot, the job is done. The request has to attach to a plan step, a device or a remaining credit, so it cannot sit under the person card.

Questions this decision raises

  • Do you not give even a rough range?

    We do not, because a range quoted before the three conditions are written prices an average of briefs like yours rather than your work. A range sets two unwritten jobs side by side, not two prices. KGM SsangYong came to us with a corporate site that was already live, and one brief carried two possibilities: rewrite it, or read the code and leave what worked alone. Open our quote form and you will find the budget range after the description box.

  • Our budget will not cover the list. What can we cut?

    You can cut screens, and only screens; nothing that carries the structure of the information. Something built halfway and left for later is a different job, not a smaller one, because it gets rebuilt rather than finished. The dental clinic CRM grew out of the patient file, and invoices and month-end reports are read off it rather than built as features. Ask every line whether it needs information you do not keep yet or reads something you already do.

  • None of the three conditions applies to us. Why do quotes still differ?

    They differ because your brief is probably silent on another line, and every quote fills that silence with its own reading. Find the decision the brief leaves open and write the reading you want as a line of its own. If the silent line is not obvious, describe in the form how the work runs today and we will ask about the rest.

  • Does the choice of technology change the price?

    It does not; the name of a tool decides who can maintain the system, not the figure. Write the same job with two different tools and the scope stays put; what changes is what the maintaining team has to learn. KGM SsangYong kept its existing structure and front end untouched because maintenance stayed with the brand's own team, and the one addition was a cache layer. Ask for one line instead of a tool list: who maintains this after launch, and what must that team know.

  • Why should I trust a company that opens a pricing page and then gives no price?

    Trust is not required; open our quote form and read the order yourself. The third step, Your project, names the three conditions, then opens the description box; the budget range comes after it, and the step will not advance while the box is empty. AlgoKlima is a product we operate and keep building, so we carry the cost of a record opened with no signal before explaining it to anyone. When a quote comes back, look for a line on each condition.

Want to settle the decision together?

Tell us what you are choosing between and we will see which option fits.