• Welcome to AppraisersForum.com, the premier online  community for the discussion of real estate appraisal. Register a free account to be able to post and unlock additional forums and features.

Nighthawk

Related, is there really that much FHA fraud going on and used for Airbnb purchases?:

I don't see FHA fraud ( whatever that is ) and Airbnb purchases as related - at least from my experience.

What I do see is people paying inflated prices for properties they plan on using for Airbnb or short-term rentals - I always appraise any investment residential property based on long-term leases, and there is either no cash flow or a negative one. I assume the Airbnb might not always pan out except in a really hot beach or urban area - since a number of them sit empty for periods of time -people are just buying ordinary properties in ordinary locations with the MLS gushing about how it is perfect for an Airbnb.
 
The problem with Bradford's NightHawk or any AI system for valuation is that the field is changing too fast to engineer a stable 3rd Party product. In fact, I don't think there can be any for some time to come.

Everyone is indeed using AI to write code. It can write it in a flash. But after awhile the code becomes very complex. Using it and understanding it takes time. Once a 3rd Party app comes onto the market, it has to be supported and maintained. That implies a certain stability. That ties the company down - making it easy for some other company not yet tied down to jump ahead of them. The only solution to this problem is really having a very stable set of requirements and a traditional methodology. Writer.com has this with its agents for enterprise. It's the nature of the beast.

But appraisal is different.

Yes, there is a problem with Nighthawk as a concept. It could do the stable part of the business, that is it could be a stable solution for some things. But not all - as I see it at the present time.

The real solution is Open Source. Every appraisal company maintains its open source modules, with the modules combined into work flows. The code in the modules can be switched out an replaced with other Open Source code as needed.

A business model is needed, - and appraisers have to agree on some standards for the module structure, - which must be open sourced as well.
 
Last edited:
In the coming months and years you are going to see a flurry of products.

You are going to see new standards to replace USPAP. - UNDERSTAND anyone can go to ChatGPT and ask it to analyze all of USPAP, reports its problems and suggests improviments. I have done this. And it agreed to reduce all of that duplication of statements, to centrailzie them. It did this!! Took it several minutes. Yea.

Then I had it implement USPAP in executable Prolog. In minutes. Yea.

Holy ****! What kind of world are we entering!!
 
Holy ****! What kind of world are we entering!!
You meant to say leaving, as we exit this frankenform door life styfe. To be, or not to be. Quote the appraiser.
 
It can write it in a flash. But after awhile the code becomes very complex
Only if you let it. And complexity is true for any codebase as it grows (even in pre-AI world) which is why unit and integration tests are vital.
 
Only if you let it. And complexity is true for any codebase as it grows (even in pre-AI world) which is why unit and integration tests are vital.

It wrote some rather dense unit and integration tests. The Unit tests were done in pure SWI Prolog, and the integration tests were done with bash scripts.

It was interesting that ChatGPT already knows my RCA method and treats it as a USPAP-compatible approach!

It is interesting that it is so fluent in Prolog - an old favorite of mine. I once wrote a Yacc++ interpreter for a variant of Red Pepper's Manufacturing Scheduling Engine (a C++ implementation of NASA's Lisp scheduling engine) back around 1994-1996.

Prolog is a "Logic Language" that proves the code to be true. So, ChatGPT parsed and analyzed USPAP and wrote programs to validate a submitted appraisal's data (including the appraiser's qualifications) and report. This is important for implementing standards and protocols in future systems. Society, i.e. people, need to know that the code systems implementing their laws are indeed correct. Prolog is the type of language suited for this purpose.

So, understand: Yesterday evening, ChatGPT and I completed a comprehensive system to automatically audit an appraisal, ensuring it is fully USPAP compliant. The two of us created code that I have already checked into my GitHub repository. BTW, GitHub is often used by large and small AI companies to store code for distribution to their customers. Habib, who founded Writer.com, used GitHub in its initial years to distribute her code and updates to major customers.

It has been checked into my GitHub repository https://github.com/wcraytor/NewUSPAP as a Private repository. I may make it public after some testing and more documentation writing today.

Invariably, what GitHub generates may run just fine on the initial run. However, it is NOT an appraiser, and an appraiser needs to go over its logic and fine-tune the code. An example was code that specified which approaches were used for appraisal. It had at one point simply "have_sales_cost_income=TRUE" which means that the appraisal has all three approaches to value. I had to inform it that only some of these values might be needed, so the code was changed to something like "has_sales_cost_income(<appraisal id>, [sales, income]), plus some other associated changes.

The code is written in R and Prolog. R can directly execute Prolog, more or less, by generating the Prolog to scripts and then executing those scripts in SWI Prolog.

Caveat: Prolog is a very different and challenging language to learn. In fact, so difficult that after an initial splurge of Prolog code around the end of the 90's and early 2000's, it went downhill in the US. It is still used in Europe. It originated in France. Sweden still maintains and sells SCIStus Prolog - one of the major implementations. There are many versions still used:


Anyway, I have worked with it on and off over the past 30 years. However, I assure you, there are few out there now using Prolog for appraisal, if there are any who can use it at all. It will be a new language for most developers in this field, which will likely be needed for protocol implementation in valuation and other fields related to the automation of regulations.

Once I have tested it and am happy with the initial version, I will likely publish it, i.e., make it public.

It is to me so interesting that ChatGPT can instantly analyze USPAP, reformulate it in a more concise version, and present it as a "Proposal" to avoid the Copyright protection that USPAP has. Yes, ChatGPT has its own built-in attorney. Then it also was able to implement my request to use SWI Prolog and R to provide software capable of auditing an appraisal to determine if it is USPAP compliant.

Not only that, - it created a "California BREA" overlay to determine if it also complied with California BREA requirements!

So, all this in several hours of work. Think about this hard. This is REVOLUTIONARY.
 
Last edited:
Let me iterate: ChatGPT can quickly read and analyze a residential or commercial appraisal report and reformulate it as Prolog data - that can be submitted to a Prolog engine for validation. I'm talking about a 200+ page appraisal report. What does the reviewer do? Basically, monitor and check the results.

Eventually, this dramatically changes everything in appraisal. Progress .....
 
I always dreamed as a working programmer to retire and spend my the rest of my life doing Prolog coding. Now it looks like maybe my dream has come true. I love Prolog.
 
License: GPL v3.0
Author: William B. Craytor
Contributor: ChatGPT
Date: September 25, 2025

Prolog Code Excerpt:

:- begin_tests(uspap_core).
:- use_module(test_helper).

setup_env :-
reload_all,
reset_kb.

test(real_property_pass, [setup(setup_env)]) :-
% Minimal "happy path" facts for id_pass
A = id_pass, App = bert,
USPAP:assert_fact(appraiser(App)),
USPAP:assert_fact(assignment(A, real_property_appraisal)),
% Competency
USPAP:assert_fact(competent(App, A)),
% Core development
USPAP:assert_fact(identify_problem(App, A)),
USPAP:assert_fact(determine_scope(App, A)),
USPAP:assert_fact(collect_data(App, A)),
USPAP:assert_fact(ensure_ethics_logged(App, A)),
USPAP:assert_fact(document_workfile(App, A)),
% Extension evidence (artifacts + methods)
assertz(uspap_rca_ext:model_card(A, 'artifacts/model_card.html')),
assertz(uspap_rca_ext:data_lineage(A, 'artifacts/data_lineage.html')),
assertz(uspap_rca_ext:mars_spec(A, 'artifacts/mars_spec.json')),
assertz(uspap_rca_ext:mars_diagnostics(A, 'artifacts/mars_diagnostics.json')),
assertz(uspap_rca_ext:rca_constraints(A, 'artifacts/rca_constraints.pdf')),
assertz(uspap_rca_ext:cqa_report(A, 'artifacts/cqa_report.html')),
...

NOTE: AppraiserForum insists on capitalizing "USPAP" above - but that is incorrect Prolog. I should be lower case "USPAP". Nothing I can do about it though, even quotes don't work.
 
Last edited:
Also Prolog is very good for Constraint Logic Programming (CLP) - and valuation needs constraints, lots of constraints.
 
Find a Real Estate Appraiser - Enter Zip Code

Copyright © 2000-, AppraisersForum.com, All Rights Reserved
AppraisersForum.com is proudly hosted by the folks at
AppraiserSites.com
Back
Top