EN
Calculate your project price.
On your phone or computer.
Enter your costs and target margin. Calculate the project price and save your figures for next time.
- 01 Enter costs
- 02 Calculate the price
- 03 Save your calculation
Phone and computer
1. Use the calculator in your browser.
On an iPhone, open this page in Safari. Fill in all four fields or select “Load sample figures”. Results update immediately. This web version needs an internet connection. The website also loads technical services described in our privacy notice.
If you enter figures but the price does not change, this preview cannot run calculations. On your phone, open the calculator in your browser. The downloaded HTML file is intended for a desktop browser.
1. Enter your costs
2. Check the price
Recommended selling price
EUR excluding VAT
- Total entered costs
- —
- Amount above entered costs
- —
The amount above costs is not net profit. It does not account for overheads, taxes or other costs you have not entered.
Enter all four values or load the sample.
Calculations are not saved automatically. Before closing, use “Save calculation as JSON”. Load that file next time. It contains your prices, so store it according to the sensitivity of the data.
How do we calculate, and what are the limits?
Costs = material + hours × internal hourly cost. Selling price = costs ÷ (1 − margin / 100). Amount above costs = price − costs. Margin is not markup on costs.
Money inputs allow up to 2 decimal places; hours and percentages allow 4. Both commas and decimal points work; do not use thousands separators. Labour cost is rounded to cents, material is added, then selling price is rounded to cents. An exact half-cent rounds up. The amount above costs uses the displayed figures. The achieved margin may therefore differ slightly for small amounts.
Limits: material €1 billion, hours 1 million, rate €1 million/hour and selling price €1 trillion. Zero costs produce a zero price; a percentage margin is undefined at a zero price. The calculator does not determine market prices or replace accounting advice.
Application version 1.0.1. JSON format: ad-zakazka, version 1. The standalone file runs without a server, account or network dependencies. It has no analytics or automatic local storage.
How do you save your figures?
JSON is a file containing your saved calculation. Select “Save calculation as JSON”. This creates kalkulace-zakazky.json; the browser may add a number if a file with that name already exists. You do not need to edit the file manually.
On your computer, look in Downloads. On an iPhone, open the download list in Safari; the Files app shows the download folder chosen in Safari settings. Next time, open this calculator, select “Load JSON” and choose your saved file. Your inputs and result will be restored.
Saving works in both the web and downloaded versions. Check that the file exists before closing the calculator. It contains your prices, so keep it somewhere secure.

Offline on your computer
2. Download it. Use it offline.
To calculate without internet access, download the package to your computer. The standalone calculator does not send your entered prices to a server. On an iPhone, use the web calculator; HTML files opened in the Files app may not run calculations.
Download ZIP for your computer
- Extract the downloaded ZIP.
The package contains
kalkulacka.html, a short guide and the Codex prompt. On a Mac, double-click the ZIP; on Windows, choose “Extract All”. - Open kalkulacka.html in a browser.
On a Mac, use Safari or Google Chrome. If double-clicking opens a text editor, right-click the file and choose Open With, then your browser. The address bar will show a local file. No account or AI is needed to use the calculator.
- Load the sample, then change the inputs.
Select “Load sample figures”. Costs should be €700, price €1,000 and the amount above costs €300. Then enter your own four values. The hourly cost rate is your internal cost, not the rate charged to the customer.
- Save your calculation before closing.
Select “Save calculation as JSON” and check the saved file. Next time, open the HTML and select “Load JSON”. Saving and loading works the same way as in the web version.
Optional · build your own
3. Build your own with Codex.
You can use the finished calculator above straight away. This section is for trying to build your own app. You need a desktop app with Codex, a login, internet access and an empty folder. Check availability and limits in the current OpenAI overview.
- Prepare an empty folder and open Codex.
Create a folder named
moja-kalkulacka. Open your desktop app and select Codex. If you do not have the app yet, start with the official OpenAI instructions and sign in with your own account.Start a new chat for this folder. Choose local work on your computer, labelled Local or This computer; when choosing a project or folder, open
moja-kalkulacka. GitHub and a cloud environment are not needed. Controls may move between versions; see projects and chats and the local Codex environment. - Copy the full prompt and send it in the chat.
Use the button below, paste the text into a new chat and send it. If Codex requests folder access or permission to write a file, check that it is working in
moja-kalkulacka. You can also download the prompt as TXT.Create a simple offline project-price calculator as a single kalkulacka.html file with embedded CSS and JavaScript. It must open by double-clicking in a browser using file://, without a server, account, API, CDN, external fonts, analytics or network requests. Using it must not require AI. Do not create a framework or extra features. Use an English interface, EUR and amounts excluding VAT. Use a readable light layout, system fonts, visible focus and keyboard controls. Inputs: material and other direct costs, hours of labour, internal hourly cost rate and target margin percentage. Explain that cost rate is not the selling rate and margin is not markup. Costs N = material + hours × cost rate. Recommended selling price P = N / (1 − margin / 100). Amount above entered costs R = P − N. Never call R net profit. Overheads, taxes and other costs not entered are not included. Include buttons to load made-up sample figures, clear inputs, export the calculation as JSON and import JSON. The JSON format must have its own identifier and version. Invalid imports and unsupported versions must leave existing inputs unchanged. Check structure, data types and file size. Never render imported data using innerHTML or use eval. Do not save calculations automatically. Clearly tell users to export before closing; do not rely on localStorage. Accept decimal commas and points. Money permits at most 2 decimal places, hours and percentages 4. Material: 0 to €1 billion; hours: 0 to 1 million; rate: 0 to €1 million/hour. Margin: 0 to less than 100%. Maximum result: €1 trillion. Reject blank inputs, negative numbers, non-numeric and excessive values with clear errors. Clear outdated results on error and restore them when corrected. Calculate accurately in cents. Round labour cost to cents first, add material, then round selling price to cents. Round an exact half-cent up. Derive R from the displayed figures. Explain that rounding may slightly change the achieved margin. With zero costs, price is €0; a percentage margin at a zero price is undefined. Keep calculation functions separately testable. No discount, VAT, currency selection or other additions. Test the resulting HTML, not just an isolated formula. Check: material €400, 10 hours × €30, margin 30% gives costs €700, price €1,000 and amount above costs €300. Also test zero margin, zero costs, decimal values, invalid inputs and correction, export → close → reopen → import, malformed JSON and an unsupported version. Check operation without network access in a separate browser context; do not disconnect the whole computer. State the browser actually tested and any unverified parts. Finally show the file and brief instructions for opening it and saving calculations.
- Find the generated file and open it in your browser.
When finished, open the
moja-kalkulackafolder and itskalkulacka.htmlfile. Load the sample. With material costs of €400, labour of 10 × €30 and a 30% margin, the price should be €1,000. Then check saving and reloading the calculation. Your version may look different; the check figures should match.
Actual result of our original Codex prompt test, 24 October 2026. Original Czech interface. Enlarge screenshot - If something is wrong, continue in the same chat.
For example: “With material costs of 400, labour of 10 × 30 and a 30% margin, I expect a price of €1,000. The app shows something else. Find the cause, fix it and repeat the check.” Use made-up figures. Do not send JSON containing real business prices to Codex.
4. Check the figures.
| Item | Value | Meaning |
|---|---|---|
| Material and other direct costs | 400 € | Total for the project |
| Labour | 10 hours × €30 | Internal cost €300 |
| Total entered costs | 700 € | 400 + 300 |
| Target margin | 30 % | 700 ÷ (1 − 0,30) |
| Recommended selling price | 1 000 € | Not 700 × 1.30 |
| Amount above entered costs | 300 € | Not net profit |
Sample without a discount. All amounts exclude VAT.
- Material and direct costs
- 400 €Total for the project.
- Labour
- 10 × 30 €Internal cost €300.
- Total entered costs
- 700 €400 + 300.
- Target margin
- 30 %Price = 700 ÷ (1 − 0.30).
- Recommended selling price
- 1 000 €Margin is calculated from the selling price.
- Amount above costs
- 300 €This is not net profit.
Try your own safe example.
Start with made-up figures similar to your work. Consider which costs you have left out. Then check export, close the app, open it again and load the saved JSON.
What if the app shows an error?
Complete all inputs. Values must be non-negative and the margin less than 100%. Use a comma or decimal point, without spaces or the € symbol. Invalid inputs clear the result so you do not use an outdated value. An invalid JSON file must leave your existing inputs unchanged.
How does rounding work?
Enter money to at most 2 decimal places, hours and percentages to 4. Labour cost is rounded to cents, material costs are added, then the selling price is rounded to cents. An exact half-cent rounds up. The achieved margin may therefore differ slightly on small amounts. Input and result limits are also shown in the app.