BCJCA Releases
Download the latest BC Job Cost Agent installer. Updates are pull-based — when a new version ships, come back here, download the new installer, and run it. Your data, license, and settings carry over.
Beta. BC Job Cost Agent is in active development and is not released for general use. Downloads are available, but the program is not supported and its behavior may change between versions.
Latest release — v1.48.0 (2026-11-01)
Quantities: the program works out each product's pack sizes and lengths on its own. A size the line's own text states counts without the price; a standard size the price points at is learned and saved with its reason; a size recorded at parse time rides the line; and when every line of an item states the same size, those units are the same pack and the price never overrides it. The Unit factors and Mixed units buttons leave Settings; Company Materials shows how many products still need a unit size and opens a review screen with the evidence, a suggested factor and Accept, and a hand-entered factor always outranks a learned one. Assert already in QuickBooks is now a dialog with Find in QuickBooks: a read-only search of bills, expenses and vendor credits under every vendor by amount, within a cents tolerance, inside a date window, listing type, number, vendor, date, amount and customer:job; picking one fills in the reference and states the vendor and job difference, and nothing is written to QuickBooks. The Bills header row, the Vendors controls and the Push controls wrap, and the Push status line shortens with its full text on hover, so every tab fits a 1,280-pixel window. The cloud mirror carries each bill's correction note, so a hand-corrected bill can be told from an untouched one.
Verify your download. Every release below is published with its SHA-256 checksum. Hashing the file you downloaded and getting the same value back proves your copy is byte-identical to the one we published, which rules out a download that was corrupted in transit or tampered with on the way to you. It is not a statement that the file is safe — it only tells you that nothing changed between our machine and yours.
SHA-256 for v1.48.0:
182E9BB7F45D84BBFA6A7FAF6FBFB375C92CF8A4D3474B1C815C14E816674BDC
To check it, open PowerShell and run this — it prints the hash of your copy, which you compare against the value above:
Get-FileHash -Algorithm SHA256 "$HOME\Downloads\BCJca-Setup-1.48.0.exe"
If Windows quarantined the file, restore it first. A quarantined file cannot be read, so the command above will fail until the file is back — that is the quarantine, not a bad download. Restore it from Windows Security → Virus & threat protection → Protection history, then hash it.
How updates work
Updates are pull-based. BCJCA does not auto-update from inside the application. When a new version is available, this page is updated; you download the new installer and run it on top of your existing install.
Reinstalling preserves your data. Your QuickBooks connection, license activation, vendor profiles, categorizations, and database all live in your BCJCA application-data folder. The installer leaves that directory untouched, so a fresh install picks up exactly where the previous version left off.
Older releases
-
v1.47.0
(2026-10-30)
— A bill the historical import brought in is decided by QuickBooks or by you, never by the automatic re-check: it no longer attaches such a bill, rewrites its reason or makes it pushable. At import, a document whose number QuickBooks carries for the same amount under a different vendor record now closes as already in QuickBooks, with the vendor difference and any date gap in the note; a purchase whose entity is a customer is no longer read as a vendor mismatch. A new Maintenance step looks up every open history-import bill and closes the exact matches with their references, keeping or correcting the job as QuickBooks codes it. The import summary counts every bill the run created, the readiness line names a category that has no QuickBooks account, and the Recovery queue keeps each file's path. Quantities: a length or count in the name, description or item number converts a line when the price confirms it, and a line priced like the main unit is the main unit; the Items tab writes a workbook of what is still mixed with a proposed factor. Lines on a bill categorised subcontractor move to their own Subcontract section at read time, with a per-vendor exception on the Vendors tab; project cost does not move.
SHA-256D3C1F90F11AE0E8287FA72CCE49ED875D5DD35CC23A08DAE6E9B69D4AB03B1DE -
v1.46.0
(2026-10-29)
— Some vendors write a quantity of feet against a unit of each. For a product whose name gives a length, such a line is now read by its own price against the product's main unit: a price near the stick price counts as sticks, a price near the per-foot price counts as feet and is divided by the length, and a price that fits neither keeps the product flagged. A line with no price follows the reading of the other lines with the same vendor and item number. The factor table on the Items tab still takes priority, and lines are never rewritten. The invoice viewer's Parsed Lines and the Company Materials source lines show each line's price basis beside the unit price: per unit, per hundred or per thousand, read from the line's own arithmetic. The viewer's highlighted rows keep their colour, use dark text, and say in a tooltip what the highlight means.
SHA-256B8AF0DBAECFCB202A6162E24959282358F900DC3B23D7E171B830722655A6155 -
v1.45.0
(2026-10-29)
— Quantities are now converted to each product's main unit when the materials views read them, so a product bought as rolls of different lengths, as sticks and as feet shows one summable quantity, an average per unit and an average per month instead of a mixed-unit flag. Each line is resolved through spelling aliases, a unit-factor table you keep on the Items tab (one unit of an item at a vendor is so many of the base unit), the per-hundred and per-thousand arithmetic on the line itself, and a length stated in the product name. The line's own price is only a check: a line more than a quarter off the main unit's price is flagged. A unit that cannot be converted still flags the product and the tooltip names it. Dollars are untouched and lines are never rewritten. The cloud mirror now carries each line's unit, and the undo dialogs show run times in local time.
SHA-25619974621128B912651723FAE933AA276FE7AEABC718FA8DE5D383AB4B0980010 -
v1.44.0
(2026-10-29)
— The project Materials panel and the Company Materials grid gain a search box that filters rows as you type on product name, item number and UPC, header-click sorting with money and quantity sorted as numbers and blank or mixed-unit cells at the bottom, and default column widths that keep every column on screen; the rentals, tools, other and returns tables on the project screen get the same. Searching and sorting change only what is shown; totals and exports are unchanged. The merge-by-item-number step now holds a group whose catalog entry also sits in another group, naming that group, and a group whose entries are named differently after normalisation, and never links groups through each other. Every line the match step stamps inside a merge run is recorded under the run, so undoing the run unlinks them too, and a new Maintenance action undoes an earlier run using the backup taken before it, with a preview of the lines that would be unlinked and their dollars.
SHA-256B1B86BD30F359081D2FC3F5CA5845677E08111D4E3B0AA4E9FB4221F921DEF22 -
v1.43.0
(2026-10-29)
— Maintenance gains a step that merges catalog items by item number. Within one vendor, catalog entries that carry the same item number are merged into the entry with the most dollars behind it, so a product that was catalogued under several names reads as one line in Company Materials. The step holds a group for review instead of merging it when the members use different units, when their average unit prices differ by more than five times, when the item number is shorter than four characters or has no digit, or when any of its lines is on a lot-priced bill. An editable exclusion list keeps named vendor and item-number pairs out of the merge. The dry run writes a workbook beside the backups that lists every group with its action and reason, and the apply backs the database up first, records every merge under one run id that can be undone from the same screen, and then runs the match-imported-items step, which now follows a merged entry to its surviving catalog item and so stamps lines it skipped before. Project cost figures and the Job Costs by Project total do not change.
SHA-256680BE6C25F6517017E24C3E6D3AC4934F84CC7DBE593E71704ED6F408D448B3D -
v1.42.0
(2026-10-29)
— Every place that lists or totals a project's bills now reads the one project-cost rule. The Projects tab's attached-bills list and the project workbook's Bills sheet still show every attached bill, but the total counts only what the rule counts; a bill the rule holds out stays listed below the total with a Status that says why, such as a possible duplicate of an earlier bill or a bill marked already in QuickBooks that QuickBooks did not confirm. Company Materials, its source-line drill-in and the vendor-credits list leave a flagged duplicate copy out of their figures. The Job Costs by Project total and the project cost figures do not change. Company Materials shows each product's average quantity and dollars per month over full months since January 2025, with the current month left out, a month-by-month table for the selected product, and both averages in the Excel export.
SHA-2565833E3C943989988D8BD85C8BAB79E6262993506E37409DE150CEAE25E1F2272 -
v1.41.0
(2026-10-12)
— Import historical invoices, before the next catch-up pull. Two copies of one vendor's bill under the same invoice number are now recognised as one document already in BCJCA and skipped, attributed through the copy that is not flagged; only the same number under two different vendors is treated as a collision and sent to QuickBooks to decide. A second guard asks the duplicate detector before any bill is written, so a trimmed or suffixed number that slipped past the scan is declined rather than written a third time. Invoices that were not in QuickBooks last time (or sat outside the date window, or hit a QuickBooks error) are asked about again on the next import, so a bill entered in QuickBooks after a pull is matched on the pull that follows; everything else already seen is still skipped. The Import dialog now states the last run above Choose invoice folder: its folder and subfolder, its invoice dates, when it ran, and files scanned, written and skipped as already seen. The last folder is pre-selected, and a button offers Start from last run's end date; the From date is never moved on its own.
SHA-256D58BF4C7723B07EE204A260845D389CD226737CD949BC9F8D674EB3F33B724E2 -
v1.40.0
(2026-10-11)
— A QuickBooks connection no longer breaks when a cloud sync is running. On 2026-10-11 a Maintenance step refreshed its QuickBooks token while a cloud sync held the database, the new token could not be saved, and the next step got "invalid refresh token" and needed a reconnect. Now the refreshed token is kept and its save is retried until it lands; the cloud sync releases the database between tables instead of holding it for the whole push; any writer waits up to 30 seconds for a busy database instead of 5; a Maintenance step waits for a running cloud sync to finish (the running log says so) and no sync starts under it, and the scheduled scan stands down meanwhile; and only one BCJCA window can open at a time. Bills tab: the divider between the bills list and the detail now carries the same visible grip as the Projects drill-in, and the detail scrolls when it does not fit, so the Parsed Lines / Email Body / Attachment tabs get the remaining height instead of a two-row sliver.
SHA-256FDAB83BAF5CCA4B59F066338DB4B98B2487D8FFC16FC431B0AE2EED87F584517 -
v1.39.0
(2026-10-08)
— The main window now opens fully on the screen it opens on: sized to that screen's working area, never wider, and maximized when the screen is narrower than the window wants; restoring from maximized lands inside the screen too. Before this, the window could open wider than the screen with its right-hand buttons out of reach, and minimizing and restoring did not bring it back. Bills tab: the probable-match "+N more" and Agree buttons now sit right after the match text on the left, so they are visible at any window width.
SHA-2567E6CE7548896A2F20E19841D803566895E2F2FEFFB397D1799BD6FFD665B1C2A -
v1.38.0
(2026-10-06)
— Probable match. When Maintenance step 9 found a QuickBooks candidate for an open bill but did not decide -- found under a differently named vendor, several transactions match, or an attached bill it could not clear -- the Bills detail now shows the most probable one under Why open: the QuickBooks reference, vendor, date, amount, and how many days it sits from the invoice or email date. "+N more" lists every candidate closest first so you can pick a different one. Agree records that reference and closes the bill as already in QuickBooks with your name and the date, exactly as Assert already in QuickBooks does; no vendor is linked or aliased. A transaction another bill already holds is never offered, and Agree refuses a reference taken since the dry run and names the bill that holds it.
SHA-256AAAC52F7A2F9BB35BDDF3B130D564C182E0F128FD6BA8C6BED0D09AD40A91B47 -
v1.37.0
(2026-10-06)
— Email date as the matching anchor. When a bill has no invoice date and came from an email -- the email is often the bill itself, a membership or a utility -- Maintenance step 9 now looks for its QuickBooks transaction within the usual window around the email's received date. The email date is a matching anchor only: it is never written into the bill's date or amounts, and the dry run says when a row matched on it. A bill with its own date is unchanged; several transactions in the window are still reported as several. Projects tab: the divider between Attached bills and Itemized materials now shows a grip and the resize cursor on hover, so it can be found and dragged.
SHA-2561351969C500C4151CEFDF1C0A6EE4A40AC39077B0996558746E732B3BC5917C6 -
v1.36.0
(2026-10-05)
— Project precedence. A new Maintenance step, 10, looks up every attached bill in QuickBooks. A bill the program attached itself, or took from QuickBooks' earlier coding, whose one QuickBooks document is coded to another job moves to that job; one coded to an overhead bucket moves there and stops counting as project cost. A bill you attached or reassigned yourself never moves. A document with no customer stays; a customer with no project here is listed. Two bills claiming the same QuickBooks document move neither and are both listed. Each transaction is re-read from QuickBooks before it moves, a backup is taken first, and every move is recorded and reversible. The dry run shows every move largest first, every bill listed but not moved with the reason, and project cost by project and in total before and after. Step 9 now checks bills you attached yourself too: one QuickBooks already holds is recorded as already in QuickBooks with your job kept, and a bill the program attached that QuickBooks codes elsewhere is held off the Push list for step 10 instead of being closed on the wrong job.
SHA-256F443C5A4E455AE529E113EAC433BC9A988A6CD8C67E801701863E723E2BDA339 -
v1.35.0
(2026-10-05)
— Find any bill. A new button on the Bills tab finds a bill wherever it sits -- open, on a project, overhead, already in QuickBooks, pushed, duplicate, excluded or junk -- by invoice number, vendor or amount. Results show id, vendor, invoice number, date, total, disposition and project; selecting one shows its detail with the notes on the row, so a hand-corrected amount or an assertion is readable, plus the parsed lines, email body and attachment. It changes nothing. Projects tab: in a project's drill-in the Attached bills table now gets most of the height, with a draggable divider above the itemized materials, so a project with hundreds of bills shows them instead of one row.
SHA-256AB60E512BFDD7036DE38D0C10F307C583289E0C1C984194143A0B0270E843CE9 -
v1.34.0
(2026-10-05)
— Correct amount. A last-resort door on the Bills tab for a parse error on a document the parser read correctly -- a printed total that was struck through or adjusted by hand. One bill at a time: enter the real total and a reason, then confirm after a warning that shows the old and new totals and the change in project cost. The original parsed total and your reason stay on the bill and show in its detail. A one-line bill's line is rewritten to the new amount; a multi-line bill gets one adjustment line under Other so its lines still add up. Nothing else about the bill changes, and a bill already pushed to QuickBooks is refused -- change that one in QuickBooks.
SHA-2562F88F9572E6AB640B6218551749D68D73F16250DD21B6E98DE955AC01CF17908 -
v1.33.0
(2026-10-04)
— Link by evidence. A new button on the Vendors tab reads QuickBooks and lists every vendor with no QuickBooks link, ordered by the money held, showing which QuickBooks vendors its transactions actually sit under, with number hits and day distances. Link from that evidence rather than by name. A second table questions existing links whose transactions mostly sit under a different QuickBooks vendor; where both vendors hold real money the row says so, because merging them in QuickBooks is the fix and a relink is not. Linking only sets the link -- no disposition, project or push state moves. Number label. The parser now records the label a document number was printed under. On a document that is not an invoice, receipt or credit memo, a number printed as a quote, proposal, estimate or bid is no longer stored as an invoice number. Invoice documents keep their number whatever the label. Also fixed: the Vendors tab could raise an error on an empty vendor list.
SHA-2566A00E8A9E76A7F22CCA62D248FBE16AB3FB3BC8C99AE49EDFFF05F5D7E9491E7 -
v1.32.0
(2026-10-04)
— No-identity gate: auto-disposition now holds any bill whose vendor name is blank and whose number is blank or carries no digit, with "no identity" on the row. One half present is not this gate. A bill the program had already attached on no identity is detached by the next re-evaluation, project cleared and back to the open list with the reason on the row; a bill you attached yourself is never touched. Collision fall-through: a document number shared with other transactions no longer ends the lookup, so the remaining evidence still runs.
SHA-256EBC9F75BE0C7096A618E3ADFBE09CBAFB3CE948EF693373AFB088CE894209F89 -
v1.31.0
(2026-10-02)
— This release also carries 1.30.0, which was published but not installed: a bill attached to a project that the QuickBooks check could not clear is held off the Push list with the reason, so the Push list will shrink after installing, and reassigning a bill to another project now changes only the project, so a bill already closed as in QuickBooks stays closed. New in 1.31.0: a document number carried by several QuickBooks transactions resolves to the one that agrees on the amount; a bill that resolves to a QuickBooks document another bill already holds is its duplicate and leaves project cost, with the new total stated in the dry run; and a new "Assert already in QuickBooks" action records the QuickBooks reference you found, with your name and the date, for bills nothing will ever match automatically. A duplicate pair resolves only once its vendor is linked. Run Maintenance step 9 once after installing.
SHA-256E7C8FF446540026C3D1DC6D60D03F63F0EDD0BDA1BCAF4C190D17105BA52E1F0 -
v1.30.0
(2026-10-02)
— A bill attached to a project that the QuickBooks check could not clear is now held off the Push list instead of being offered as ready. The hold states what the check saw, such as a matching amount under a differently named vendor, and lifts when the vendor is linked and the check is re-run, or when you release it by hand after looking in QuickBooks yourself. Reassigning a bill to a different project now changes only the project: a bill already closed as in QuickBooks stays closed. Expect the Push list to shrink after installing, because the check could not confirm QuickBooks does not already hold the bills it shows as ready. Nothing is lost; the held bills stay on their projects, on the Bills screen, with the reason on each row. Run Maintenance step 9 once after installing to apply the holds.
SHA-2565592BD93C7872A55437DCE0F585FBB50F82DF6D73A8604F731FE8952C258B878 -
v1.29.0
(2026-10-01)
— Close projects in bulk from the QuickBooks Project Report. Upload the file, review a dry run showing exactly which projects would close and which rows could not be matched, then apply. Closing changes no cost and no bill, and any project can be reopened.
SHA-25628B0BD13826F01E0D21FBBFBB2E04C348F499D02B368093B351497C29388D142 -
v1.28.0
(2026-10-01)
— Bills from a vendor whose labor reaches jobs through an allocated rate are now routed on sight instead of waiting in the bills list. They close to the Overhead tab, never attach to a job, and never push, because that cost already reaches the job through the rate, and attaching it would count the same work twice. Every route to attaching one of those bills is now closed, including the manual ones, and the screen says why rather than reporting that nothing was found.
SHA-256DADE64720AF986E58C2FBF913D3F7DF4C38B06594D376EBAE5D491925D32905A -
v1.27.0
(2026-10-01)
— The job cost export no longer freezes the window. It runs in the background with a progress bar and a Cancel, and a cancelled export leaves no file behind. The export writes in a fraction of the time it did in 1.26.0. The figures in the workbook are unchanged, and a golden-workbook test now pins every cell so they cannot move unnoticed.
SHA-256F6CC899DD9589063347BF788D92407374AD23EC92539006E84331F84F14F79DB -
v1.26.0
(2026-09-30)
— The job cost export now carries the per-project materials breakdown: itemized lines combined, with quantities, average unit price and totals, plus lot and batch purchases. The export moved to the Projects tab. The QuickBooks vendor box now filters as you type and matches anywhere in the name, so annotated vendor names are findable.
SHA-256F4A6C79BD3E2E27DD47FF07128C1E01A95ED5919B08DADCA3E32CB698AF627B0 -
v1.25.0
(2026-09-30)
— A new Exclude disposition for bills that are real but are not the company's cost: a superseded invoice, or an employee purchase on the company account that the employee pays. Distinct from Not a Bill, with the reason shown on the row and a Reinstate to undo it. Fixes a sorting bug in the Bills grid introduced in 1.24.0: columns after Status sorted by the wrong column.
SHA-256E3E70E81CBF3D966685DEF723BF868D51596C8AFE7DBE4A04B908692C562E543 -
v1.24.0
(2026-09-29)
— A duplicate flag pointing at a row that is not a bill no longer holds the copy; the copy is matched on its own evidence. An invoice number found on another vendor's document for another amount is no longer treated as a reason to stop; the bill is judged on its own vendor and amount, and the collision is named in the note. The Bills grid has a "Why open" column: every open bill now shows the reason it is still open, filled in by each dry run.
SHA-25674464D8810ECEDFBE486A7F96CCBF0ECF534BB93D2BB3DACADBFF33D9EFBDEB1 -
v1.23.0
(2026-09-29)
— Bills already in QuickBooks now resolve by vendor and amount when no date can choose between them; ambiguous cases are held with the reason shown, never picked. One QuickBooks transaction is one bill: a second bill resolving to a reference already taken is held as that bill's duplicate. The vendor alias page now lists every QuickBooks vendor holding a bill's amount, closest date first, with the bills and dollars each pair would release.
SHA-25685849B447E2160374CC792FCCC58FBAAEFE132EEFD72BF944FE18DC266609717 -
v1.22.0
(2026-09-29)
— The clean slate now also looks at bills already attached to a job and waiting to be pushed. One QuickBooks already holds is recorded as already in QuickBooks and leaves the push list, keeping its job, so it cannot be entered twice; one QuickBooks does not hold is left exactly as it is. That part moves no cost between jobs and the dry run says so. The date allowance for matching a card or check purchase now reaches thirty days before the invoice date as well as three weeks after, since a charge posts when it is paid and the vendor dates the invoice later.
SHA-256C8C42DE7F607262BDABF4D2A04E072DE2409559BD4399D7431C3D10FB211351E -
v1.21.0
(2026-09-28)
— The clean slate now matches a bill to QuickBooks by vendor and amount when QuickBooks' date is within three days before or three weeks after the invoice date, since a card or check purchase is entered on the day it is keyed, not the day of the receipt; a credit only ever meets a credit. Where several QuickBooks entries fit and all point at the same job, the bill goes to that job with every entry named; where they disagree it is held. A second copy of a bill that already counts is resolved as a duplicate rather than left waiting, your own company's documents leave the Bills list, and the few bills with no number and no date are shown as one decision per vendor and amount. The dry run states the date rule it used.
SHA-2562EC9DE7D272FDEA934BD114E2FF5AD542EFBB84A84DF20A26E484C5473221460 -
v1.20.0
(2026-09-28)
— Three corrections to the clean slate before it is applied. A bill is never attached when another bill with the same invoice number and amount already counts as project cost, whether or not it was flagged, and two copies of one document never both attach in one run. Voided QuickBooks transactions no longer count as matches: the batched QuickBooks read now asks for the voided status, which QuickBooks omits unless asked. And every dry run can be saved: a Save dry run button writes the whole review, every section and every row, to a text file next to the database backups, so what the app proposed can be checked line by line.
SHA-256191E661E0DB8B7690A2EB2DFC58B4953095CE7D0E5B95B93EC7C0DB036264A1C -
v1.19.0
(2026-09-28)
— Data maintenance gains step 9, the clean slate. Every bill still waiting in Bills is looked up in QuickBooks; one QuickBooks already holds is recorded as already in QuickBooks, never pushed, on the job QuickBooks coded it to and with QuickBooks' category where the bill had none; one coded to no job or to an overhead bucket is recorded with no job; a flagged copy of a bill that already counts is resolved as a duplicate. Bills found under a differently named QuickBooks vendor go on a short alias list you confirm once. What QuickBooks does not hold is listed for you. The dry run shows exactly what would change and how much project cost rises before anything is applied.
SHA-2563D31E36C08465FCBED59F37066A1EB262F105402A6083C5C1B970581E6DA81C8 -
v1.18.0
(2026-09-27)
— Vendors are recognised by one name. A supplier written with a comma, an 'LLC', a '.com' or a store number used to count as a different vendor from the same supplier written plainly, so the same bill under two spellings could be counted twice and a vendor marked as your own company under one spelling was not marked under another. Every spelling now folds to the same vendor, existing records are merged on first launch, and the cloud copy carries the same key. Data maintenance gains step 8, which finds bills the historical import brought in a second time and merges each pair: the original keeps its detail, takes the job QuickBooks coded the document to, and the second copy is marked a duplicate. The dry run shows the exact totals before and after; nothing is deleted and no bill changes state.
SHA-2564163BFA0589EBA37FF9ACB7A12431D4C7F5718E93E2EAD7499B9E9E356A58F32 -
v1.17.0
(2026-09-27)
— The cloud copy's read views now rebuild correctly when their shape changes. A view that gained a column in the middle rather than at the end could not update itself and quietly kept its old definition, so a remote assistant reading the copy saw the older picture. Each view is now rebuilt outright, in one step, so a reader sees the old shape or the new one and never a gap.
SHA-2561D459A733FCBE573B72402A3C9C83028CAD9A13C44E3F340CDCBFDFEFC6121B0 -
v1.16.0
(2026-09-27)
— A maintenance run that had work to do could refuse to start it. If the run was only moving bills to overhead, or only correcting ones it had handled before, the Apply button stayed greyed out and the work sat there. It now offers to apply whenever there is anything to write. The two database connections each have their own test button and their own answer, and the settings they live in no longer overlap each other on screen. Where a step counts bills waiting, it now says how many of those are suspected duplicates that the next step will skip, so two screens counting the same vendor no longer disagree.
SHA-2567D853D9A541D798EEE95DC8A2937F9E83A75AE34F2FF24B4154D122319BBD56A -
v1.15.0
(2026-09-26)
— Bills that were already waiting in the queue can now be put back on the jobs they belong to. When a document arrived twice, the earlier import kept the bill and discarded the paperwork saying which job it was for. A maintenance step reads your own QuickBooks coding for each of those bills and puts them back where you had already filed them, showing you the full list before it changes anything. Work that reaches a job indirectly is kept off the job. A subcontractor whose labour is already in your overhead rate, and a project that is really a warranty or stock bucket, both stop counting as direct job cost -- counting them twice was inflating the jobs they touched. A bill your books already hold is now recorded as such rather than sitting in the queue waiting to be entered a second time. The "already in QuickBooks" mark now checks QuickBooks before it marks anything and refuses what it cannot find, and a maintenance step re-checks every document marked that way in the past and records whether it was verified or merely asserted. The Job Costs by Project export is now named for what it does and appears under Tools as well. Screens that had buttons below the window edge now scroll, and the Push tab shows its count even when that count is zero.
SHA-256A47A49119B57803C78BB0E1EEF3A7EA0CE6CA37DE6687CD202583366EBE9AB3D -
v1.14.0
(2026-09-25)
— Project cost is now counted one way everywhere. The Projects tab, the Job Costs export and the cloud mirror each decided for themselves what belonged in a job's cost, and they disagreed. They now share a single definition: a bill counts only if it is attached to a real job, is a genuine vendor bill, and its disposition has been corroborated against QuickBooks. Your own company's documents, your subcontractors whose labour is already absorbed through the hourly rate, and the warranty and overhead containers are all held out of job cost, because each of those reaches the job another way and counting them directly would book the same cost twice. Nothing is deleted and nothing is moved out of the job it was filed under -- the figures change, the filing does not. Every bill still appears in the Job Costs export. Ones that do not count toward cost are listed below the total in their own sections, with the reason on each row. The "already in QuickBooks" mark on the Push screen now checks QuickBooks before it marks anything, and refuses what it cannot find. A new maintenance step re-checks every document already marked that way and records whether it was verified or merely asserted, with a list of any whose amounts do not match.
SHA-256BD78A8DF7C5335177E07802F4270A83E1442D4447AFE90B94CCAA76F7C6E44B7 -
v1.13.0
(2026-09-25)
— Bills that lost their project come back. When a document arrived twice, the earlier import kept the bill and threw away the paperwork that said which job it belonged to, so the bill sat in the queue with no project -- sometimes for months. A new Data maintenance step reads your own QuickBooks coding for each of those bills and puts them back on the job you already assigned them to. It shows you the whole list before it changes anything, and every row it touches is marked so the set can be undone. Bills that QuickBooks coded to a warranty or overhead container now go to overhead rather than onto a job, so warranty work is not counted twice -- once directly and again through the overhead allocation. Your own company's documents are held out of all of it, whatever spelling the name arrived under.
SHA-25675F2F02E7249430647B423297099603FFFEAD90C70ADD4DBEAA75637FF83B6E4 -
v1.12.0
(2026-09-24)
— A bill whose PO or job field carries the job number now attaches to that project, and where two projects share a number the bill is left for you to place. Your own company's pay applications no longer land in the Bills queue: they are marked Not a Bill with the reason on the row, and a new maintenance step moves the ones already waiting. On the first launch of a new version BCJCA backs up your database before opening it. The Find box no longer reloads the list on every keystroke.
SHA-2567E1F72FA2BD97015F9AF8BF423AD633AF8E8D420DEB70BE4F9D633C7CB60EA7B -
v1.11.0
(2026-09-24)
— Attaching a bill to a project is quick again, and the app now says what it is doing. The sync after each attach dropped from minutes to seconds, the automatic re-check of held bills runs once after you stop attaching rather than after every one, and the list updates only the bill you changed.
SHA-25652D22EB69C45C390AC59BABFDC214F6A0885B3DE531AF0DD15668AC612A507A2 -
v1.10.0
(2026-08-29)
— Imports no longer match an invoice to a voided QuickBooks transaction. Where a voided entry was hiding a real one that shares the same number, the real transaction is now found; where the voided entry is the only one, the document is reported as needing attention instead of being written against a transaction that no longer exists. Documents to Review now separates invoices already in your book from those nothing was written for.
SHA-256F1945B98DB3B08F6E92319248934B816EA0BDA0C30F9F6ADF2595A6C91E6E411 - v1.9.1 (2026-08-29) — Documents to Review no longer flags an invoice whose file is named differently from the document when the amounts agree with QuickBooks. Some vendors issue two numbers for the same purchase — an order number and a receipt number — and a matching total is evidence the right transaction was found.
- v1.9.0 (2026-08-28) — A new Documents to Review list collects invoices that need a second look — where the amount differs from QuickBooks, where QuickBooks has no amount recorded, or where the invoice number on the file does not match the number inside the document. Import history no longer loses earlier runs, and the import date now reflects your most recent run.
-
v1.8.1
(2026-08-27)
— The folder scan no longer shows a cost estimate it cannot yet calculate — the price now appears at the approval step, where it is accurate. Invoices written with an amount that differs from QuickBooks are reported as written and flagged for review rather than counted as failures. A Sync button is now on the main screen.
SHA-256DC64498462274C60B073C8146ED59E78730B8C1DAC4FC2E14E36A8539CC81890 -
v1.8.0
(2026-08-26)
— Historical imports can now skip files you have already looked at, so a follow-up import only reads what arrived since the last one. Invoices that were never on your account no longer count as project cost, on every import path.
SHA-2568D68A63072FA644818FE5589FB49252B623B397263CB1DEA14BACF9A3DC89DC3 -
v1.7.0
(2026-08-20)
— Adds a way to mark your own company as an owned entity, so progress billings you send to customers stop being counted as material costs on your jobs. Run it from Help > Data maintenance; it shows you every project that will change before anything is written. The Projects tab also gains a toggle to hide projects with no bills attached, and imported invoices now record which import brought them in.
SHA-2564D2F5EF7A483E6941E95932A4742384C2AB1D19BB32EB1A4FD66286FC8696504 -
v1.6.0
(2026-08-19)
— Adds a Data maintenance tool under the Help menu. Two passes clean up how purchased items are catalogued: the first removes lot-billing totals that were wrongly filed as products, and the second matches previously unmatched line items to items you already have. Both show you exactly what they will do before changing anything, and BCJCA saves a copy of your database first.
SHA-2569E3B5BFDF75841F9EAA34B7904E2314950FF4339DAC18B74A731E4F3B6C0A57B - v1.5.4 (2026-08-17) — When resuming an import that recorded no date range, BCJCA now shows the span of the queued invoices so you can set a range and recalculate before approving. Recalculating is free.
- v1.5.3 (2026-08-17) — Fixes incorrect invoice counts on the review screen when resuming an older import. The counts now match the original scan, and the record of that scan can no longer be overwritten.
- v1.5.2 (2026-08-17) — Fixes a stopped import still not offering to resume in some cases, and repairs the underlying record so it cannot recur. Only the invoices still left are charged for.
- v1.5.1 (2026-08-17) — Fixes an import that was approved and then stopped part-way not offering to pick up again. It now resumes and charges only for the invoices still left.
- v1.5.0 (2026-08-17) — Importing historical invoices now parses several at a time instead of one after another, cutting a large import from around a day to a few hours. Review screen counts and labels are also clearer.
- v1.4.2 (2026-08-16) — Fixes incorrect counts on the review screen when picking up a scan made by an earlier version, which could show a negative number of invoices to attach. The counts now match the original scan.
- v1.4.1 (2026-08-16) — Fixes a case where an import interrupted under an earlier version would not offer to resume, sending you back to a fresh scan instead. If you have an unfinished import, it will now be picked up.
- v1.4.0 (2026-08-15) — Improvements to importing historical invoices (from 1.3.0), plus a fix to average unit prices. An import that is interrupted after the matching step, for example by a Windows update restarting the computer overnight, can now be picked up where it left off instead of started over. BCJCA saves every QuickBooks answer as it goes, so resuming reuses that work rather than matching everything a second time, which on a large folder saves hours. It tells you which scan is waiting, when it finished and how many invoices are ready, and you still approve the cost before anything is spent. You can also widen or narrow the date window once matching has finished and see the new count and cost straight away, with no further QuickBooks lookups. The results screen now shows what was actually attached rather than only what was skipped, so a successful import no longer reads as though nothing happened. Separately, Company Materials reports more accurate average unit prices. Where a supplier bills one total for a large order and lists the items underneath at no price, those zero-price lines were being averaged in with real ones and dragging the average down. The quantities still count, but only real prices set the average, and batch-billed quantities are marked so you can see them. Recommended for everyone.
- v1.3.0 (2026-08-13) — New: import historical invoices. Point BCJCA at the folder where you already keep your invoice PDFs and it matches each one to QuickBooks by invoice number, attaches it to the job QuickBooks already has it on, and pulls the line items into your project materials. Reaches back years before BCJCA was installed. Matching is free and happens first, so you see exactly how many invoices will be parsed and what it will cost on your own API key before anything is spent. Read-only against QuickBooks; nothing is pushed back. Also fixes a significant slowdown on the Projects tab: on large company files the tab could freeze for many seconds every time you opened it or moved between projects. It now responds in under a fifth of a second. Recommended for everyone.
-
v1.2.1
(2026-08-09)
— Fixes for cloud sync (from 1.2.0): your destination database connection string now stays saved when you close and reopen the "Connect an AI assistant" dialog, so the setup no longer forgets it. The sync status line is also clearer — it distinguishes "already up to date" from a real push and won't show a misleading success on an empty destination. Recommended for anyone using cloud sync.
SHA-256BD07313C04EA0FFC79A0D83582ADE0E6A1C53F631A40EE41D55CC8C02BE5FCC7 -
v1.2.0
(2026-08-05)
— New: cloud sync — send a one-way, read-only copy of your job-cost and bill data to a Postgres database you control, so an AI assistant that isn't on this computer can read it (Help → Connect an AI assistant). Off by default and inert until you set a destination, so nothing leaves this computer unless you configure it.
SHA-25680E49EB8EB6161BA5ECB8D0ACCB1F88B373F75820EF2176A1A158B161E504D83 - v1.1.0 (2026-06-25) — New: Connect an AI assistant (Help menu) — link BCJCA to Claude Desktop or any MCP-compatible assistant and ask about your job-cost data: bills by status, vendor activity, company materials, vendor credits, push-readiness. Read-only and optional. Also adds two new query tools (company materials, vendor credits).
- v1.0.0 (2026-06-23) — BC Job Cost Agent's first release. Parses your vendor bills with AI and posts them to the right job in QuickBooks Online — reads each bill, figures out the vendor and the job, handles credits, and pushes clean job-costed entries to QuickBooks. Uses your own Anthropic API key; your bill data goes straight to the AI, never through us. Windows desktop, $99 one-time, 21-day free trial.
Need help?
Email support@bcsuperagents.com with your install version, your license key (if you have one), and a short description of the problem.