Quote calculator pilot
Bolt.new and Lovable both passed 12 of 12 manual checks. This is a correctness tie on this task only. There is no overall winner, and it does not change any ranking.
SR-QUOTE-1.2.1 · Nov 7, 2026 · Pacific Time (PST, UTC-8) · Manual observation · One generation each
Separate from the UI generator ranking
This is not the Oct 2026 UI generator task (A1 Tip Splitter). That ranking was last reviewed Oct 30, 2026. v0 and screenshot-to-code were not in this pilot.
- Bolt.new: 30/30 hidden checks passed (3 runs)
- Lovable: 29/30 hidden checks passed (3 runs)
- v0: 17/30 hidden checks passed (3 runs)
Context only. These Oct 2026 UI generator scores are not results of SR-QUOTE-1.2.1.
Result
Listed in test order, not rank order.
| Tool | Manual checks | Generations | Repairs | Outcome |
|---|---|---|---|---|
| Bolt.new | 12 of 12 | 1 | None | Tie on correctness |
| Lovable | 12 of 12 | 1 | None | Tie on correctness |
How it was run
- One generation per tool. Same task and the same prompt. No repairs, and no source edits in the tested apps.
- The prompt text is not in this public record.
- Each app was tested in its hosted preview. Preview addresses are not listed. Access and environment blocks before the app was open were not scored as app failures.
Usage
Bolt's figure is a rounded Free-token allowance from the product UI, not an exact meter. Lovable's figure is what its message reported. The account balance and the debit were not verified. Tokens and credits are different units and are not converted to a dollar cost.
| Tool | What the product showed | How to read it |
|---|---|---|
| Bolt.new | about 101,000 Free tokens | Rounded from the Free-token allowance shown in the product UI. Not an exact usage meter. |
| Lovable | 1.9 credits reported in the tool message | Figure reported in the tool message. The account balance and the debit were not verified. |
Observed times
Times are observed Pacific clock times. They are not a speed score. Lovable's manual checks were finished at 5:58 AM, after a project-owner sign-in. The preview had been observed ready by 4:58:43 AM. That gap was access, not another generation.
| Tool | Submitted | Ready observed | Manual checks finished |
|---|---|---|---|
| Bolt.new | 4:53:29 AM | 4:55:34 AM | No separate clock time recorded |
| Lovable | 4:57:02 to 4:57:19 AM | by 4:58:43 AM | 5:58 AM, after a project-owner sign-in |
Fixtures
| Quote | Name | Hours | Rate | Parts | Tax |
|---|---|---|---|---|---|
| A | Synthetic A | 2.5 | 85 | 40 and 15.50 | 8.25% |
| B | Synthetic B | 0 | 100 | none | 8.25% |
| C | Synthetic C | 1 | 0.50 | none | 1% |
Quote A's part descriptions started blank. Synthetic descriptions were entered so the quote could be saved. Part amounts were not changed. This was not a scored check.
Checks
Both tools passed every row.
| # | Check | Expected result | Result |
|---|---|---|---|
| 1 | A labor | Quote A labor shows 212.50. | Pass, both tools |
| 2 | A parts | Quote A parts show 55.50. | Pass, both tools |
| 3 | A subtotal | Quote A subtotal shows 268. | Pass, both tools |
| 4 | A tax and total | Quote A tax shows 22.11 and the total shows 290.11. | Pass, both tools |
| 5 | C small amounts | Quote C subtotal shows 0.50, tax shows 0.01, and the total shows 0.51. | Pass, both tools |
| 6 | Save B | Quote B (Synthetic B) is saved once under its name, with hours 0, rate 100, tax 8.25%, no parts, and labor, parts, subtotal, tax, and total all 0. | Pass, both tools |
| 7 | Negative values | Negative hours, rate, part amount, and tax are each tried on their own. Each one is visibly invalid, no valid total is shown, Save is actually blocked, and saved quote B is unchanged. | Pass, both tools |
| 8 | Non-numeric values | A non-numeric value in hours, rate, part amount, and tax is each tried on its own. Each one is invalid, no total is shown, Save is actually blocked, and saved quote B is unchanged. | Pass, both tools |
| 9 | Save A beside B | Quote A is saved once beside B. The saved count is 2. A totals 290.11 and B totals 0. | Pass, both tools |
| 10 | Refresh A | After a refresh and reopening, quote A still totals 290.11. | Pass, both tools |
| 11 | Edit A hours | Editing quote A to 3 hours shows labor 255, parts 55.50, subtotal 310.50, tax 25.62, and total 336.12. Those figures persist after refresh, with exactly one A and one B. | Pass, both tools |
| 12 | Delete A | Deleting A and refreshing removes A. B remains with its original fields and totals of 0, and the saved count is 1. | Pass, both tools |
What still passed, and did not look identical
Check 8: Non-numeric input
Both passed. The field was invalid, no total was shown, Save was blocked, and quote B was unchanged.
- Bolt.new: The number input rejected abc. The field was then empty, and that empty value was invalid.
- Lovable: abc was accepted in the field, and the app showed a valid-number error.
Sequence limits
- The 12 checks and the fixtures were the same for both tools. A few Save checks were confirmed in a different order, so this record does not claim an identical click-by-click sequence.
- Bolt: invalid-Save checks 7 and 8 were confirmed after check 12. A provisional score from before that confirmation was replaced. No repair and no second generation.
- Lovable: check 7b, one negative-value Save block, was repeated once only to capture screenshot evidence. That repeat was not a repair and not another generation.
Caveats
- These 12 checks were done by hand in each hosted preview. This record is not from an API or an automated checker.
- Screenshots were not published. Private originals stay archived and are not linked here.
- Each tool had one generation and no repairs. A pass on these checks is not a full StackRank score.
- Correctness tie only. No overall winner, and no ranking change. The Oct 2026 UI generator scores and review dates stay as published.
- Bolt's token figure and Lovable's credit figure use different units. Neither is a dollar cost. Bolt's figure is rounded from an allowance UI, not an exact meter. Lovable's figure is what the message reported; the balance and the debit were not verified.
- Clock times were observed. They are not a speed score.
- The checks and fixtures matched. The order of a few Save confirmations did not.
- Quote A's blank part descriptions were filled with synthetic text so the quote could be saved. Amounts were not changed, and that step was not scored.
Records
These files are the sanitized manual record. They do not include project links, account names, or source downloads.