Sachverhalt:
Sachverhalt:
A. Am 30. Dezember 1994 wurde A._ für die Staats- und Gemeindesteuern 1993/94 definitiv veranlagt. Wesentlicher Bestandteil dieser Veranlagung war der in den Bemessungsjahren 1991 und 1992 erzielte Liegenschaftsgewinn aus dem Verkauf von Eigentumswohnungen und von einigen Autoeinstellplätzen in B._. Die Veranlagungsbehörde legte der Veranlagung einen Gewinn aus den Verkäufen von Fr. 695'369.-- zugrunde. Sie ging von der Bauabrechnung des Beschwerdeführers vom 26. Juli 1994 sowie der korrigierten Bauabrechnung vom 24. April 1995 aus, wobei sie sowohl bei den Anlagekosten wie auch beim Veräusserungserlös verschiedene Korrekturen anbrachte, so dass anstelle des deklarierten Verlustes ein Gewinn von Fr. 695'369.-- resultierte.
Den Rekurs des Steuerpflichtigen gegen diese Veranlagung wies das Obergericht des Kantons Schaffhausen mit Entscheid vom 9. April 1999 ab, soweit es darauf eintrat. Auf eine staatsrechtliche Beschwerde trat das Bundesgericht nicht ein (Urteil 2P.155/1999 vom 21. Mai 1999).
Den Rekurs des Steuerpflichtigen gegen diese Veranlagung wies das Obergericht des Kantons Schaffhausen mit Entscheid vom 9. April 1999 ab, soweit es darauf eintrat. Auf eine staatsrechtliche Beschwerde trat das Bundesgericht nicht ein (Urteil 2P.155/1999 vom 21. Mai 1999).
B. Am 30. Juni 1999 erfolgte die Veranlagung für die direkte Bundessteuer 1993/94 mit einem steuerbaren Einkommen von Fr. 373'400.--. Die Veranlagungsbehörde stützte sich dabei auf die im Veranlagungsverfahren für die Staats- und Gemeindesteuern 1993/94 ermittelten Steuerfaktoren.
Mit Einsprache rügte der Steuerpflichtige, dass der Veräusserungserlös aus dem Verkauf der Eigentumswohnungen in B._ zu hoch festgesetzt worden sei. Zudem verlangte er die Berücksichtigung von zusätzlichen Anlagekosten.
Die Kantonale Steuerkommission Schaffhausen wies die Einsprache mit Entscheid vom 16. Juli 2002 ab. Sie begründete ihren Entscheid im Wesentlichen damit, dass die Einsprache keine substantiierte Sachdarstellung enthalte und der Steuerpflichtige keine genügenden Belege eingereicht habe. Es gehe nicht an, die Veranlagung nach unten zu korrigieren, indem in ein geschlossenes, von der Steuerverwaltung akzeptiertes Buchhaltungssystem eingegriffen werde, ohne dass Belege präsentiert würden.
Die Kantonale Steuerkommission Schaffhausen wies die Einsprache mit Entscheid vom 16. Juli 2002 ab. Sie begründete ihren Entscheid im Wesentlichen damit, dass die Einsprache keine substantiierte Sachdarstellung enthalte und der Steuerpflichtige keine genügenden Belege eingereicht habe. Es gehe nicht an, die Veranlagung nach unten zu korrigieren, indem in ein geschlossenes, von der Steuerverwaltung akzeptiertes Buchhaltungssystem eingegriffen werde, ohne dass Belege präsentiert würden.
C. A._ führte Beschwerde beim Obergericht des Kantons Schaffhausen.
Dieses ordnete einen zweiten Schriftenwechsel an. Nachdem der Beschwerdeführer mit der Replik insbesondere die Bauabrechnungen mit den zugehörigen Belegen vorgelegt hatte, anerkannte die kantonale Steuerkommission in der Duplik die Gewinnberechnung des Beschwerdeführers grundsätzlich als vertretbar und beantragte sinngemäss die Gutheissung der Beschwerde.
Mit Entscheid vom 8. November 2002 hiess das Obergericht die Beschwerde gut, hob den Einspracheentscheid auf und setzte das steuerbare Einkommen für die direkte Bundessteuer 1993/94 auf Fr. 250'300.-- fest. Die Kosten des Beschwerdeverfahrens von Fr. 2'000.-- auferlegte es hingegen dem Beschwerdeführer; eine Parteientschädigung sprach es nicht zu. Es erwog, der Beschwerdeführer hätte die letztlich klärende Bauabrechnung und die entscheidenden Belege bereits im Einspracheverfahren vorlegen können, womit das obergerichtliche Verfahren sehr wahrscheinlich nicht nötig geworden wäre.
Mit Entscheid vom 8. November 2002 hiess das Obergericht die Beschwerde gut, hob den Einspracheentscheid auf und setzte das steuerbare Einkommen für die direkte Bundessteuer 1993/94 auf Fr. 250'300.-- fest. Die Kosten des Beschwerdeverfahrens von Fr. 2'000.-- auferlegte es hingegen dem Beschwerdeführer; eine Parteientschädigung sprach es nicht zu. Es erwog, der Beschwerdeführer hätte die letztlich klärende Bauabrechnung und die entscheidenden Belege bereits im Einspracheverfahren vorlegen können, womit das obergerichtliche Verfahren sehr wahrscheinlich nicht nötig geworden wäre.
D. A._ führt Verwaltungsgerichtsbeschwerde mit den Anträgen, der Entscheid des Obergerichts des Kantons Schaffhausen vom 8. November 2002 sei in dem Sinne zu ändern, dass er keine Kosten für das obergerichtliche Verfahren zu tragen habe und dass ihm für die erwachsenen notwendigen und verhältnismässig hohen Kosten eine Entschädigung zugesprochen werde.
Die Steuerkommission des Kanton Schaffhausen und die Eidgenössische Steuerverwaltung beantragen, die Beschwerde abzuweisen. Das Obergericht stellte keinen ausdrücklichen Antrag.

Das Bundesgericht zieht in Erwägung:
Das Bundesgericht zieht in Erwägung:
1. 1.1 Gemäss <ref-law> werden die Kosten des Verfahrens vor der kantonalen Steuerrekurskommission in der Regel der unterliegenden Partei auferlegt (Abs. 1). Sie werden ganz oder teilweise dem obsiegenden Beschwerdeführer auferlegt, wenn er bei pflichtgemässem Verhalten schon im Veranlagungs- oder Einspracheverfahren zu seinem Recht gekommen wäre oder wenn er die Untersuchung der Steuerrekurskommission durch trölerisches Verhalten erschwert hat (Abs. 2). Für die Zusprechung von Parteikosten verweist <ref-law> auf Art. 64 Abs. 1 - 3 VwVG. Danach kann die Beschwerdeinstanz der ganz oder teilweise obsiegenden Partei für ihr erwachsene notwendige und verhältnismässige Kosten eine Entschädigung zusprechen (<ref-law>). Unnötige Kosten begründen indes keinen Anspruch auf Entschädigung (s. auch Art. 8 Abs. 5 der Verordnung über Kosten und Entschädigungen im Verwaltungsverfahren vom 10. September 1969, SR 172.041.0, und dazu Moser/Uebersax, Prozessieren vor eidgenössischen Rekurskommission, Rz. 4.18).
1.2 Unbestritten ist, dass aufgrund der vom Beschwerdeführer im obergerichtlichen Verfahren als Replikbeilagen eingereichten Unterlagen, insbesondere der beiden Ordner mit den Bauabrechnungen und Belegen, seine Einwendungen gegen die Steuerberechnung als begründet oder mindestens vertretbar erschienen. Das Obergericht hiess denn auch gestützt auf den Antrag der Steuerkommission in der Duplik die Beschwerde gut. Es auferlegte jedoch die Kosten des obergerichtlichen Verfahrens dem Beschwerdeführer und verweigerte ihm eine Parteientschädigung. Das Gericht begründet seinen Schritt damit, dass der Beschwerdeführer die fraglichen Unterlagen bereits im Einspracheverfahren hätte vorlegen können; er habe damit unnötige Kosten verursacht und diese selbst zu tragen. Wie es sich damit verhält, ist im Folgenden zu prüfen.
1.2 Unbestritten ist, dass aufgrund der vom Beschwerdeführer im obergerichtlichen Verfahren als Replikbeilagen eingereichten Unterlagen, insbesondere der beiden Ordner mit den Bauabrechnungen und Belegen, seine Einwendungen gegen die Steuerberechnung als begründet oder mindestens vertretbar erschienen. Das Obergericht hiess denn auch gestützt auf den Antrag der Steuerkommission in der Duplik die Beschwerde gut. Es auferlegte jedoch die Kosten des obergerichtlichen Verfahrens dem Beschwerdeführer und verweigerte ihm eine Parteientschädigung. Das Gericht begründet seinen Schritt damit, dass der Beschwerdeführer die fraglichen Unterlagen bereits im Einspracheverfahren hätte vorlegen können; er habe damit unnötige Kosten verursacht und diese selbst zu tragen. Wie es sich damit verhält, ist im Folgenden zu prüfen.
2. Nach allgemeiner Regel hat die Steuerbehörde die steuerbegründenden Tatsachen, der Steuerpflichtige dagegen jene Tatsachen, welche die Steuerschuld mindern oder aufheben, nachzuweisen (<ref-ruling> E. 4 c/aa S. 266, 273 E. 3c/aa S. 284; Känzig/Behnisch, Die direkte Bundessteuer, 2. Aufl. 1992, N 20 zu Art. 88, N 3 zu Art. 89; allgemein: Blumenstein/Locher, System des Steuerrechts, 6. Aufl. 2002, S. 416 und 454). Da die anrechenbaren Anlagekosten den Liegenschaftsgewinn mindern, ist hierfür der steuerpflichtige Veräusserer beweisbelastet. Er hat die Tatsachen nachzuweisen, die geeignet sind, Bestand und Umfang dieser Kosten zu begründen. Dazu gehört eine substantiierte Sachdarstellung, welche hinsichtlich Art, Motiv und Rechtsgrund alle Tatsachenbehauptungen enthält, die - unter Vorbehalt der Beweiserhebung - die rechtliche Würdigung der geltend gemachten Steuerminderung erlaubt (vgl. Richner/Frei/Kaufmann, Zürcher Steuergesetz, Zürich 1999, N 8 zu § 221, und daselbst die Nachweise zur kantonalen [zürcherischen] Praxis). Bei Bauprojekten ist es im Allgemeinen die Bauabrechnung, welche in Verbindung mit der lückenlosen Sammlung der Rechnungen und Zahlungsbelege erlaubt, die Lieferungen und Leistungen steuerlich zu quantifizieren und nötigenfalls darüber Beweis zu erheben (Richner/Frei/Kaufmann, a.a.O., N 12 zu § 221).
2. Nach allgemeiner Regel hat die Steuerbehörde die steuerbegründenden Tatsachen, der Steuerpflichtige dagegen jene Tatsachen, welche die Steuerschuld mindern oder aufheben, nachzuweisen (<ref-ruling> E. 4 c/aa S. 266, 273 E. 3c/aa S. 284; Känzig/Behnisch, Die direkte Bundessteuer, 2. Aufl. 1992, N 20 zu Art. 88, N 3 zu Art. 89; allgemein: Blumenstein/Locher, System des Steuerrechts, 6. Aufl. 2002, S. 416 und 454). Da die anrechenbaren Anlagekosten den Liegenschaftsgewinn mindern, ist hierfür der steuerpflichtige Veräusserer beweisbelastet. Er hat die Tatsachen nachzuweisen, die geeignet sind, Bestand und Umfang dieser Kosten zu begründen. Dazu gehört eine substantiierte Sachdarstellung, welche hinsichtlich Art, Motiv und Rechtsgrund alle Tatsachenbehauptungen enthält, die - unter Vorbehalt der Beweiserhebung - die rechtliche Würdigung der geltend gemachten Steuerminderung erlaubt (vgl. Richner/Frei/Kaufmann, Zürcher Steuergesetz, Zürich 1999, N 8 zu § 221, und daselbst die Nachweise zur kantonalen [zürcherischen] Praxis). Bei Bauprojekten ist es im Allgemeinen die Bauabrechnung, welche in Verbindung mit der lückenlosen Sammlung der Rechnungen und Zahlungsbelege erlaubt, die Lieferungen und Leistungen steuerlich zu quantifizieren und nötigenfalls darüber Beweis zu erheben (Richner/Frei/Kaufmann, a.a.O., N 12 zu § 221).
3. Im Einspracheverfahren und im Verfahren vor dem Obergericht rügte der Beschwerdeführer erstens, dass der Veräusserungserlös um Fr. 5'600.-- zu hoch festgesetzt worden sei. Zweitens verlangte er die Berücksichtigung zusätzlicher Grundstückkosten von Fr. 62'746.90 für Vermessung, Vermarchung, provisorisches Baugespann und dergleichen. Drittens machte er geltend, dass der Anlagewert der fünf separat veräusserten Autoeinstellplätze nicht in Rechnung gestellt worden sei.
3.1 Mit dem um Fr. 5'600.-- zu hoch bemessenen Veräusserungserlös verhält es sich wie folgt: In der Gewinnberechnung für die Veranlagung der Staats- und Gemeindesteuern 1993/94 setzte die Steuerkommission den Veräusserungserlös auf Fr. 2'209'500.-- fest. Sie stützte sich dabei auf die Berechnung der Bündner Steuerbehörde. Dieser Betrag wurde auch für die Veranlagung der direkten Bundessteuer übernommen. Er lag um Fr. 39'500.-- über dem Wert von Fr. 2'170'000.--, den der Beschwerdeführer als Veräusserungserlös in der Gewinnberechnung auf dem Frontblatt der korrigierten Bauabrechnung vom 24. April 1995 angegeben hatte. In dieser Gewinnberechnung waren aber das zusätzliche Entgelt von Fr. 10'000.-- für die Wohnung A sowie ein Erlös für Mehrkosten (Mehrausbau) einer Wohnung von Fr. 23'900.--, insgesamt Fr. 33'900.--, noch nicht enthalten. Das bestritt auch der Beschwerdeführer nicht. Allerdings legte er die diesbezüglichen Belege nicht vor, weshalb die Steuerkommission mangels genügender Unterlagen im Einspracheverfahren die (um Fr. 5'600.-- höhere) Berechnung des Veräusserungserlöses durch die Bündner Steuerverwaltung übernahm. Die Rechnung über den Betrag von Fr. 23'900.-- reichte der Beschwerdeführer erst im obergerichtlichen Verfahren (als Replikbeilage 19) ein, worauf die Steuerkommission in der Duplik die Berechnung des Veräusserungserlöses berichtigte.
3.2 Was die zusätzlichen Grundstückkosten von Fr. 62'746.90 für Vermessung, Vermarchung, provisorisches Baugespann und dergleichen betrifft, war dieser Betrag in der Bauabrechnung des Beschwerdeführers vom 26. Juli 1994 und der korrigierten Bauabrechnung vom 24. April 1995, je Seite 2, enthalten. Eine vollständige Bauabrechnung mit den Originalbelegen legte der Beschwerdeführer jedoch nicht vor. Es war somit nicht möglich, diese Kosten zu überprüfen.
Die vollständigen Originalbelege wurden erst mit der Replik im obergerichtlichen Verfahren eingereicht. Nach Prüfung der Unterlagen konnte die Steuerkommission auch diese zusätzlich geltend gemachten Anlagekosten anerkennen.
3.3 Die Berücksichtigung von Anlagekosten von zusätzlich Fr. 177'708.-- begründete der Beschwerdeführer in der Einsprache damit, dass für die einzeln veräusserten Autoeinstellplätze, die sich nicht im Haus B, sondern im Nachbarhaus A befinden, noch keine Anlagekosten berücksichtigt worden seien. Er verlangte, dass deren Anlagewert aufgrund der Baukostenrechnung für Haus A pauschal - anhand von Kubatur und Kubikmeterpreis - bestimmt werde. Das lehnte die Steuerkommission im Einspracheentscheid indessen ab, weil bereits bei der Veranlagung der Staats- und Gemeindesteuern im Jahre 1995 mangels tauglicher Bauabrechnungen auf den Überführungswert der Bündner Steuerbehörden abgestellt worden sei und der Beschwerdeführer keine partielle Korrektur der seinerzeitigen Berechnung verlangen könne, ohne die Originalbelege vorzulegen. In der Beschwerde an das Obergericht hielt der Beschwerdeführer demgegenüber an seinem Standpunkt fest, dass die Anlagekostenbestandteile - wie jedermann einsehe - objektmässig nicht erstellt werden könnten. Der Beschwerdeführer reichte den Ordner mit der Bauabrechnung und den entsprechenden Belegen für das Haus A erst als Replikbeilage 17 ein. Nach Prüfung dieser Unterlagen anerkannte die Steuerkommission, dass die Kosten für die Einstellplätze nicht objektmässig erstellt werden können und eine pauschale Berechnung Platz greifen müsse (Duplik S. 2 unten).
3.3 Die Berücksichtigung von Anlagekosten von zusätzlich Fr. 177'708.-- begründete der Beschwerdeführer in der Einsprache damit, dass für die einzeln veräusserten Autoeinstellplätze, die sich nicht im Haus B, sondern im Nachbarhaus A befinden, noch keine Anlagekosten berücksichtigt worden seien. Er verlangte, dass deren Anlagewert aufgrund der Baukostenrechnung für Haus A pauschal - anhand von Kubatur und Kubikmeterpreis - bestimmt werde. Das lehnte die Steuerkommission im Einspracheentscheid indessen ab, weil bereits bei der Veranlagung der Staats- und Gemeindesteuern im Jahre 1995 mangels tauglicher Bauabrechnungen auf den Überführungswert der Bündner Steuerbehörden abgestellt worden sei und der Beschwerdeführer keine partielle Korrektur der seinerzeitigen Berechnung verlangen könne, ohne die Originalbelege vorzulegen. In der Beschwerde an das Obergericht hielt der Beschwerdeführer demgegenüber an seinem Standpunkt fest, dass die Anlagekostenbestandteile - wie jedermann einsehe - objektmässig nicht erstellt werden könnten. Der Beschwerdeführer reichte den Ordner mit der Bauabrechnung und den entsprechenden Belegen für das Haus A erst als Replikbeilage 17 ein. Nach Prüfung dieser Unterlagen anerkannte die Steuerkommission, dass die Kosten für die Einstellplätze nicht objektmässig erstellt werden können und eine pauschale Berechnung Platz greifen müsse (Duplik S. 2 unten).
4. Aus dem Gesagten erhellt, dass der Beschwerdeführer die entscheidenden Belege erst im obergerichtlichen Verfahren mit der Replik einreichte. Er hätte die fraglichen Unterlagen bereits im Einspracheverfahren vorlegen können. Dazu hätte er Anlass gehabt, nachdem er sich im Veranlagungsverfahren für die Staats- und Gemeindesteuern im Wesentlichen auf den Standpunkt stellte, seine Anlagekosten seien aufgrund des von der Bündner Steuerverwaltung anerkannten höheren Überführungswertes des Grundstückes insgesamt höher gewesen als der Erlös, ohne sich jedoch mit Einzelpositionen (Erschliessungskosten des Grundstücks, Kosten der Autoeinstellplätze) auseinanderzusetzen. Das trifft auch zu für die Festsetzung des (um Fr. 5'600.-- zu hohen) Veräusserungserlöses, bei dem die Veranlagungsbehörde mangels tauglicher Unterlagen zu Recht auf die Berechnung der Bündner Steuerverwaltung abstellte.
Der Vertreter des Beschwerdeführers wirkte im Einspracheverfahren für die Staats- und Gemeindesteuern als Sekretär der Steuerkommission mit. Er wusste um die Beweisschwierigkeiten, weshalb von ihm erwartet werden durfte, dass er die steuermindernden Tatsachen substantiiert nennt und die entsprechenden Beweise, namentlich die Originalbelege vorlegt. Seine Behauptung, dass der Sekretär der Steuerkommission sich mit dem Fall nicht weiter auseinandersetzen wollte und dies selbst dann nicht getan hätte, wenn ihm die Originalbelege vorgelegt worden wäre, entbehrt jeglicher Grundlage. Vielmehr zeigt sich, dass die Steuerkommission sich mit dem Fall eingehend befasste, auch wenn sie die Sichtweise des Beschwerdeführers nicht teilte. Der Beschwerdeführer hat damit das Verfahren vor Obergericht verursacht oder zumindest unnötig in die Länge gezogen. Das Obergericht hat ihm zu Recht die Kosten des Verfahrens auferlegt und ihm keine Entschädigung für Parteikosten gewährt.
Der Vertreter des Beschwerdeführers wirkte im Einspracheverfahren für die Staats- und Gemeindesteuern als Sekretär der Steuerkommission mit. Er wusste um die Beweisschwierigkeiten, weshalb von ihm erwartet werden durfte, dass er die steuermindernden Tatsachen substantiiert nennt und die entsprechenden Beweise, namentlich die Originalbelege vorlegt. Seine Behauptung, dass der Sekretär der Steuerkommission sich mit dem Fall nicht weiter auseinandersetzen wollte und dies selbst dann nicht getan hätte, wenn ihm die Originalbelege vorgelegt worden wäre, entbehrt jeglicher Grundlage. Vielmehr zeigt sich, dass die Steuerkommission sich mit dem Fall eingehend befasste, auch wenn sie die Sichtweise des Beschwerdeführers nicht teilte. Der Beschwerdeführer hat damit das Verfahren vor Obergericht verursacht oder zumindest unnötig in die Länge gezogen. Das Obergericht hat ihm zu Recht die Kosten des Verfahrens auferlegt und ihm keine Entschädigung für Parteikosten gewährt.
5. Die Beschwerde ist unbegründet und daher abzuweisen. Als unterliegende Partei hat der Beschwerdeführer die Verfahrenskosten zu tragen (Art. 153, 153a und 156 OG).

Demnach erkennt das Bundesgericht:
Demnach erkennt das Bundesgericht:
1. Die Verwaltungsgerichtsbeschwerde wird abgewiesen.
1. Die Verwaltungsgerichtsbeschwerde wird abgewiesen.
2. Die Gerichtsgebühr von Fr. 1'500.-- wird dem Beschwerdeführer auferlegt.
2. Die Gerichtsgebühr von Fr. 1'500.-- wird dem Beschwerdeführer auferlegt.
3. Dieses Urteil wird dem Beschwerdeführer, der Kantonalen Steuerkommission Schaffhausen, dem Obergericht des Kantons Schaffhausen sowie der Eidgenössischen Steuerverwaltung schriftlich mitgeteilt.
Lausanne, 15. September 2003
Im Namen der II. öffentlichrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Der Gerichtsschreiber: