Introduction

Gold surges OCT 8, 2025. Since nowadays we can buy a gold bar at COSTCO, I thought I demonstrate my recent observation on viewing gold in different units - kilograms. Those you cannot buy at COSTCO, but they it’s a “golden standard” (pun intended) and remarkably recently its price is waltzing with 1 Bitcoin pretty tightly. Usually people do not notice this because gold standardly is listed for much smaller unit of mass.
I have noticed that bitcoin price is about roughly the price of 1kg of gold past year. One can easily verify this at Wolfram Alpha:

In[]:=
1kg gold price / bitcoin
Result
1.021
Out[]=
1.021
Or simply checking online:
https://wolfr.am/GOLD-BTC
The price of gold is standardly given for the value of one troy ounce -- an equivalent to roughly 31 grams:
In[]:=
UnitConvert
,"Grams"//N
Out[]=
31.1035
g
So when the price of gold is listed it is not immediately obvious what value 1kg of gold has, unless one does the unit conversion.

Current gold surge

◼
  • Gold futures rise above $4,000 per ounce for the first time
  • ◼
  • https://apnews.com/article/gold-record-price-silver-shutdown-fbe2b3c43780923569a7b5db1a55f06b
  • ◼
  • Gold Tops $4,000 for First Time Fueled by US Shutdown
  • ◼
  • https://finance.yahoo.com/news/gold-tops-4-000-first-020751070.html
  • ◼
  • Anxious Investors Push Gold Above $4,000 an Ounce for the First Time
  • ◼
  • https://www.nytimes.com/2025/10/06/business/gold-price-us-economy.html
  • Importing data

    Start from importing bitcoin (BTC) data valued in US$:
    In[]:=
    FinancialData["BTC/USD",{2015},Method->"Legacy"]​​BTCdata=TimeSeries@%
    Out[]=
    {{{2015,1,1},320.035},{{2015,1,2},315.255},{{2015,1,3},315.415},{{2015,1,4},288.175},{{2015,1,5},264.945},{{2015,1,6},273.957},{{2015,1,7},282.556},{{2015,1,8},292.251},{{2015,1,9},285.659},{{2015,1,10},293.655},{{2015,1,11},276.135},{{2015,1,12},269.615},{{2015,1,13},269.715},{{2015,1,14},234.2},
    ⋯3829⋯
    ,{{2025,9,26},109588.},{{2025,9,27},109416.},{{2025,9,28},110247.},{{2025,9,29},113679.},{{2025,9,30},112913.},{{2025,10,1},117691.},{{2025,10,2},119781.},{{2025,10,3},122227.},{{2025,10,4},121742.},{{2025,10,5},123431.},{{2025,10,6},125405.},{{2025,10,7},121718.},{{2025,10,8},123057.}}
    Full expression not available
    (
    original memory size:
    0.7 MB)
    Out[]=
    TimeSeries
    Time:
    01 Jan 2015
    to
    08 Oct 2025
    Data points: 3856
    
    As I mentioned earlier, imported gold price data is usually given for the value of one troy ounce of gold. It is equivalent of roughly 31 grams. To convert price for 1kg of gold we need to compute the multiplication factor proportionally to masses ratio:
    In[]:=
    N
    1
    kg
    
    1
    oz t
    
    Out[]=
    32.1507
    Hence, the price data for 1kg of gold is obtained as:
    In[]:=
    FinancialData["XAU/USD",{2015},Method->"Legacy"];​​MapAtN
    1
    kg
    
    1
    oz t
    #&,%,{All,2}​​GoldData=TimeSeries@%
    Out[]=
    {{{2015,1,1},38031.8},{{2015,1,2},37664.6},{{2015,1,3},38243.6},{{2015,1,5},38547.1},{{2015,1,6},38900.8},{{2015,1,7},38981.2},{{2015,1,8},39084.1},{{2015,1,9},39084.1},{{2015,1,10},39324.5},{{2015,1,12},39432.9},{{2015,1,13},39733.5},{{2015,1,14},39775.3},{{2015,1,15},40387.8},
    ⋯3646⋯
    ,{{2025,9,27},120882.},{{2025,9,28},121113.},{{2025,9,29},123231.},{{2025,9,30},124196.},{{2025,10,1},124215.},{{2025,10,2},124182.},{{2025,10,3},124960.},{{2025,10,4},124960.},{{2025,10,5},125696.},{{2025,10,6},127624.},{{2025,10,7},128424.},{{2025,10,8},128984.}}
    Full expression not available
    (
    original memory size:
    0.7 MB)
    Out[]=
    TimeSeries
    Time:
    01 Jan 2015
    to
    08 Oct 2025
    Data points: 3671
    
    Finally the plot is computed as:
    In[]:=
    DateListPlot[{GoldData,BTCdata},PlotTheme->"Detailed"]
    Out[]=

    Alternative data methods: Entity framework and more

    Entity framework is another excellent method to get financial data. Consider this code extracting out gold data in a different way:
    In[]:=
    Entity["Element","Gold"][​​Dated[EntityProperty["Element","Price"],​​DateInterval[{{2015},Today}]]]
    Out[]=
    TimeSeries
    Time:
    01 Jan 2015
    to
    07 Oct 2025
    Data points: 3663
    
    Properly formatted it looks compact and nice:
    In[]:=
    gold
    ELEMENT
    Dated
    price
    ,DateInterval
    Beginning: Thu 1 Jan 2015
    Through: Thu 7 Mar 2024
    
    Out[]=
    TimeSeries
    Time:
    01 Jan 2015
    to
    07 Mar 2024
    Data points: 3091
    
    For bitcoin we can use another alternative method of
    CurrencyConvert
    . It uses exchange rate information provided by
    FinancialData
    for conversion between currency units.
    In[]:=
    CurrencyConvert["BTC","USDollars",{{2015},Today}]
    Out[]=
    TimeSeries
    Time:
    01 Jan 2015
    to
    07 Oct 2025
    Data points: 3848
    

    Final graphics design

    In[]:=
    header=Style["Post-COVID Convergence: 1 Bitcoin and 1kg Gold",43,GrayLevel[.9],FontFamily->"DIN Condensed"];​​sub1=Style"🔒 GOLD: safety asset 🔥 BITCOIN: risk asset",20,GrayLevel[.75],FontFamily->"Georgia";​​sub2=Style" 🦋 Is perception changing?",20,GrayLevel[.75],FontFamily->"Georgia";​​footer1=Style["Data | Tools: WOLFRAM Language",15,GrayLevel[.5],FontFamily->"Verdana"];​​footer2=Style"𝕏.com/SUPERFLOW",15,GrayLevel[.5],FontFamily->"Verdana";​​​​Framed[​​Column[{​​header,Row[{sub1,sub2}],"",​​DateListPlot[{GoldData,BTCdata},​​PlotTheme->"Detailed",​​PerformanceGoal->"Speed",​​PlotStyle->{
    ,
    },​​FrameStyle->GrayLevel[.75],​​BaseStyle->19,​​ImageSize->700,​​AspectRatio->.55/GoldenRatio,​​FrameTicks->{{{{40000,"40K"},{80000,"80K"},{120000,"120K"}},None},{Automatic,None}},​​PlotLegends->Placed[Style[#,21,GrayLevel[.75],FontFamily->"Copperplate"]&/@{"Gold, 1kg, USD","Bitcoin, BTC, USD"},{Left,Top}],​​Epilog->{​​Text[Style["COVID",21,GrayLevel[.75],FontFamily->"Copperplate"],{AbsoluteTime[{2020,3,11}],105000},{Left,Bottom}],​​{
    ,Thickness[.005],Arrow[{{AbsoluteTime[{2020,3,11}],105000},{AbsoluteTime[{2020,3,11}],60000}}]}}]​​,​​DateListPlot[{GoldData,BTCdata},​​PlotTheme->"Detailed",​​PerformanceGoal->"Speed",​​PlotStyle->{
    ,
    },​​BaseStyle->19,​​FrameStyle->GrayLevel[.75],​​ImageSize->700,​​AspectRatio->.55/GoldenRatio,​​FrameTicks->{{{{40000,"40K"},{80000,"80K"},{120000,"120K"}},None},{Automatic,None}},​​PlotRange->{{{2020,1,1},Now},All},​​Epilog->{
    ,Thickness[.005],Arrow[{{AbsoluteTime[{2020,3,11}],105000},{AbsoluteTime[{2020,3,11}],60000}}]}]​​,​​DateListPlot[BTCdata/GoldData,​​PlotTheme->"Detailed",​​PerformanceGoal->"Speed",​​PlotStyle->Cyan,​​BaseStyle->19,​​FrameStyle->GrayLevel[.75],​​PlotStyle->Red,​​ImageSize->700,​​Filling->1,​​AspectRatio->.55/GoldenRatio,​​FrameTicks->{{{.2,.6,1,1.4},None},{Automatic,None}},​​PlotRange->{{{2020,1,1},Now},{0,1.4}},​​FrameLabel->{None,Style["",0]},​​PlotLegends->Placed[Style["1 BTC / 1kg GOLD, in USD",GrayLevel[.9],21,FontFamily->"Copperplate"],{Left,Top}],​​Epilog->{​​{Green,Dashed,Thickness[.005],Line[{{AbsoluteTime[{2010,3,11}],1},{AbsoluteTime[{2030,3,11}],1}}]},​​{
    ,Thickness[.005],Arrow[{{AbsoluteTime[{2020,3,11}],.7},{AbsoluteTime[{2020,3,11}],.3}}]}}],​​"",​​Row[{footer1,Spacer[300],footer2}]​​},Alignment->Center],​​Background->Black,FrameMargins10]

    CITE THIS NOTEBOOK

    Post-COVID Convergence: 1 BITCOIN and 1kg GOLD​
    by Vitaliy Kaurov
    Wolfram Community, STAFF PICKS, October 9, 2025
    ​https://community.wolfram.com/groups/-/m/t/3558536